You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Dmitry Sysolyatin <dm...@gmail.com> on 2022/08/12 13:47:43 UTC

Problem with char type after upgrading from 1.30.0 to 1.31.0

Hi!
I have a problem with char data type after upgrading from 1.30 to 1.31. I
tried to execute a simple query "SELECT c.relkind FROM pg_catalog.pg_class
c" (relkind is JavaType(char) NOT NULL) and got an exception:

Unable to implement EnumerableCalc(expr#0..32=[{inputs}], relkind=[$t16]):
rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io}, id =
28
  EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount =
100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19

Suppressed: java.lang.RuntimeException: while resolving method
'toChar[class java.lang.Object]' in class class
org.apache.calcite.runtime.SqlFunctions
at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)

Queries with char literal work OK: "SELECT 'r';"
Does someone have an idea what can be wrong ?

Re: Problem with char type after upgrading from 1.30.0 to 1.31.0

Posted by Julian Hyde <jh...@gmail.com>.
Thanks for the update, Dmitry. Sounds like you were having one of those bad days, as we all do. Good to know that it’s not a problem on the Calcite side.

Julian


> On Aug 15, 2022, at 3:36 AM, Dmitry Sysolyatin <dm...@gmail.com> wrote:
> 
> Sorry guys for wasting your time, it is not regression. I just forgot to
> pull the latest changes that I made before vacation :)
> It did not work in older versions as well.
> 
> Anyway, I agree with the suggestion to participate on RCs
> 
> 
> 
> 
> On Fri, Aug 12, 2022 at 8:40 PM Julian Hyde <jh...@gmail.com> wrote:
> 
>> +1 to running your private test suite on RCs.
>> 
>> I guess no one thinks they are using a project in an ‘unconventional way’,
>> so let’s expand on that a little. If you run into a bug that no one else
>> has seen, that’s an indication that using Calcite differently than other
>> people. (Nothing wrong with that, by the way. It’s exciting when people
>> apply Calcite to new problems!) Please log the bug, but also take the time
>> to review the tests in that area, and write and contribute additional tests
>> if necessary. During that testing, you may or may not find additional bugs.
>> It’s good for both you and us that you discover bugs early.
>> 
>> Julian
>> 
>> 
>>> On Aug 12, 2022, at 10:30 AM, Ruben Q L <ru...@gmail.com> wrote:
>>> 
>>> Following Julian's comment, may I add: if your organization is using
>>> Calcite in an unconventional way, it is really helpful for the community
>> to
>>> participate in the release vote process, so that we can spot any issue
>> with
>>> a RC as soon as possible, in order to avoid rolling out releases with
>>> potential regressions.
>>> 
>>> Best,
>>> Ruben
>>> 
>>> 
>>> On Fri, Aug 12, 2022 at 5:40 PM Julian Hyde <jh...@gmail.com>
>> wrote:
>>> 
>>>> I don’t know whether we ever officially supported the Java ‘char’ type.
>>>> It’s worth checking whether there are any tests for it.
>>>> 
>>>> More generally: if your organization is using Calcite in an
>> unconventional
>>>> way, consider writing some tests for that area of functionality and
>>>> contributing them. You will be helping yourself and Calcite.
>>>> 
>>>> Julian
>>>> 
>>>> 
>>>>> On Aug 12, 2022, at 7:06 AM, Ruben Q L <ru...@gmail.com> wrote:
>>>>> 
>>>>> Hello Dmitry,
>>>>> 
>>>>> At first glance, it looks like a regression. Could you please create a
>>>> Jira
>>>>> ticket (ideally with a unit test that runs fine 1.30 but fails in
>> 1.31)?
>>>>> 
>>>>> Best,
>>>>> Ruben
>>>>> 
>>>>> 
>>>>> On Fri, Aug 12, 2022 at 2:48 PM Dmitry Sysolyatin <
>>>> dm.sysolyatin@gmail.com>
>>>>> wrote:
>>>>> 
>>>>>> Hi!
>>>>>> I have a problem with char data type after upgrading from 1.30 to
>> 1.31.
>>>> I
>>>>>> tried to execute a simple query "SELECT c.relkind FROM
>>>> pg_catalog.pg_class
>>>>>> c" (relkind is JavaType(char) NOT NULL) and got an exception:
>>>>>> 
>>>>>> Unable to implement EnumerableCalc(expr#0..32=[{inputs}],
>>>> relkind=[$t16]):
>>>>>> rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io},
>>>> id =
>>>>>> 28
>>>>>> EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount
>>>> =
>>>>>> 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19
>>>>>> 
>>>>>> Suppressed: java.lang.RuntimeException: while resolving method
>>>>>> 'toChar[class java.lang.Object]' in class class
>>>>>> org.apache.calcite.runtime.SqlFunctions
>>>>>> at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
>>>>>> at
>> org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
>>>>>> at
>> org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)
>>>>>> 
>>>>>> Queries with char literal work OK: "SELECT 'r';"
>>>>>> Does someone have an idea what can be wrong ?
>>>>>> 
>>>> 
>>>> 
>> 
>> 


