Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-18406

[C++] Can't build Arrow with Substrait on Ubuntu 20.04

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 11.0.0
    • C++

    Description

      I recently tried to rebuild Arrow with Substrait on Ubuntu 20.04 and got the following error:

      [100%] Building CXX object src/arrow/engine/CMakeFiles/arrow_substrait_objlib.dir/substrait/type_internal.cc.o
      /home/dewey/Desktop/r/arrow/cpp/src/arrow/engine/substrait/expression_internal.cc: In function ‘arrow::Status arrow::engine::DecodeArg(const substrait::FunctionArgument&, int, arrow::engine::SubstraitCall*, const arrow::engine::ExtensionSet&, const arrow::engine::ConversionOptions&)’:
      /home/dewey/Desktop/r/arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:60:21: error: ‘bool substrait::FunctionArgument::has_enum_() const’ is private within this context
         60 |   if (arg.has_enum_()) {
            |                     ^
      In file included from /home/dewey/Desktop/r/arrow/cpp/src/arrow/engine/substrait/expression_internal.h:30,
                       from /home/dewey/Desktop/r/arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:20:
      /home/dewey/.r-arrow-dev-build/build/substrait_ep-generated/substrait/algebra.pb.h:21690:13: note: declared private here
      21690 | inline bool FunctionArgument::has_enum_() const {
            |             ^~~~~~~~~~~~~~~~
      [100%] Building CXX object src/arrow/engine/CMakeFiles/arrow_substrait_objlib.dir/substrait/util.cc.o
      make[2]: *** [src/arrow/engine/CMakeFiles/arrow_substrait_objlib.dir/build.make:76: src/arrow/engine/CMakeFiles/arrow_substrait_objlib.dir/substrait/expression_internal.cc.o] Error 1
      make[2]: *** Waiting for unfinished jobs....
      make[1]: *** [CMakeFiles/Makefile2:2028: src/arrow/engine/CMakeFiles/arrow_substrait_objlib.dir/all] Error 2
      make: *** [Makefile:146: all] Error 2
      

      westonpace suggested that it is probably a protobuf version problem! For me this is:

      $ protoc --version
      libprotoc 3.6.1
      

      Attachments

        Issue Links

          Activity

            People

              westonpace Weston Pace
              paleolimbot Dewey Dunnington
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 1h 10m
                  1h 10m