I see we have SqlValidatorTest.testUpdateBind(), which seems very similar to 
your query, and it succeeds validation. But I don’t recall us testing dynamic 
parameters in the SET clause end-to-end, and your query is failing in 
sql-to-rel translation, just after validation. Can you log a JIRA case please?

Julian


> On Nov 14, 2017, at 12:45 PM, Enrico Olivelli <eolive...@gmail.com> wrote:
> 
> Hi,
> with a simple UPDATE like:
> UPDATE mytable set a=? where b=?
> 
> I get the error below.
> The "Table" is a ModifiableTable + ScannableTable, with "a" of type INTEGER
> and "b" of type VARCHAR
> 
> Any hint ?
> Thank you
> Enrico
> 
> 
> org.apache.calcite.runtime.CalciteContextException: At line 1, column 30:
> 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:4651)
>    at
> org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1694)
>    at
> org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1769)
>    at
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:457)
>    at
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandStar(SqlValidatorImpl.java:347)
>    at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectList(SqlToRelConverter.java:3709)
>    at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectImpl(SqlToRelConverter.java:663)
>    at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(SqlToRelConverter.java:620)
>    at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertUpdate(SqlToRelConverter.java:3398)
>    at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRecursive(SqlToRelConverter.java:3048)
>    at
> org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:556)
>    at org.apache.calcite.prepare.PlannerImpl.rel(PlannerImpl.java:240)

Reply via email to