[
https://issues.apache.org/jira/browse/CALCITE-4256?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17195664#comment-17195664
]
Julian Hyde commented on CALCITE-4256:
--------------------------------------
Let's frame this in terms of whether the operator is deterministic. See
{{SqlOperator.isDeterministic()}}. The fix certainly should not reference
particular operators.
Related: {{SqlRandFunction.isDynamicFunction()}} is overridden to return true,
and I'm not sure whether that would be necessary if it were flagged
non-deterministic.
> RexSimplify should not simplify P AND P to P, if it contains a call to RAND
> or RAND_INTEGER
> -------------------------------------------------------------------------------------------
>
> Key: CALCITE-4256
> URL: https://issues.apache.org/jira/browse/CALCITE-4256
> Project: Calcite
> Issue Type: Bug
> Reporter: Thomas Rebele
> Priority: Major
>
> Example: RAND_INTEGER() = 1 AND RAND_INTEGER() = 1 is false with a higher
> probability than RAND_INTEGER() = 1
> Here a test case for RexProgramTest:
> {code}
> @Test void testSimplifyRandomAnd() {
> checkSimplifyUnchanged(
> and(
> eq(rexBuilder.makeCall(SqlStdOperatorTable.RAND_INTEGER),
> literal(1)),
> eq(rexBuilder.makeCall(SqlStdOperatorTable.RAND_INTEGER),
> literal(1))
> ));
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)