[ 
https://issues.apache.org/jira/browse/ARROW-17994?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Will Jones updated ARROW-17994:
-------------------------------
    Attachment: generate_ibis_queries.py

> [C++] Add overflow argument is required when it shouldn't be
> ------------------------------------------------------------
>
>                 Key: ARROW-17994
>                 URL: https://issues.apache.org/jira/browse/ARROW-17994
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>            Reporter: Will Jones
>            Priority: Major
>              Labels: acero, substrait
>             Fix For: 11.0.0
>
>         Attachments: generate_ibis_queries.py, try_queries_acero.py
>
>
> If I pass a substrait plan that contains an add function, but don't provide 
> the nullablity argument, I get the following error:
> {code:none}
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "pyarrow/_substrait.pyx", line 140, in pyarrow._substrait.run_query
>   File "pyarrow/error.pxi", line 144, in 
> pyarrow.lib.pyarrow_internal_check_status
>   File "pyarrow/error.pxi", line 100, in pyarrow.lib.check_status
> pyarrow.lib.ArrowInvalid: Expected Substrait call to have an enum argument at 
> index 0 but the argument was not an enum.
> /Users/willjones/Documents/arrows/arrow/cpp/src/arrow/engine/substrait/extension_set.cc:684
>   call.GetEnumArg(arg_index)
> /Users/willjones/Documents/arrows/arrow/cpp/src/arrow/engine/substrait/extension_set.cc:702
>   ParseEnumArg(call, 0, kOverflowParser)
> /Users/willjones/Documents/arrows/arrow/cpp/src/arrow/engine/substrait/relation_internal.cc:332
>   FromProto(expr, ext_set, conversion_options)
> /Users/willjones/Documents/arrows/arrow/cpp/src/arrow/engine/substrait/serde.cc:156
>   FromProto(plan_rel.has_root() ? plan_rel.root().input() : plan_rel.rel(), 
> ext_set, conversion_options)
> /Users/willjones/Documents/arrows/arrow/cpp/src/arrow/engine/substrait/util.cc:106
>   engine::DeserializePlans(substrait_buffer, consumer_factory, registry, 
> nullptr, conversion_options_)
> /Users/willjones/Documents/arrows/arrow/cpp/src/arrow/engine/substrait/util.cc:130
>   executor.Init(substrait_buffer, registry)
> {code}
> Yet in the spec, this argument is supposed to be optional: 
> https://github.com/substrait-io/substrait/blob/f3f6bdc947e689e800279666ff33f118e42d2146/extensions/functions_arithmetic.yaml#L11
> If I modify the plan to include the argument, it works as expected.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to