| 89 | } |
| 90 | |
| 91 | Status DecodeArg(const substrait::FunctionArgument& arg, int idx, SubstraitCall* call, |
| 92 | const ExtensionSet& ext_set, |
| 93 | const ConversionOptions& conversion_options) { |
| 94 | if (!arg.enum_().empty()) { |
| 95 | call->SetEnumArg(idx, arg.enum_()); |
| 96 | } else if (arg.has_value()) { |
| 97 | ARROW_ASSIGN_OR_RAISE(compute::Expression expr, |
| 98 | FromProto(arg.value(), ext_set, conversion_options)); |
| 99 | call->SetValueArg(idx, std::move(expr)); |
| 100 | } else if (arg.has_type()) { |
| 101 | return Status::NotImplemented("Type arguments not currently supported"); |
| 102 | } else { |
| 103 | return Status::NotImplemented("Unrecognized function argument class"); |
| 104 | } |
| 105 | return Status::OK(); |
| 106 | } |
| 107 | |
| 108 | Status DecodeOption(const substrait::FunctionOption& opt, SubstraitCall* call) { |
| 109 | std::vector<std::string_view> prefs; |
no test coverage detected