Julian Hyde created CALCITE-1439:
------------------------------------

             Summary: Handling errors during constant reduction
                 Key: CALCITE-1439
                 URL: https://issues.apache.org/jira/browse/CALCITE-1439
             Project: Calcite
          Issue Type: Bug
            Reporter: Julian Hyde
            Assignee: Julian Hyde


A literal is a constant, and so a cast of a literal is also a constant, but 
when we do constant reduction sometimes there are errors if the cast is not 
valid. For example, the query

{code}
values cast('' as integer)
{code}

gives {{ExceptionInInitializerError}} and, to make matters worse, the Avatica 
JDBC driver does not catch the exception (because it is a {{java.lang.Error}}) 
and wrap it as a {{java.sql.SQLException}} as it ought to.

Note that {{cast('1.2' as integer)}} is also invalid but {{cast(' -1 ' as 
integer)}} is valid.

This issue probably also applies to divide-by-zero and other exceptions 
evaluating scalar expressions.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to