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

EXTRACT is not implemented for JDBC

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.14.0
    • Fix Version/s: 1.15.0
    • Component/s: core
    • Labels:
      None

      Description

      The following test fails with exception being added to JdbcTest:

        @Test public void testExtractMonthFromTimestamp() {
          CalciteAssert.that()
              .with(CalciteAssert.Config.JDBC_FOODMART)
              .query("select extract(month from \"birth_date\") as c \n"
                  + "from \"foodmart\".\"employee\" where \"employee_id\"=1")
              .returns("C=8\n");
        }
      

      Note, that it is important to make select from real table and not using limit so that planner tries to push EXTRACT to JdbcProject. But then it throws the following exception ():

      Caused by: java.sql.SQLException: Error while executing SQL "select extract(month from "birth_date") as c 
      from "foodmart"."employee" where "employee_id"=1": class org.apache.calcite.sql.SqlSyntax$6: SPECIAL
      	at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
      	at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
      	at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
      	at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218)
      	at org.apache.calcite.test.CalciteAssert.assertQuery(CalciteAssert.java:564)
      	... 26 more
      Caused by: java.lang.UnsupportedOperationException: class org.apache.calcite.sql.SqlSyntax$6: SPECIAL
      	at org.apache.calcite.util.Util.needToImplement(Util.java:923)
      	at org.apache.calcite.sql.SqlSyntax$6.unparse(SqlSyntax.java:116)
      	at org.apache.calcite.sql.SqlOperator.unparse(SqlOperator.java:332)
      	at org.apache.calcite.sql.SqlDialect$BaseHandler.unparseCall(SqlDialect.java:733)
      ...
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                julianhyde Julian Hyde
                Reporter:
                Pavel Gubin Pavel Gubin
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: