You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Enrico Olivelli <eo...@gmail.com> on 2017/11/18 10:47:29 UTC
Another error on using unbounded dynamic parameters
I found another query sent to my DBMS which causes troubles to Calcite
SELECT ? as foo, k1, n1 FROM mytable
The result is the usual: "Illegal use of dynamic parameter"
This time it is impossible to infer the type of the parameter.
I wonder if it would be possible to implement a configuration flag to make
the validator more "lenient" and allow unknowntype for dyn parameters
I think I am near the end of my transition to Calcite, this is the major
obstacle, I am seeing this fo updates, some kind of inserts and for this
kind of queries
Thoughts ?
Thank you very much, I like Calcite and I hope to be in production soon
Enrico
stacktrace:
org.apache.calcite.runtime.CalciteContextException: At line 1, column 8:
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:4655)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1698)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1773)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:461)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:3958)
at
org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3219)
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.apa
Re: Another error on using unbounded dynamic parameters
Posted by Julian Hyde <jh...@apache.org>.
See my comment https://issues.apache.org/jira/browse/CALCITE-2054?focusedCommentId=16259687&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16259687 <https://issues.apache.org/jira/browse/CALCITE-2054?focusedCommentId=16259687&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16259687>.
> On Nov 18, 2017, at 2:47 AM, Enrico Olivelli <eo...@gmail.com> wrote:
>
> I found another query sent to my DBMS which causes troubles to Calcite
>
> SELECT ? as foo, k1, n1 FROM mytable
>
> The result is the usual: "Illegal use of dynamic parameter"
>
> This time it is impossible to infer the type of the parameter.
> I wonder if it would be possible to implement a configuration flag to make
> the validator more "lenient" and allow unknowntype for dyn parameters
>
> I think I am near the end of my transition to Calcite, this is the major
> obstacle, I am seeing this fo updates, some kind of inserts and for this
> kind of queries
>
>
> Thoughts ?
>
> Thank you very much, I like Calcite and I hope to be in production soon
>
> Enrico
>
>
> stacktrace:
>
> org.apache.calcite.runtime.CalciteContextException: At line 1, column 8:
> 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:4655)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1698)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknownTypes(SqlValidatorImpl.java:1773)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:461)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:3958)
> at
> org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3219)
> 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.apa