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)

Reply via email to