[
https://issues.apache.org/jira/browse/CALCITE-6507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated CALCITE-6507:
------------------------------------
Labels: pull-request-available (was: )
> Random functions are incorrectly considered deterministic
> ---------------------------------------------------------
>
> Key: CALCITE-6507
> URL: https://issues.apache.org/jira/browse/CALCITE-6507
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.37.0
> Reporter: Ruben Q L
> Assignee: Ruben Q L
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.38.0
>
>
> {{{}RAND{}}}, {{{}RANDOM{}}}, and {{RAND_INTEGER}} don't override the
> {{isDeterministic}} method, so they get the default behavior, i.e. true,
> which is incorrect.
> This can lead to undesired consequences, e.g.:
> A) {{RelMetadataQuery#getPulledUpPredicates}} can consider them as constants
> (and place them inside {{{}RelOptPredicateList#constantMap{}}}) since
> {{RelMdPredicates}} calls {{{}RexUtil#isConstant{}}}, which uses a
> {{ConstantFinder}} that evaluates whether a RexCall is constant or not based
> on the operator's isDeterministic value.
> B) As a consequence of A) {{SortRemoveConstantKeyRule}} can incorrectly
> remove an "ORDER BY RAND()"
--
This message was sent by Atlassian Jira
(v8.20.10#820010)