Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-1439

Handle errors during constant reduction

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.12.0
    • None
    • None

    Description

      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

      values cast('' as integer)
      

      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.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            julianhyde Julian Hyde
            julianhyde Julian Hyde
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment