Weston Pace created ARROW-16286:
-----------------------------------
Summary: [C++] SimplifyWithGuarantee does not work with
non-deterministic expressions
Key: ARROW-16286
URL: https://issues.apache.org/jira/browse/ARROW-16286
Project: Apache Arrow
Issue Type: Improvement
Components: C++
Reporter: Weston Pace
If an expression is non-deterministic (e.g. "random") then
SimplifyWithGuarantee may incorrectly think it can fold constants.
For example, if the call is {{random()}} then {{SimplifyWithGuarantee}} will
detect that all the arguments are constants (or, more accurately, there are
zero non-constant arguments) and decide it can execute the expression
immediately and fold it into a constant.
We could maybe add a hack for the random case since it is the only nullary
function but, in general, we will probably need a way to define functions as
"non-deterministic" and prevent constant folding.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)