Re: Problem with char type after upgrading from 1.30.0 to 1.31.0

Posted by Dmitry Sysolyatin <dm...@gmail.com>.
Sorry guys for wasting your time, it is not regression. I just forgot to
pull the latest changes that I made before vacation :)
It did not work in older versions as well.

Anyway, I agree with the suggestion to participate on RCs




On Fri, Aug 12, 2022 at 8:40 PM Julian Hyde <jh...@gmail.com> wrote:

> +1 to running your private test suite on RCs.
>
> I guess no one thinks they are using a project in an ‘unconventional way’,
> so let’s expand on that a little. If you run into a bug that no one else
> has seen, that’s an indication that using Calcite differently than other
> people. (Nothing wrong with that, by the way. It’s exciting when people
> apply Calcite to new problems!) Please log the bug, but also take the time
> to review the tests in that area, and write and contribute additional tests
> if necessary. During that testing, you may or may not find additional bugs.
> It’s good for both you and us that you discover bugs early.
>
> Julian
>
>
> > On Aug 12, 2022, at 10:30 AM, Ruben Q L <ru...@gmail.com> wrote:
> >
> > Following Julian's comment, may I add: if your organization is using
> > Calcite in an unconventional way, it is really helpful for the community
> to
> > participate in the release vote process, so that we can spot any issue
> with
> > a RC as soon as possible, in order to avoid rolling out releases with
> > potential regressions.
> >
> > Best,
> > Ruben
> >
> >
> > On Fri, Aug 12, 2022 at 5:40 PM Julian Hyde <jh...@gmail.com>
> wrote:
> >
> >> I don’t know whether we ever officially supported the Java ‘char’ type.
> >> It’s worth checking whether there are any tests for it.
> >>
> >> More generally: if your organization is using Calcite in an
> unconventional
> >> way, consider writing some tests for that area of functionality and
> >> contributing them. You will be helping yourself and Calcite.
> >>
> >> Julian
> >>
> >>
> >>> On Aug 12, 2022, at 7:06 AM, Ruben Q L <ru...@gmail.com> wrote:
> >>>
> >>> Hello Dmitry,
> >>>
> >>> At first glance, it looks like a regression. Could you please create a
> >> Jira
> >>> ticket (ideally with a unit test that runs fine 1.30 but fails in
> 1.31)?
> >>>
> >>> Best,
> >>> Ruben
> >>>
> >>>
> >>> On Fri, Aug 12, 2022 at 2:48 PM Dmitry Sysolyatin <
> >> dm.sysolyatin@gmail.com>
> >>> wrote:
> >>>
> >>>> Hi!
> >>>> I have a problem with char data type after upgrading from 1.30 to
> 1.31.
> >> I
> >>>> tried to execute a simple query "SELECT c.relkind FROM
> >> pg_catalog.pg_class
> >>>> c" (relkind is JavaType(char) NOT NULL) and got an exception:
> >>>>
> >>>> Unable to implement EnumerableCalc(expr#0..32=[{inputs}],
> >> relkind=[$t16]):
> >>>> rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io},
> >> id =
> >>>> 28
> >>>> EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount
> >> =
> >>>> 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19
> >>>>
> >>>> Suppressed: java.lang.RuntimeException: while resolving method
> >>>> 'toChar[class java.lang.Object]' in class class
> >>>> org.apache.calcite.runtime.SqlFunctions
> >>>> at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
> >>>> at
> org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
> >>>> at
> org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)
> >>>>
> >>>> Queries with char literal work OK: "SELECT 'r';"
> >>>> Does someone have an idea what can be wrong ?
> >>>>
> >>
> >>
>
>

