[ 
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)

Reply via email to