You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "David Li (Jira)" <ji...@apache.org> on 2022/07/13 19:38:00 UTC
[jira] [Closed] (ARROW-16288) [C++] ValueDescr::SCALAR nearly unused and does not work for projection
[ https://issues.apache.org/jira/browse/ARROW-16288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Li closed ARROW-16288.
----------------------------
Resolution: Not A Problem
ValueDescr was simply removed.
> [C++] ValueDescr::SCALAR nearly unused and does not work for projection
> -----------------------------------------------------------------------
>
> Key: ARROW-16288
> URL: https://issues.apache.org/jira/browse/ARROW-16288
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++
> Reporter: Weston Pace
> Priority: Major
>
> First, there are almost no kernels that actually use this shape. Only the functions "all", "any", "list_element", "mean", "product", "struct_field", and "sum" have kernels with this shape. Most kernels that have special logic for scalars handle it by using {{ValueDescr::ANY}}
> Second, when passing an expression to the project node, the expression must be bound based on the dataset schema. Since the binding happens based on a schema (and not a batch) the function is bound to ValueDescr::ARRAY (https://github.com/apache/arrow/blob/a16be6b7b6c8271202ff766b99c199b2e29bdfa8/cpp/src/arrow/compute/exec/expression.cc#L461)
> This results in an error if the function has only ValueDescr::SCALAR kernels and would likely be a problem even if the function had both types of kernels because it would get bound to the wrong kernel.
> This simplest fix may be to just get rid of ValueDescr and change all kernels to ValueDescr::ANY behavior. If we choose to keep it we will need to figure out how to handle this kind of binding.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)