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,

Reply via email to