You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Mihai Budiu (Jira)" <ji...@apache.org> on 2023/12/19 02:31:00 UTC

[jira] [Created] (CALCITE-6169) EnumUtils.convert does not implement the correct SQL cast semantics

Mihai Budiu created CALCITE-6169:
------------------------------------

             Summary: EnumUtils.convert does not implement the correct SQL cast semantics
                 Key: CALCITE-6169
                 URL: https://issues.apache.org/jira/browse/CALCITE-6169
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.36.0
            Reporter: Mihai Budiu
            Assignee: Mihai Budiu


The code generated by EnumUtil for casts uses the Java semantics, where casts just truncate values. The SQL semantics requires a runtime exception if the value does not fit in the target datatype.

Some of the bugs in this code generator are masked by the BlockBuilder optimizer which attempts to optimize the generated code using the SQL semantics... But if the code is not optimized and is executed in Java it generates wrong results for most conversions that overflow.

One additional wrinkle is that it is not entirely clear whether the bug is in EnumUtils or in the code that invokes EnumUtils. It is not specified which of the two semantics for casts EnumUtils are supposed to implement: Java or SQL?



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