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

Illegal use of dynamic parameter when use preparestatement

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • core

    Description

      hi , when query with preparestatement, validator throws exception.

      here is 2 sqls:

      1、select LSTG_FORMAT_NAME

      from kylin_sales

      where LSTG_FORMAT_NAME=substring(?,1,6)

       

      2、select LSTG_FORMAT_NAME

      from kylin_sales

      where LSTG_FORMAT_NAME=substring(?,?,6)

       

      trace is:

      Caused by: org.apache.calcite.runtime.CalciteContextException: At line 4, column 34: Illegal use of dynamic parameter

      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

      at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

      at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)

      at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:803)

      at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:788)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4708)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1710)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1785)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1785)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validateWhereOrOn(SqlValidatorImpl.java:3906)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validateWhereClause(SqlValidatorImpl.java:3898)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3224)

      at org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)

      at org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:949)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:930)

      at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:226)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:905)

      at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:615)

      at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:576)

      at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:269)

      at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:235)

      at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:804)

      at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:663)

      at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:626)

      at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:232)

      at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:214)

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              zhangbushi5 yangzhang
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 40m
                  40m