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)

Reply via email to