[ 
https://issues.apache.org/jira/browse/CALCITE-1439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15877968#comment-15877968
 ] 

Jesus Camacho Rodriguez commented on CALCITE-1439:
--------------------------------------------------

{quote}
The only error that should be masked is if the constant reducer encounters a 
SQL runtime error while evaluating the user's expression.
{quote}
+1 on that. [~julianhyde], what about returning the original expression in the 
corresponding _reducedValues_ slot in that case? I think that would be a better 
way to handle this case.

> 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.15#6346)

Reply via email to