| 892 | } |
| 893 | |
| 894 | ExtensionIdRegistry::ArrowToSubstraitCall EncodeIsNull(Id substrait_fn_id) { |
| 895 | return |
| 896 | [substrait_fn_id](const compute::Expression::Call& call) -> Result<SubstraitCall> { |
| 897 | if (call.options != nullptr) { |
| 898 | auto null_opts = checked_pointer_cast<compute::NullOptions>(call.options); |
| 899 | if (null_opts->nan_is_null) { |
| 900 | return Status::Invalid( |
| 901 | "Substrait does not support is_null with nan_is_null=true. You can use " |
| 902 | "is_null || is_nan instead"); |
| 903 | } |
| 904 | } |
| 905 | SubstraitCall substrait_call(substrait_fn_id, call.type.GetSharedPtr(), |
| 906 | /*nullable=*/false); |
| 907 | for (std::size_t i = 0; i < call.arguments.size(); i++) { |
| 908 | substrait_call.SetValueArg(static_cast<int>(i), call.arguments[i]); |
| 909 | } |
| 910 | return substrait_call; |
| 911 | }; |
| 912 | } |
| 913 | |
| 914 | ExtensionIdRegistry::SubstraitCallToArrow DecodeOptionlessBasicMapping( |
| 915 | const std::string& function_name, int max_args) { |
no test coverage detected