Antoine Pitrou created ARROW-15700: -------------------------------------- Summary: [C++] Compilation error on Ubuntu 18.04 Key: ARROW-15700 URL: https://issues.apache.org/jira/browse/ARROW-15700 Project: Apache Arrow Issue Type: Bug Components: C++, Compute IR, Continuous Integration Reporter: Antoine Pitrou Fix For: 8.0.0
See Crossbow build logs here: https://github.com/ursacomputing/crossbow/runs/5211900067?check_suite_focus=true#step:5:1389 {code} /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc: In member function 'arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::Visit(const arrow::StringScalar&)': /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:469:78: error: no matching function for call to 'arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(<unresolved overloaded function type>, const arrow::StringScalar&)' Status Visit(const StringScalar& s) { return FromBuffer(&Lit::set_string, s); } ^ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: candidate: template<class ScalarWithBufferValue> arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(void (substrait::Expression_Literal::*)(std::__cxx11::string&&), const ScalarWithBufferValue&) Status FromBuffer(void (substrait::Expression::Literal::*set)(std::string&&), ^~~~~~~~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: template argument deduction/substitution failed: /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:469:59: note: cannot convert '& substrait::Expression_Literal::set_string' (type '<unresolved overloaded function type>') to type 'void (substrait::Expression_Literal::*)(std::__cxx11::string&&) {aka void (substrait::Expression_Literal::*)(std::__cxx11::basic_string<char>&&)}' Status Visit(const StringScalar& s) { return FromBuffer(&Lit::set_string, s); } ^~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc: In member function 'arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::Visit(const arrow::BinaryScalar&)': /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:470:78: error: no matching function for call to 'arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(<unresolved overloaded function type>, const arrow::BinaryScalar&)' Status Visit(const BinaryScalar& s) { return FromBuffer(&Lit::set_binary, s); } ^ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: candidate: template<class ScalarWithBufferValue> arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(void (substrait::Expression_Literal::*)(std::__cxx11::string&&), const ScalarWithBufferValue&) Status FromBuffer(void (substrait::Expression::Literal::*set)(std::string&&), ^~~~~~~~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: template argument deduction/substitution failed: /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:470:59: note: cannot convert '& substrait::Expression_Literal::set_binary' (type '<unresolved overloaded function type>') to type 'void (substrait::Expression_Literal::*)(std::__cxx11::string&&) {aka void (substrait::Expression_Literal::*)(std::__cxx11::basic_string<char>&&)}' Status Visit(const BinaryScalar& s) { return FromBuffer(&Lit::set_binary, s); } ^~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc: In member function 'arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::Visit(const arrow::FixedSizeBinaryScalar&)': /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:473:48: error: no matching function for call to 'arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(<unresolved overloaded function type>, const arrow::FixedSizeBinaryScalar&)' return FromBuffer(&Lit::set_fixed_binary, s); ^ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: candidate: template<class ScalarWithBufferValue> arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(void (substrait::Expression_Literal::*)(std::__cxx11::string&&), const ScalarWithBufferValue&) Status FromBuffer(void (substrait::Expression::Literal::*set)(std::string&&), ^~~~~~~~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: template argument deduction/substitution failed: /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:473:23: note: cannot convert '& substrait::Expression_Literal::set_fixed_binary' (type '<unresolved overloaded function type>') to type 'void (substrait::Expression_Literal::*)(std::__cxx11::string&&) {aka void (substrait::Expression_Literal::*)(std::__cxx11::basic_string<char>&&)}' return FromBuffer(&Lit::set_fixed_binary, s); ^~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc: In member function 'arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::Visit(const arrow::ExtensionScalar&)': /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:598:77: error: no matching function for call to 'arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(<unresolved overloaded function type>, const arrow::FixedSizeBinaryScalar&)' checked_cast<const FixedSizeBinaryScalar&>(*s.value)); ^ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: candidate: template<class ScalarWithBufferValue> arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(void (substrait::Expression_Literal::*)(std::__cxx11::string&&), const ScalarWithBufferValue&) Status FromBuffer(void (substrait::Expression::Literal::*set)(std::string&&), ^~~~~~~~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: template argument deduction/substitution failed: /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:597:25: note: cannot convert '& substrait::Expression_Literal::set_uuid' (type '<unresolved overloaded function type>') to type 'void (substrait::Expression_Literal::*)(std::__cxx11::string&&) {aka void (substrait::Expression_Literal::*)(std::__cxx11::basic_string<char>&&)}' return FromBuffer(&Lit::set_uuid, ^~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:603:77: error: no matching function for call to 'arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(<unresolved overloaded function type>, const arrow::FixedSizeBinaryScalar&)' checked_cast<const FixedSizeBinaryScalar&>(*s.value)); ^ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: candidate: template<class ScalarWithBufferValue> arrow::Status arrow::engine::{anonymous}::ScalarToProtoImpl::FromBuffer(void (substrait::Expression_Literal::*)(std::__cxx11::string&&), const ScalarWithBufferValue&) Status FromBuffer(void (substrait::Expression::Literal::*set)(std::string&&), ^~~~~~~~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:447:10: note: template argument deduction/substitution failed: /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:602:25: note: cannot convert '& substrait::Expression_Literal::set_fixed_char' (type '<unresolved overloaded function type>') to type 'void (substrait::Expression_Literal::*)(std::__cxx11::string&&) {aka void (substrait::Expression_Literal::*)(std::__cxx11::basic_string<char>&&)}' return FromBuffer(&Lit::set_fixed_char, ^~~~ /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc: In function 'arrow::Result<std::unique_ptr<substrait::Expression> > arrow::engine::ToProto(const arrow::compute::Expression&, arrow::engine::ExtensionSet*)': /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:860:74: error: 'bool substrait::Expression_Literal::has_i32() const' is private within this context if (arguments[1]->has_literal() && arguments[1]->literal().has_i32()) { ^ In file included from /arrow/cpp/src/arrow/engine/substrait/expression_internal.h:29:0, from /arrow/cpp/src/arrow/engine/substrait/expression_internal.cc:20: src/arrow/engine/generated/substrait/expression.pb.h:6207:13: note: declared private here inline bool Expression_Literal::has_i32() const { ^~~~~~~~~~~~~~~~~~ {code} -- This message was sent by Atlassian Jira (v8.20.1#820001)