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/14 20:45:42 UTC

Parser error on trivial JDBC update

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)

Re: Parser error on trivial JDBC update

Posted by Enrico Olivelli <eo...@gmail.com>.
I tried to solve the problem
this is my proposal
https://github.com/apache/calcite/pull/568

I think this partly resolves CALCITE-1708or at least one test case marked
with that issue now is working. But I did not drop the @Ignore annotation

2017-11-17 8:59 GMT+01:00 Enrico Olivelli <eo...@gmail.com>:

> OK
> I would like to pick up this issue and provide a fix.
>
> This is the test, working
> @Test public void testUpdateBind() {
>     final String sql = "update emp"
>         + " set sal = sal + ? where slacker = false";
>     sql(sql).ok();
>   }
>
> This is a new, simpler test, which is not working, same error as expected
>   @Test public void testUpdateBind2() {
>     final String sql = "update emp"
>         + " set sal = ? where slacker = false";
>     sql(sql).ok();
>   }
>
> Below this test there is a test marked as @Ignore due to CALCITE-1708,
> which is the same problem, but the test case was more complex.
>
> Can you give me some hint ?
> I am still a newbie in Calcite.
> How is it supposed to be bound the type for a dynamic parameter?
> In this case I think we could derive the type from the column which is
> going to be updated/filtered.
> Another approach would be to drop the assertion in this special case. I
> don't think it is bad to have a unknown type in this case, but maybe I am
> missing something.
>
>
> 2017-11-15 14:06 GMT+01:00 Enrico Olivelli <eo...@gmail.com>:
>
>> here it is
>> https://issues.apache.org/jira/browse/CALCITE-2054
>>
>> 2017-11-15 14:02 GMT+01:00 Enrico Olivelli <eo...@gmail.com>:
>>
>>> I will do,
>>> It crashes even if I switch to ProjectableFilterableTable I fall into
>>> this,
>>>
>>> For updates without parameters and using ProjectableFilterableTable I
>>> fall into this
>>> https://issues.apache.org/jira/browse/CALCITE-2039
>>> I have attached a reproducer.
>>>
>>> The same is for this email, I will create a JIRA now
>>>
>>> Can you please take into account of addressing the two for 1.15 ? They
>>> are realy blocker.
>>> At least CALCITE-2039
>>> In fact I went away from ProjectableFilterableTable because of
>>> CALCITE-2039
>>>
>>> I will do my best to support triage and testing,
>>> Thanks
>>> I hope to be able to leverage Calcite power soon
>>>
>>> Enrico
>>>
>>> 2017-11-14 23:55 GMT+01:00 Julian Hyde <jh...@apache.org>:
>>>
>>>> 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 <eo...@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(Native
>>>> ConstructorAccessorImpl.java:62)
>>>> >    at
>>>> > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De
>>>> legatingConstructorAccessorImpl.java:45)
>>>> >    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>>> >    at
>>>> > org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Reso
>>>> urces.java:463)
>>>> >    at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.j
>>>> ava:803)
>>>> >    at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.j
>>>> ava:788)
>>>> >    at
>>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.newValidati
>>>> onError(SqlValidatorImpl.java:4651)
>>>> >    at
>>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknow
>>>> nTypes(SqlValidatorImpl.java:1694)
>>>> >    at
>>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknow
>>>> nTypes(SqlValidatorImpl.java:1769)
>>>> >    at
>>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelec
>>>> tItem(SqlValidatorImpl.java:457)
>>>> >    at
>>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandStar(
>>>> SqlValidatorImpl.java:347)
>>>> >    at
>>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectLi
>>>> st(SqlToRelConverter.java:3709)
>>>> >    at
>>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectIm
>>>> pl(SqlToRelConverter.java:663)
>>>> >    at
>>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(S
>>>> qlToRelConverter.java:620)
>>>> >    at
>>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertUpdate(S
>>>> qlToRelConverter.java:3398)
>>>> >    at
>>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRec
>>>> ursive(SqlToRelConverter.java:3048)
>>>> >    at
>>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(Sq
>>>> lToRelConverter.java:556)
>>>> >    at org.apache.calcite.prepare.PlannerImpl.rel(PlannerImpl.java:
>>>> 240)
>>>>
>>>>
>>>
>>
>

Re: Parser error on trivial JDBC update

Posted by Enrico Olivelli <eo...@gmail.com>.
OK
I would like to pick up this issue and provide a fix.

This is the test, working
@Test public void testUpdateBind() {
    final String sql = "update emp"
        + " set sal = sal + ? where slacker = false";
    sql(sql).ok();
  }

This is a new, simpler test, which is not working, same error as expected
  @Test public void testUpdateBind2() {
    final String sql = "update emp"
        + " set sal = ? where slacker = false";
    sql(sql).ok();
  }

Below this test there is a test marked as @Ignore due to CALCITE-1708,
which is the same problem, but the test case was more complex.

Can you give me some hint ?
I am still a newbie in Calcite.
How is it supposed to be bound the type for a dynamic parameter?
In this case I think we could derive the type from the column which is
going to be updated/filtered.
Another approach would be to drop the assertion in this special case. I
don't think it is bad to have a unknown type in this case, but maybe I am
missing something.


2017-11-15 14:06 GMT+01:00 Enrico Olivelli <eo...@gmail.com>:

