You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2020/09/14 18:07:00 UTC

[jira] [Commented] (CALCITE-4256) RexSimplify should not simplify P AND P to P, if it contains a call to RAND or RAND_INTEGER

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