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