Re: Problem with char type after upgrading from 1.30.0 to 1.31.0

Posted by Julian Hyde <jh...@gmail.com>.
+1 to running your private test suite on RCs.

I guess no one thinks they are using a project in an ‘unconventional way’, so let’s expand on that a little. If you run into a bug that no one else has seen, that’s an indication that using Calcite differently than other people. (Nothing wrong with that, by the way. It’s exciting when people apply Calcite to new problems!) Please log the bug, but also take the time to review the tests in that area, and write and contribute additional tests if necessary. During that testing, you may or may not find additional bugs. It’s good for both you and us that you discover bugs early.

Julian


> On Aug 12, 2022, at 10:30 AM, Ruben Q L <ru...@gmail.com> wrote:
> 
> Following Julian's comment, may I add: if your organization is using
> Calcite in an unconventional way, it is really helpful for the community to
> participate in the release vote process, so that we can spot any issue with
> a RC as soon as possible, in order to avoid rolling out releases with
> potential regressions.
> 
> Best,
> Ruben
> 
> 
> On Fri, Aug 12, 2022 at 5:40 PM Julian Hyde <jh...@gmail.com> wrote:
> 
>> I don’t know whether we ever officially supported the Java ‘char’ type.
>> It’s worth checking whether there are any tests for it.
>> 
>> More generally: if your organization is using Calcite in an unconventional
>> way, consider writing some tests for that area of functionality and
>> contributing them. You will be helping yourself and Calcite.
>> 
>> Julian
>> 
>> 
>>> On Aug 12, 2022, at 7:06 AM, Ruben Q L <ru...@gmail.com> wrote:
>>> 
>>> Hello Dmitry,
>>> 
>>> At first glance, it looks like a regression. Could you please create a
>> Jira
>>> ticket (ideally with a unit test that runs fine 1.30 but fails in 1.31)?
>>> 
>>> Best,
>>> Ruben
>>> 
>>> 
>>> On Fri, Aug 12, 2022 at 2:48 PM Dmitry Sysolyatin <
>> dm.sysolyatin@gmail.com>
>>> wrote:
>>> 
>>>> Hi!
>>>> I have a problem with char data type after upgrading from 1.30 to 1.31.
>> I
>>>> tried to execute a simple query "SELECT c.relkind FROM
>> pg_catalog.pg_class
>>>> c" (relkind is JavaType(char) NOT NULL) and got an exception:
>>>> 
>>>> Unable to implement EnumerableCalc(expr#0..32=[{inputs}],
>> relkind=[$t16]):
>>>> rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io},
>> id =
>>>> 28
>>>> EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount
>> =
>>>> 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19
>>>> 
>>>> Suppressed: java.lang.RuntimeException: while resolving method
>>>> 'toChar[class java.lang.Object]' in class class
>>>> org.apache.calcite.runtime.SqlFunctions
>>>> at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
>>>> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
>>>> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)
>>>> 
>>>> Queries with char literal work OK: "SELECT 'r';"
>>>> Does someone have an idea what can be wrong ?
>>>> 
>> 
>> 


Re: Problem with char type after upgrading from 1.30.0 to 1.31.0

Posted by Ruben Q L <ru...@gmail.com>.
Following Julian's comment, may I add: if your organization is using
Calcite in an unconventional way, it is really helpful for the community to
participate in the release vote process, so that we can spot any issue with
a RC as soon as possible, in order to avoid rolling out releases with
potential regressions.

Best,
Ruben


On Fri, Aug 12, 2022 at 5:40 PM Julian Hyde <jh...@gmail.com> wrote:

