[ 
https://issues.apache.org/jira/browse/CALCITE-7145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18017855#comment-18017855
 ] 

Stamatis Zampetakis commented on CALCITE-7145:
----------------------------------------------

The whole {{IS NULL(10/0)}} expression is constant so from my perspective it 
shouldn't be something that is handled by {{RexSimplify}} but rather by 
{{RexExecutor}}. Different engines can specify their own constant folding logic 
via a custom {{RexExecutor}} that follows the semantics in that engine.

In Apache Hive, division by zero yields null (and does not throw). There are 
more Hive operators with different semantics from Calcite (and SQL standard) 
and that's why Hive defines its own executor.

> RexSimplify should not simplify IS NULL(10/0)
> ---------------------------------------------
>
>                 Key: CALCITE-7145
>                 URL: https://issues.apache.org/jira/browse/CALCITE-7145
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Thomas Rebele
>            Assignee: Thomas Rebele
>            Priority: Major
>              Labels: pull-request-available
>
> RexSimplify incorrectly simplifies {{IS NULL(10/0)}} to false and {{IS NOT 
> NULL(10,0)}} to true
> In other DBMS it's either the inverse (sqlite, MySQL, MariaDB), or they throw 
> an exception in both cases (Oracle, Postgres). The behavior was also 
> mentioned in a comment on CALCITE-3368.
> Is it right that throwing an exception during query execution is the expected 
> behavior according to the SQL standard?



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to