> here it is
> https://issues.apache.org/jira/browse/CALCITE-2054
>
> 2017-11-15 14:02 GMT+01:00 Enrico Olivelli <eo...@gmail.com>:
>
>> I will do,
>> It crashes even if I switch to ProjectableFilterableTable I fall into
>> this,
>>
>> For updates without parameters and using ProjectableFilterableTable I
>> fall into this
>> https://issues.apache.org/jira/browse/CALCITE-2039
>> I have attached a reproducer.
>>
>> The same is for this email, I will create a JIRA now
>>
>> Can you please take into account of addressing the two for 1.15 ? They
>> are realy blocker.
>> At least CALCITE-2039
>> In fact I went away from ProjectableFilterableTable because of
>> CALCITE-2039
>>
>> I will do my best to support triage and testing,
>> Thanks
>> I hope to be able to leverage Calcite power soon
>>
>> Enrico
>>
>> 2017-11-14 23:55 GMT+01:00 Julian Hyde <jh...@apache.org>:
>>
>>> 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 <eo...@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(Native
>>> ConstructorAccessorImpl.java:62)
>>> >    at
>>> > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De
>>> legatingConstructorAccessorImpl.java:45)
>>> >    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>>> >    at
>>> > org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Reso
>>> urces.java:463)
>>> >    at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.j
>>> ava:803)
>>> >    at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.j
>>> ava:788)
>>> >    at
>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.newValidati
>>> onError(SqlValidatorImpl.java:4651)
>>> >    at
>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknow
>>> nTypes(SqlValidatorImpl.java:1694)
>>> >    at
>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknow
>>> nTypes(SqlValidatorImpl.java:1769)
>>> >    at
>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelec
>>> tItem(SqlValidatorImpl.java:457)
>>> >    at
>>> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandStar(
>>> SqlValidatorImpl.java:347)
>>> >    at
>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectLi
>>> st(SqlToRelConverter.java:3709)
>>> >    at
>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectIm
>>> pl(SqlToRelConverter.java:663)
>>> >    at
>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(S
>>> qlToRelConverter.java:620)
>>> >    at
>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertUpdate(S
>>> qlToRelConverter.java:3398)
>>> >    at
>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRec
>>> ursive(SqlToRelConverter.java:3048)
>>> >    at
>>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(Sq
>>> lToRelConverter.java:556)
>>> >    at org.apache.calcite.prepare.PlannerImpl.rel(PlannerImpl.java:240)
>>>
>>>
>>
>

Re: Parser error on trivial JDBC update

Posted by Enrico Olivelli <eo...@gmail.com>.
here it is
https://issues.apache.org/jira/browse/CALCITE-2054

2017-11-15 14:02 GMT+01:00 Enrico Olivelli <eo...@gmail.com>:

> I will do,
> It crashes even if I switch to ProjectableFilterableTable I fall into this,
>
> For updates without parameters and using ProjectableFilterableTable I fall
> into this
> https://issues.apache.org/jira/browse/CALCITE-2039
> I have attached a reproducer.
>
> The same is for this email, I will create a JIRA now
>
> Can you please take into account of addressing the two for 1.15 ? They are
> realy blocker.
> At least CALCITE-2039
> In fact I went away from ProjectableFilterableTable because of CALCITE-2039
>
> I will do my best to support triage and testing,
> Thanks
> I hope to be able to leverage Calcite power soon
>
> Enrico
>
> 2017-11-14 23:55 GMT+01:00 Julian Hyde <jh...@apache.org>:
>
>> 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 <eo...@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(Native
>> ConstructorAccessorImpl.java:62)
>> >    at
>> > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(De
>> legatingConstructorAccessorImpl.java:45)
>> >    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
>> >    at
>> > org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Reso
>> urces.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.newValidati
>> onError(SqlValidatorImpl.java:4651)
>> >    at
>> > org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknow
>> nTypes(SqlValidatorImpl.java:1694)
>> >    at
>> > org.apache.calcite.sql.validate.SqlValidatorImpl.inferUnknow
>> nTypes(SqlValidatorImpl.java:1769)
>> >    at
>> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelec
>> tItem(SqlValidatorImpl.java:457)
>> >    at
>> > org.apache.calcite.sql.validate.SqlValidatorImpl.expandStar(
>> SqlValidatorImpl.java:347)
>> >    at
>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectLi
>> st(SqlToRelConverter.java:3709)
>> >    at
>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelectIm
>> pl(SqlToRelConverter.java:663)
>> >    at
>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertSelect(S
>> qlToRelConverter.java:620)
>> >    at
>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertUpdate(S
>> qlToRelConverter.java:3398)
>> >    at
>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertQueryRec
>> ursive(SqlToRelConverter.java:3048)
>> >    at
>> > org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(Sq
>> lToRelConverter.java:556)
>> >    at org.apache.calcite.prepare.PlannerImpl.rel(PlannerImpl.java:240)
>>
>>
>

Re: Parser error on trivial JDBC update

Posted by Enrico Olivelli <eo...@gmail.com>.
I will do,
It crashes even if I switch to ProjectableFilterableTable I fall into this,

For updates without parameters and using ProjectableFilterableTable I fall
into this
https://issues.apache.org/jira/browse/CALCITE-2039
I have attached a reproducer.

The same is for this email, I will create a JIRA now

Can you please take into account of addressing the two for 1.15 ? They are
realy blocker.
At least CALCITE-2039
In fact I went away from ProjectableFilterableTable because of CALCITE-2039

I will do my best to support triage and testing,
Thanks
I hope to be able to leverage Calcite power soon

Enrico

2017-11-14 23:55 GMT+01:00 Julian Hyde <jh...@apache.org>:

> 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 <eo...@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)
>
>

Re: Parser error on trivial JDBC update

Posted by Julian Hyde <jh...@apache.org>.
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 <eo...@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)