Mihai Budiu created CALCITE-7270:
------------------------------------

             Summary: Add support for a SAFE_DIVIDE operation
                 Key: CALCITE-7270
                 URL: https://issues.apache.org/jira/browse/CALCITE-7270
             Project: Calcite
          Issue Type: Improvement
          Components: core
    Affects Versions: 1.41.0
            Reporter: Mihai Budiu


SQL dialects treat DIVISION in different ways: in some dialects division by 0 
produces an exception, while in other dialects (e.q. sqlite) it produces NULL.

These are really two different operators with the same name. I think they 
should be represented by different operations in the IR: e.g., DIVIDE and 
SAFE_DIVIDE.

This is reminiscent to the CHECKED arithmetic operations introduced in 
[CALCITE-6685], and the solution could be similar: in that issue whether an ADD 
operation is checked or unchecked is a property of SqlConformance. Similarly, 
we could add a boolean flag to SqlConformance indicating whether division is 
safe or not and a visitor that will rewrite DIVIDE to SAFE_DIVIDE when 
necessary.

Spawn from [CALCITE-7145]

I am happy to assign this to myself if people agree.



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

Reply via email to