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)

Reply via email to