This is an automated email from the ASF dual-hosted git repository.
westonpace pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new f6ad4bfe9c ARROW-17426: [C++] Substrait consumer fails to compile on
older Ubuntu (#13888)
f6ad4bfe9c is described below
commit f6ad4bfe9c9e32aca4b688715eaf656a73a5f7c5
Author: Weston Pace <[email protected]>
AuthorDate: Tue Aug 16 05:32:38 2022 -1000
ARROW-17426: [C++] Substrait consumer fails to compile on older Ubuntu
(#13888)
Authored-by: Weston Pace <[email protected]>
Signed-off-by: Weston Pace <[email protected]>
---
cpp/src/arrow/engine/substrait/expression_internal.cc | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/cpp/src/arrow/engine/substrait/expression_internal.cc
b/cpp/src/arrow/engine/substrait/expression_internal.cc
index 589d7e6ac6..9b364741a3 100644
--- a/cpp/src/arrow/engine/substrait/expression_internal.cc
+++ b/cpp/src/arrow/engine/substrait/expression_internal.cc
@@ -46,10 +46,16 @@ Status DecodeArg(const substrait::FunctionArgument& arg,
uint32_t idx,
const ConversionOptions& conversion_options) {
if (arg.has_enum_()) {
const substrait::FunctionArgument::Enum& enum_val = arg.enum_();
- if (enum_val.has_specified()) {
- call->SetEnumArg(idx, enum_val.specified());
- } else {
- call->SetEnumArg(idx, util::nullopt);
+ switch (enum_val.enum_kind_case()) {
+ case substrait::FunctionArgument::Enum::EnumKindCase::kSpecified:
+ call->SetEnumArg(idx, enum_val.specified());
+ break;
+ case substrait::FunctionArgument::Enum::EnumKindCase::kUnspecified:
+ call->SetEnumArg(idx, util::nullopt);
+ break;
+ default:
+ return Status::Invalid("Unrecognized enum kind case: ",
+ enum_val.enum_kind_case());
}
} else if (arg.has_value()) {
ARROW_ASSIGN_OR_RAISE(compute::Expression expr,