> I don’t know whether we ever officially supported the Java ‘char’ type.
> It’s worth checking whether there are any tests for it.
>
> More generally: if your organization is using Calcite in an unconventional
> way, consider writing some tests for that area of functionality and
> contributing them. You will be helping yourself and Calcite.
>
> Julian
>
>
> > On Aug 12, 2022, at 7:06 AM, Ruben Q L <ru...@gmail.com> wrote:
> >
> > Hello Dmitry,
> >
> > At first glance, it looks like a regression. Could you please create a
> Jira
> > ticket (ideally with a unit test that runs fine 1.30 but fails in 1.31)?
> >
> > Best,
> > Ruben
> >
> >
> > On Fri, Aug 12, 2022 at 2:48 PM Dmitry Sysolyatin <
> dm.sysolyatin@gmail.com>
> > wrote:
> >
> >> Hi!
> >> I have a problem with char data type after upgrading from 1.30 to 1.31.
> I
> >> tried to execute a simple query "SELECT c.relkind FROM
> pg_catalog.pg_class
> >> c" (relkind is JavaType(char) NOT NULL) and got an exception:
> >>
> >> Unable to implement EnumerableCalc(expr#0..32=[{inputs}],
> relkind=[$t16]):
> >> rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io},
> id =
> >> 28
> >>  EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount
> =
> >> 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19
> >>
> >> Suppressed: java.lang.RuntimeException: while resolving method
> >> 'toChar[class java.lang.Object]' in class class
> >> org.apache.calcite.runtime.SqlFunctions
> >> at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
> >> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
> >> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)
> >>
> >> Queries with char literal work OK: "SELECT 'r';"
> >> Does someone have an idea what can be wrong ?
> >>
>
>

Re: Problem with char type after upgrading from 1.30.0 to 1.31.0

Posted by Julian Hyde <jh...@gmail.com>.
I don’t know whether we ever officially supported the Java ‘char’ type. It’s worth checking whether there are any tests for it.

More generally: if your organization is using Calcite in an unconventional way, consider writing some tests for that area of functionality and contributing them. You will be helping yourself and Calcite.

Julian


> On Aug 12, 2022, at 7:06 AM, Ruben Q L <ru...@gmail.com> wrote:
> 
> Hello Dmitry,
> 
> At first glance, it looks like a regression. Could you please create a Jira
> ticket (ideally with a unit test that runs fine 1.30 but fails in 1.31)?
> 
> Best,
> Ruben
> 
> 
> On Fri, Aug 12, 2022 at 2:48 PM Dmitry Sysolyatin <dm...@gmail.com>
> wrote:
> 
>> Hi!
>> I have a problem with char data type after upgrading from 1.30 to 1.31. I
>> tried to execute a simple query "SELECT c.relkind FROM pg_catalog.pg_class
>> c" (relkind is JavaType(char) NOT NULL) and got an exception:
>> 
>> Unable to implement EnumerableCalc(expr#0..32=[{inputs}], relkind=[$t16]):
>> rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io}, id =
>> 28
>>  EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount =
>> 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19
>> 
>> Suppressed: java.lang.RuntimeException: while resolving method
>> 'toChar[class java.lang.Object]' in class class
>> org.apache.calcite.runtime.SqlFunctions
>> at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
>> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
>> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)
>> 
>> Queries with char literal work OK: "SELECT 'r';"
>> Does someone have an idea what can be wrong ?
>> 


Re: Problem with char type after upgrading from 1.30.0 to 1.31.0

Posted by Ruben Q L <ru...@gmail.com>.
Hello Dmitry,

At first glance, it looks like a regression. Could you please create a Jira
ticket (ideally with a unit test that runs fine 1.30 but fails in 1.31)?

Best,
Ruben


On Fri, Aug 12, 2022 at 2:48 PM Dmitry Sysolyatin <dm...@gmail.com>
wrote:

> Hi!
> I have a problem with char data type after upgrading from 1.30 to 1.31. I
> tried to execute a simple query "SELECT c.relkind FROM pg_catalog.pg_class
> c" (relkind is JavaType(char) NOT NULL) and got an exception:
>
> Unable to implement EnumerableCalc(expr#0..32=[{inputs}], relkind=[$t16]):
> rowcount = 100.0, cumulative cost = {200.0 rows, 3501.0 cpu, 0.0 io}, id =
> 28
>   EnumerableTableScan(table=[[default, pg_catalog, pg_class]]): rowcount =
> 100.0, cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io}, id = 19
>
> Suppressed: java.lang.RuntimeException: while resolving method
> 'toChar[class java.lang.Object]' in class class
> org.apache.calcite.runtime.SqlFunctions
> at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318)
> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:448)
> at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:460)
>
> Queries with char literal work OK: "SELECT 'r';"
> Does someone have an idea what can be wrong ?
>