You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Stamatis Zampetakis <za...@gmail.com> on 2021/03/09 14:29:16 UTC

Re: [DISCUSS] Towards Calcite 1.27.0

Many thanks for moving this forward Julian, much appreciated.

At the moment the main blocker is the Avatica release ([1,2]) that in turn
waits for CALCITE-4503 [3].
It would be great if somebody has some cycles to review and merge the
respective PR [4].

Best,
Stamatis

[1] https://issues.apache.org/jira/browse/CALCITE-4528
[2] https://issues.apache.org/jira/browse/CALCITE-4488
[3] https://issues.apache.org/jira/browse/CALCITE-4503
[4] https://github.com/apache/calcite-avatica/pull/138

On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org> wrote:

> Vladimir,
>
> Thanks for finding this bug. Please log it.
>
> I don't intend to fix any more bugs in this area before 1.27. It has
> been a huge effort on my part, and I have not received any help from
> anyone.
>
> Julian
>
> On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> <si...@gmail.com> wrote:
> >
> > Thanks for pushing this forward.
> >
> > Would you please add search/sarg shrinking to RexShrinker?
> >
> > There are failures though:
> >
> >   @Test void singleFuzzyTest() {
> >     Random r = new Random();
> >     r.setSeed(6321443803263498676L);
> >     RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> >     generateRexAndCheckTrueFalse(fuzzer, r);
> >   }
> >
> > yields
> >
> > $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> >
> > SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false, SEARCH(?0.notNullInt0,
> > Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> -(+(100500),
> > -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0, ?0.notNullBool0),
> > null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1), 1), 1,
> > =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> > COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> null:INTEGER)),
> > +(*(COALESCE(COALESCE(1, -2038957448, 0), CASE(false, ?0.int0,
> > null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
> > COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1, false),
> > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0, ?0.bool1,
> > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1, 1),
> > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1, ?0.notNullInt0)),
> > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER), *(1994412942,
> > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)), -(null,
> > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> ?0.int1),
> > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> *(-1236110720,
> > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)), Sarg[=])
> >
> > Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT
> > TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> > CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> ?0.notNullInt1))),
> > CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1), -(null,
> > ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> > -(null:INTEGER, null:INTEGER)), null:INTEGER)), +(*(COALESCE(COALESCE(1,
> > -2038957448, 0), CASE(false, ?0.int0, null:INTEGER),
> > COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1), COALESCE(0,
> > 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1, ?0.notNullInt0,
> > null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1, false),
> > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0, ?0.bool1,
> > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1, 1),
> > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1, ?0.notNullInt0)),
> > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER), *(1994412942,
> > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)), -(null,
> > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> ?0.int1),
> > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> *(-1236110720,
> > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> >
> > at
> >
> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> >
> > Vladimir
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Stamatis Zampetakis <za...@gmail.com>.
Hi all,

I am currently preparing the first release candidate for 1.27.0.

Please do not commit to master, until further notice.

Best,
Stamatis

On Fri, May 28, 2021 at 4:15 PM Stamatis Zampetakis <za...@gmail.com>
wrote:

> I did a pass over the JIRA issues marked for 1.27.0 release.
> I moved some that were promising but not close to be resolved in 1.28.0
> and for others that there was not much (or any) progress I removed the fix
> version tag.
> After the cleanup it seems that there are three/four issues [1] that could
> possibly go in rather fast (in the next day or so).
> I left some comments under each case so I am waiting for feedback to
> prepare the first release candidate.
>
> Please let me know ASAP if there is some other issue that is not in the
> list [1] and needs to be in 1.27.0.
>
> Best,
> Stamatis
>
> [1]
> https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12333950
>
> On Mon, May 24, 2021 at 10:10 PM Ruben Q L <ru...@gmail.com> wrote:
>
>> I'll pick 3-5 PRs too.
>>
>> Ruben
>>
>> On Mon, May 24, 2021 at 8:34 PM Julian Hyde <jh...@gmail.com>
>> wrote:
>>
>> > Thanks Rui! Just pick 5 PRs that look interesting to you, and assign the
>> > JIRA to yourself (as active reviewer). If you need help/advice, mention
>> > people in the JIRA comments.
>> >
>> > We need 4 more volunteers…
>> >
>> > Julian
>> >
>> >
>> > > On May 24, 2021, at 11:28 AM, Rui Wang <am...@apache.org> wrote:
>> > >
>> > > Please tag me on PRs that you need my help. I will check those soon.
>> > >
>> > >
>> > > -Rui
>> > >
>> > > On Mon, May 24, 2021 at 11:06 AM Julian Hyde <jh...@apache.org>
>> wrote:
>> > >
>> > >> We still need 5 committers to review 5 PRs each. Please reply to this
>> > >> email to volunteer.
>> > >>
>> > >> On Fri, May 21, 2021 at 3:41 PM Stamatis Zampetakis <
>> zabetak@gmail.com>
>> > >> wrote:
>> > >>>
>> > >>> I agree with Julian, we should get the 1.27.0 out as soon as
>> possible.
>> > >>>
>> > >>> I can try to prepare RC0 between the 28 and 30 of May, if people
>> agree
>> > on
>> > >>> this.
>> > >>> Alternatively, I will have a bit more time around 17 to 20 of June.
>> > >>>
>> > >>> I will try to get 2-3 PRs in before starting the RC.
>> > >>>
>> > >>> Best,
>> > >>> Stamatis
>> > >>>
>> > >>>
>> > >>> On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org>
>> wrote:
>> > >>>
>> > >>>> Now Avatica 1.18 has been released (thanks, Francis!) we should
>> press
>> > >> on
>> > >>>> with Calcite 1.27.
>> > >>>>
>> > >>>> Who is release manager? Stamatis, You volunteered to be release
>> > manager
>> > >>>> for 1.27 [1] but I would be happy to jump in. Let me know.
>> > >>>>
>> > >>>> There is a backlog of PRs that look good enough to go into 1.27.
>> How
>> > to
>> > >>>> tackle these? I think we need 4 or 5 committers to each look over
>> 4 or
>> > >> 5
>> > >>>> PRs in the next few days. Please reply to this email if you are
>> > >> prepared to
>> > >>>> help.
>> > >>>>
>> > >>>> Julian
>> > >>>>
>> > >>>> [1]
>> > >>>>
>> > >>
>> >
>> https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
>> > >>>>
>> > >>>> On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com>
>> > wrote:
>> > >>>>> Many thanks for moving this forward Julian, much appreciated.
>> > >>>>>
>> > >>>>> At the moment the main blocker is the Avatica release ([1,2])
>> that in
>> > >>>> turn
>> > >>>>> waits for CALCITE-4503 [3].
>> > >>>>> It would be great if somebody has some cycles to review and merge
>> the
>> > >>>>> respective PR [4].
>> > >>>>>
>> > >>>>> Best,
>> > >>>>> Stamatis
>> > >>>>>
>> > >>>>> [1] https://issues.apache.org/jira/browse/CALCITE-4528
>> > >>>>> [2] https://issues.apache.org/jira/browse/CALCITE-4488
>> > >>>>> [3] https://issues.apache.org/jira/browse/CALCITE-4503
>> > >>>>> [4] https://github.com/apache/calcite-avatica/pull/138
>> > >>>>>
>> > >>>>> On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org>
>> > >> wrote:
>> > >>>>>
>> > >>>>>> Vladimir,
>> > >>>>>>
>> > >>>>>> Thanks for finding this bug. Please log it.
>> > >>>>>>
>> > >>>>>> I don't intend to fix any more bugs in this area before 1.27. It
>> > >> has
>> > >>>>>> been a huge effort on my part, and I have not received any help
>> > >> from
>> > >>>>>> anyone.
>> > >>>>>>
>> > >>>>>> Julian
>> > >>>>>>
>> > >>>>>> On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
>> > >>>>>> <si...@gmail.com> wrote:
>> > >>>>>>>
>> > >>>>>>> Thanks for pushing this forward.
>> > >>>>>>>
>> > >>>>>>> Would you please add search/sarg shrinking to RexShrinker?
>> > >>>>>>>
>> > >>>>>>> There are failures though:
>> > >>>>>>>
>> > >>>>>>>  @Test void singleFuzzyTest() {
>> > >>>>>>>    Random r = new Random();
>> > >>>>>>>    r.setSeed(6321443803263498676L);
>> > >>>>>>>    RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
>> > >>>>>>>    generateRexAndCheckTrueFalse(fuzzer, r);
>> > >>>>>>>  }
>> > >>>>>>>
>> > >>>>>>> yields
>> > >>>>>>>
>> > >>>>>>> $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
>> > >>>>>>>
>> > >>>>>>> SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false,
>> > >> SEARCH(?0.notNullInt0,
>> > >>>>>>> Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
>> > >>>>>> -(+(100500),
>> > >>>>>>> -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0,
>> > >> ?0.notNullBool0),
>> > >>>>>>> null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1),
>> > >> 1), 1,
>> > >>>>>>> =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
>> > >>>>>>> COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
>> > >>>>>> null:INTEGER)),
>> > >>>>>>> +(*(COALESCE(COALESCE(1, -2038957448 <(203)%20895-7448>, 0),
>> > >> CASE(false, ?0.int0,
>> > >>>>>>> null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER,
>> > >> null:INTEGER,
>> > >>>> -1),
>> > >>>>>>> COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500),
>> > >> CASE(?0.bool1,
>> > >>>>>>> ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER),
>> > >> 100500),
>> > >>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
>> > >>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
>> > >> ?0.notNullInt1,
>> > >>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
>> > >>>> false),
>> > >>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
>> > >>>> ?0.bool1,
>> > >>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
>> > >>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
>> > >> =(-1,
>> > >>>> 1),
>> > >>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
>> > >>>> ?0.notNullInt0)),
>> > >>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
>> > >>>> *(1994412942,
>> > >>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
>> > >>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
>> > >>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
>> > >>>> -(null,
>> > >>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)),
>> +(-(null,
>> > >>>>>> ?0.int1),
>> > >>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
>> > >>>>>> *(-1236110720,
>> > >>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
>> > >> null:INTEGER,
>> > >>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)),
>> > >> Sarg[=])
>> > >>>>>>>
>> > >>>>>>> Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
>> > >>>>>>> SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true),
>> > >> NOT(IS
>> > >>>> NOT
>> > >>>>>>> TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
>> > >>>>>>> CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
>> > >>>>>> ?0.notNullInt1))),
>> > >>>>>>> CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1),
>> > >> -(null,
>> > >>>>>>> ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
>> > >>>>>>> -(null:INTEGER, null:INTEGER)), null:INTEGER)),
>> > >>>> +(*(COALESCE(COALESCE(1,
>> > >>>>>>> -2038957448 <(203)%20895-7448>, 0), CASE(false, ?0.int0,
>> > >> null:INTEGER),
>> > >>>>>>> COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
>> > >> COALESCE(0,
>> > >>>>>>> 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
>> > >>>> ?0.notNullInt0,
>> > >>>>>>> null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
>> > >>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
>> > >>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
>> > >> ?0.notNullInt1,
>> > >>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
>> > >>>> false),
>> > >>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
>> > >>>> ?0.bool1,
>> > >>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
>> > >>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
>> > >> =(-1,
>> > >>>> 1),
>> > >>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
>> > >>>> ?0.notNullInt0)),
>> > >>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
>> > >>>> *(1994412942,
>> > >>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
>> > >>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
>> > >>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
>> > >>>> -(null,
>> > >>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)),
>> +(-(null,
>> > >>>>>> ?0.int1),
>> > >>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
>> > >>>>>> *(-1236110720,
>> > >>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
>> > >> null:INTEGER,
>> > >>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
>> > >>>>>>>
>> > >>>>>>> at
>> > >>>>>>>
>> > >>>>>>
>> > >>>>
>> > >>
>> >
>> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
>> > >>>>>>>
>> > >>>>>>> Vladimir
>> > >>>>>>
>> > >>>>>
>> > >>>>
>> > >>
>> >
>> >
>>
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Stamatis Zampetakis <za...@gmail.com>.
I did a pass over the JIRA issues marked for 1.27.0 release.
I moved some that were promising but not close to be resolved in 1.28.0 and
for others that there was not much (or any) progress I removed the fix
version tag.
After the cleanup it seems that there are three/four issues [1] that could
possibly go in rather fast (in the next day or so).
I left some comments under each case so I am waiting for feedback to
prepare the first release candidate.

Please let me know ASAP if there is some other issue that is not in the
list [1] and needs to be in 1.27.0.

Best,
Stamatis

[1]
https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12333950

On Mon, May 24, 2021 at 10:10 PM Ruben Q L <ru...@gmail.com> wrote:

> I'll pick 3-5 PRs too.
>
> Ruben
>
> On Mon, May 24, 2021 at 8:34 PM Julian Hyde <jh...@gmail.com>
> wrote:
>
> > Thanks Rui! Just pick 5 PRs that look interesting to you, and assign the
> > JIRA to yourself (as active reviewer). If you need help/advice, mention
> > people in the JIRA comments.
> >
> > We need 4 more volunteers…
> >
> > Julian
> >
> >
> > > On May 24, 2021, at 11:28 AM, Rui Wang <am...@apache.org> wrote:
> > >
> > > Please tag me on PRs that you need my help. I will check those soon.
> > >
> > >
> > > -Rui
> > >
> > > On Mon, May 24, 2021 at 11:06 AM Julian Hyde <jh...@apache.org> wrote:
> > >
> > >> We still need 5 committers to review 5 PRs each. Please reply to this
> > >> email to volunteer.
> > >>
> > >> On Fri, May 21, 2021 at 3:41 PM Stamatis Zampetakis <
> zabetak@gmail.com>
> > >> wrote:
> > >>>
> > >>> I agree with Julian, we should get the 1.27.0 out as soon as
> possible.
> > >>>
> > >>> I can try to prepare RC0 between the 28 and 30 of May, if people
> agree
> > on
> > >>> this.
> > >>> Alternatively, I will have a bit more time around 17 to 20 of June.
> > >>>
> > >>> I will try to get 2-3 PRs in before starting the RC.
> > >>>
> > >>> Best,
> > >>> Stamatis
> > >>>
> > >>>
> > >>> On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org>
> wrote:
> > >>>
> > >>>> Now Avatica 1.18 has been released (thanks, Francis!) we should
> press
> > >> on
> > >>>> with Calcite 1.27.
> > >>>>
> > >>>> Who is release manager? Stamatis, You volunteered to be release
> > manager
> > >>>> for 1.27 [1] but I would be happy to jump in. Let me know.
> > >>>>
> > >>>> There is a backlog of PRs that look good enough to go into 1.27. How
> > to
> > >>>> tackle these? I think we need 4 or 5 committers to each look over 4
> or
> > >> 5
> > >>>> PRs in the next few days. Please reply to this email if you are
> > >> prepared to
> > >>>> help.
> > >>>>
> > >>>> Julian
> > >>>>
> > >>>> [1]
> > >>>>
> > >>
> >
> https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
> > >>>>
> > >>>> On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com>
> > wrote:
> > >>>>> Many thanks for moving this forward Julian, much appreciated.
> > >>>>>
> > >>>>> At the moment the main blocker is the Avatica release ([1,2]) that
> in
> > >>>> turn
> > >>>>> waits for CALCITE-4503 [3].
> > >>>>> It would be great if somebody has some cycles to review and merge
> the
> > >>>>> respective PR [4].
> > >>>>>
> > >>>>> Best,
> > >>>>> Stamatis
> > >>>>>
> > >>>>> [1] https://issues.apache.org/jira/browse/CALCITE-4528
> > >>>>> [2] https://issues.apache.org/jira/browse/CALCITE-4488
> > >>>>> [3] https://issues.apache.org/jira/browse/CALCITE-4503
> > >>>>> [4] https://github.com/apache/calcite-avatica/pull/138
> > >>>>>
> > >>>>> On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org>
> > >> wrote:
> > >>>>>
> > >>>>>> Vladimir,
> > >>>>>>
> > >>>>>> Thanks for finding this bug. Please log it.
> > >>>>>>
> > >>>>>> I don't intend to fix any more bugs in this area before 1.27. It
> > >> has
> > >>>>>> been a huge effort on my part, and I have not received any help
> > >> from
> > >>>>>> anyone.
> > >>>>>>
> > >>>>>> Julian
> > >>>>>>
> > >>>>>> On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> > >>>>>> <si...@gmail.com> wrote:
> > >>>>>>>
> > >>>>>>> Thanks for pushing this forward.
> > >>>>>>>
> > >>>>>>> Would you please add search/sarg shrinking to RexShrinker?
> > >>>>>>>
> > >>>>>>> There are failures though:
> > >>>>>>>
> > >>>>>>>  @Test void singleFuzzyTest() {
> > >>>>>>>    Random r = new Random();
> > >>>>>>>    r.setSeed(6321443803263498676L);
> > >>>>>>>    RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> > >>>>>>>    generateRexAndCheckTrueFalse(fuzzer, r);
> > >>>>>>>  }
> > >>>>>>>
> > >>>>>>> yields
> > >>>>>>>
> > >>>>>>> $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> > >>>>>>>
> > >>>>>>> SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > >> SEARCH(?0.notNullInt0,
> > >>>>>>> Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> > >>>>>> -(+(100500),
> > >>>>>>> -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0,
> > >> ?0.notNullBool0),
> > >>>>>>> null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1),
> > >> 1), 1,
> > >>>>>>> =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> > >>>>>>> COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> > >>>>>> null:INTEGER)),
> > >>>>>>> +(*(COALESCE(COALESCE(1, -2038957448 <(203)%20895-7448>, 0),
> > >> CASE(false, ?0.int0,
> > >>>>>>> null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER,
> > >> null:INTEGER,
> > >>>> -1),
> > >>>>>>> COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500),
> > >> CASE(?0.bool1,
> > >>>>>>> ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER),
> > >> 100500),
> > >>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > >>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
> > >> ?0.notNullInt1,
> > >>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> > >>>> false),
> > >>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> > >>>> ?0.bool1,
> > >>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > >>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
> > >> =(-1,
> > >>>> 1),
> > >>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> > >>>> ?0.notNullInt0)),
> > >>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> > >>>> *(1994412942,
> > >>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > >>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > >>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> > >>>> -(null,
> > >>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > >>>>>> ?0.int1),
> > >>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > >>>>>> *(-1236110720,
> > >>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
> > >> null:INTEGER,
> > >>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)),
> > >> Sarg[=])
> > >>>>>>>
> > >>>>>>> Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > >>>>>>> SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true),
> > >> NOT(IS
> > >>>> NOT
> > >>>>>>> TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> > >>>>>>> CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> > >>>>>> ?0.notNullInt1))),
> > >>>>>>> CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1),
> > >> -(null,
> > >>>>>>> ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> > >>>>>>> -(null:INTEGER, null:INTEGER)), null:INTEGER)),
> > >>>> +(*(COALESCE(COALESCE(1,
> > >>>>>>> -2038957448 <(203)%20895-7448>, 0), CASE(false, ?0.int0,
> > >> null:INTEGER),
> > >>>>>>> COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
> > >> COALESCE(0,
> > >>>>>>> 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > >>>> ?0.notNullInt0,
> > >>>>>>> null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > >>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > >>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
> > >> ?0.notNullInt1,
> > >>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> > >>>> false),
> > >>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> > >>>> ?0.bool1,
> > >>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > >>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
> > >> =(-1,
> > >>>> 1),
> > >>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> > >>>> ?0.notNullInt0)),
> > >>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> > >>>> *(1994412942,
> > >>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > >>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > >>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> > >>>> -(null,
> > >>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > >>>>>> ?0.int1),
> > >>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > >>>>>> *(-1236110720,
> > >>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
> > >> null:INTEGER,
> > >>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> > >>>>>>>
> > >>>>>>> at
> > >>>>>>>
> > >>>>>>
> > >>>>
> > >>
> >
> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> > >>>>>>>
> > >>>>>>> Vladimir
> > >>>>>>
> > >>>>>
> > >>>>
> > >>
> >
> >
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Ruben Q L <ru...@gmail.com>.
I'll pick 3-5 PRs too.

Ruben

On Mon, May 24, 2021 at 8:34 PM Julian Hyde <jh...@gmail.com> wrote:

> Thanks Rui! Just pick 5 PRs that look interesting to you, and assign the
> JIRA to yourself (as active reviewer). If you need help/advice, mention
> people in the JIRA comments.
>
> We need 4 more volunteers…
>
> Julian
>
>
> > On May 24, 2021, at 11:28 AM, Rui Wang <am...@apache.org> wrote:
> >
> > Please tag me on PRs that you need my help. I will check those soon.
> >
> >
> > -Rui
> >
> > On Mon, May 24, 2021 at 11:06 AM Julian Hyde <jh...@apache.org> wrote:
> >
> >> We still need 5 committers to review 5 PRs each. Please reply to this
> >> email to volunteer.
> >>
> >> On Fri, May 21, 2021 at 3:41 PM Stamatis Zampetakis <za...@gmail.com>
> >> wrote:
> >>>
> >>> I agree with Julian, we should get the 1.27.0 out as soon as possible.
> >>>
> >>> I can try to prepare RC0 between the 28 and 30 of May, if people agree
> on
> >>> this.
> >>> Alternatively, I will have a bit more time around 17 to 20 of June.
> >>>
> >>> I will try to get 2-3 PRs in before starting the RC.
> >>>
> >>> Best,
> >>> Stamatis
> >>>
> >>>
> >>> On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org> wrote:
> >>>
> >>>> Now Avatica 1.18 has been released (thanks, Francis!) we should press
> >> on
> >>>> with Calcite 1.27.
> >>>>
> >>>> Who is release manager? Stamatis, You volunteered to be release
> manager
> >>>> for 1.27 [1] but I would be happy to jump in. Let me know.
> >>>>
> >>>> There is a backlog of PRs that look good enough to go into 1.27. How
> to
> >>>> tackle these? I think we need 4 or 5 committers to each look over 4 or
> >> 5
> >>>> PRs in the next few days. Please reply to this email if you are
> >> prepared to
> >>>> help.
> >>>>
> >>>> Julian
> >>>>
> >>>> [1]
> >>>>
> >>
> https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
> >>>>
> >>>> On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com>
> wrote:
> >>>>> Many thanks for moving this forward Julian, much appreciated.
> >>>>>
> >>>>> At the moment the main blocker is the Avatica release ([1,2]) that in
> >>>> turn
> >>>>> waits for CALCITE-4503 [3].
> >>>>> It would be great if somebody has some cycles to review and merge the
> >>>>> respective PR [4].
> >>>>>
> >>>>> Best,
> >>>>> Stamatis
> >>>>>
> >>>>> [1] https://issues.apache.org/jira/browse/CALCITE-4528
> >>>>> [2] https://issues.apache.org/jira/browse/CALCITE-4488
> >>>>> [3] https://issues.apache.org/jira/browse/CALCITE-4503
> >>>>> [4] https://github.com/apache/calcite-avatica/pull/138
> >>>>>
> >>>>> On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org>
> >> wrote:
> >>>>>
> >>>>>> Vladimir,
> >>>>>>
> >>>>>> Thanks for finding this bug. Please log it.
> >>>>>>
> >>>>>> I don't intend to fix any more bugs in this area before 1.27. It
> >> has
> >>>>>> been a huge effort on my part, and I have not received any help
> >> from
> >>>>>> anyone.
> >>>>>>
> >>>>>> Julian
> >>>>>>
> >>>>>> On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> >>>>>> <si...@gmail.com> wrote:
> >>>>>>>
> >>>>>>> Thanks for pushing this forward.
> >>>>>>>
> >>>>>>> Would you please add search/sarg shrinking to RexShrinker?
> >>>>>>>
> >>>>>>> There are failures though:
> >>>>>>>
> >>>>>>>  @Test void singleFuzzyTest() {
> >>>>>>>    Random r = new Random();
> >>>>>>>    r.setSeed(6321443803263498676L);
> >>>>>>>    RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> >>>>>>>    generateRexAndCheckTrueFalse(fuzzer, r);
> >>>>>>>  }
> >>>>>>>
> >>>>>>> yields
> >>>>>>>
> >>>>>>> $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> >>>>>>>
> >>>>>>> SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false,
> >> SEARCH(?0.notNullInt0,
> >>>>>>> Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> >>>>>> -(+(100500),
> >>>>>>> -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0,
> >> ?0.notNullBool0),
> >>>>>>> null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1),
> >> 1), 1,
> >>>>>>> =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> >>>>>>> COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> >>>>>> null:INTEGER)),
> >>>>>>> +(*(COALESCE(COALESCE(1, -2038957448 <(203)%20895-7448>, 0),
> >> CASE(false, ?0.int0,
> >>>>>>> null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER,
> >> null:INTEGER,
> >>>> -1),
> >>>>>>> COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500),
> >> CASE(?0.bool1,
> >>>>>>> ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER),
> >> 100500),
> >>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> >>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
> >> ?0.notNullInt1,
> >>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> >>>> false),
> >>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> >>>> ?0.bool1,
> >>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> >>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
> >> =(-1,
> >>>> 1),
> >>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> >>>> ?0.notNullInt0)),
> >>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> >>>> *(1994412942,
> >>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> >>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> >>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> >>>> -(null,
> >>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> >>>>>> ?0.int1),
> >>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> >>>>>> *(-1236110720,
> >>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
> >> null:INTEGER,
> >>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)),
> >> Sarg[=])
> >>>>>>>
> >>>>>>> Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> >>>>>>> SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true),
> >> NOT(IS
> >>>> NOT
> >>>>>>> TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> >>>>>>> CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> >>>>>> ?0.notNullInt1))),
> >>>>>>> CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1),
> >> -(null,
> >>>>>>> ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> >>>>>>> -(null:INTEGER, null:INTEGER)), null:INTEGER)),
> >>>> +(*(COALESCE(COALESCE(1,
> >>>>>>> -2038957448 <(203)%20895-7448>, 0), CASE(false, ?0.int0,
> >> null:INTEGER),
> >>>>>>> COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
> >> COALESCE(0,
> >>>>>>> 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> >>>> ?0.notNullInt0,
> >>>>>>> null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> >>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> >>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
> >> ?0.notNullInt1,
> >>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> >>>> false),
> >>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> >>>> ?0.bool1,
> >>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> >>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
> >> =(-1,
> >>>> 1),
> >>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> >>>> ?0.notNullInt0)),
> >>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> >>>> *(1994412942,
> >>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> >>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> >>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> >>>> -(null,
> >>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> >>>>>> ?0.int1),
> >>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> >>>>>> *(-1236110720,
> >>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
> >> null:INTEGER,
> >>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> >>>>>>>
> >>>>>>> at
> >>>>>>>
> >>>>>>
> >>>>
> >>
> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> >>>>>>>
> >>>>>>> Vladimir
> >>>>>>
> >>>>>
> >>>>
> >>
>
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Julian Hyde <jh...@gmail.com>.
Thanks Rui! Just pick 5 PRs that look interesting to you, and assign the JIRA to yourself (as active reviewer). If you need help/advice, mention people in the JIRA comments.

We need 4 more volunteers…

Julian


> On May 24, 2021, at 11:28 AM, Rui Wang <am...@apache.org> wrote:
> 
> Please tag me on PRs that you need my help. I will check those soon.
> 
> 
> -Rui
> 
> On Mon, May 24, 2021 at 11:06 AM Julian Hyde <jh...@apache.org> wrote:
> 
>> We still need 5 committers to review 5 PRs each. Please reply to this
>> email to volunteer.
>> 
>> On Fri, May 21, 2021 at 3:41 PM Stamatis Zampetakis <za...@gmail.com>
>> wrote:
>>> 
>>> I agree with Julian, we should get the 1.27.0 out as soon as possible.
>>> 
>>> I can try to prepare RC0 between the 28 and 30 of May, if people agree on
>>> this.
>>> Alternatively, I will have a bit more time around 17 to 20 of June.
>>> 
>>> I will try to get 2-3 PRs in before starting the RC.
>>> 
>>> Best,
>>> Stamatis
>>> 
>>> 
>>> On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org> wrote:
>>> 
>>>> Now Avatica 1.18 has been released (thanks, Francis!) we should press
>> on
>>>> with Calcite 1.27.
>>>> 
>>>> Who is release manager? Stamatis, You volunteered to be release manager
>>>> for 1.27 [1] but I would be happy to jump in. Let me know.
>>>> 
>>>> There is a backlog of PRs that look good enough to go into 1.27. How to
>>>> tackle these? I think we need 4 or 5 committers to each look over 4 or
>> 5
>>>> PRs in the next few days. Please reply to this email if you are
>> prepared to
>>>> help.
>>>> 
>>>> Julian
>>>> 
>>>> [1]
>>>> 
>> https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
>>>> 
>>>> On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com> wrote:
>>>>> Many thanks for moving this forward Julian, much appreciated.
>>>>> 
>>>>> At the moment the main blocker is the Avatica release ([1,2]) that in
>>>> turn
>>>>> waits for CALCITE-4503 [3].
>>>>> It would be great if somebody has some cycles to review and merge the
>>>>> respective PR [4].
>>>>> 
>>>>> Best,
>>>>> Stamatis
>>>>> 
>>>>> [1] https://issues.apache.org/jira/browse/CALCITE-4528
>>>>> [2] https://issues.apache.org/jira/browse/CALCITE-4488
>>>>> [3] https://issues.apache.org/jira/browse/CALCITE-4503
>>>>> [4] https://github.com/apache/calcite-avatica/pull/138
>>>>> 
>>>>> On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org>
>> wrote:
>>>>> 
>>>>>> Vladimir,
>>>>>> 
>>>>>> Thanks for finding this bug. Please log it.
>>>>>> 
>>>>>> I don't intend to fix any more bugs in this area before 1.27. It
>> has
>>>>>> been a huge effort on my part, and I have not received any help
>> from
>>>>>> anyone.
>>>>>> 
>>>>>> Julian
>>>>>> 
>>>>>> On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
>>>>>> <si...@gmail.com> wrote:
>>>>>>> 
>>>>>>> Thanks for pushing this forward.
>>>>>>> 
>>>>>>> Would you please add search/sarg shrinking to RexShrinker?
>>>>>>> 
>>>>>>> There are failures though:
>>>>>>> 
>>>>>>>  @Test void singleFuzzyTest() {
>>>>>>>    Random r = new Random();
>>>>>>>    r.setSeed(6321443803263498676L);
>>>>>>>    RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
>>>>>>>    generateRexAndCheckTrueFalse(fuzzer, r);
>>>>>>>  }
>>>>>>> 
>>>>>>> yields
>>>>>>> 
>>>>>>> $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
>>>>>>> 
>>>>>>> SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false,
>> SEARCH(?0.notNullInt0,
>>>>>>> Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
>>>>>> -(+(100500),
>>>>>>> -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0,
>> ?0.notNullBool0),
>>>>>>> null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1),
>> 1), 1,
>>>>>>> =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
>>>>>>> COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
>>>>>> null:INTEGER)),
>>>>>>> +(*(COALESCE(COALESCE(1, -2038957448 <(203)%20895-7448>, 0),
>> CASE(false, ?0.int0,
>>>>>>> null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER,
>> null:INTEGER,
>>>> -1),
>>>>>>> COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500),
>> CASE(?0.bool1,
>>>>>>> ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER),
>> 100500),
>>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
>>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
>> ?0.notNullInt1,
>>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
>>>> false),
>>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
>>>> ?0.bool1,
>>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
>>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
>> =(-1,
>>>> 1),
>>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
>>>> ?0.notNullInt0)),
>>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
>>>> *(1994412942,
>>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
>>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
>>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
>>>> -(null,
>>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
>>>>>> ?0.int1),
>>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
>>>>>> *(-1236110720,
>>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
>> null:INTEGER,
>>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)),
>> Sarg[=])
>>>>>>> 
>>>>>>> Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
>>>>>>> SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true),
>> NOT(IS
>>>> NOT
>>>>>>> TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
>>>>>>> CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
>>>>>> ?0.notNullInt1))),
>>>>>>> CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1),
>> -(null,
>>>>>>> ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
>>>>>>> -(null:INTEGER, null:INTEGER)), null:INTEGER)),
>>>> +(*(COALESCE(COALESCE(1,
>>>>>>> -2038957448 <(203)%20895-7448>, 0), CASE(false, ?0.int0,
>> null:INTEGER),
>>>>>>> COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
>> COALESCE(0,
>>>>>>> 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
>>>> ?0.notNullInt0,
>>>>>>> null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
>>>>>>> COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
>>>>>>> null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
>> ?0.notNullInt1,
>>>>>>> -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
>>>> false),
>>>>>>> <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
>>>> ?0.bool1,
>>>>>>> false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
>>>>>>> CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
>> =(-1,
>>>> 1),
>>>>>>> +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
>>>> ?0.notNullInt0)),
>>>>>>> COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
>>>> *(1994412942,
>>>>>>> null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
>>>>>>> UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
>>>>>>> UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
>>>> -(null,
>>>>>>> +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
>>>>>> ?0.int1),
>>>>>>> *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
>>>>>> *(-1236110720,
>>>>>>> ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
>> null:INTEGER,
>>>>>>> null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
>>>>>>> 
>>>>>>> at
>>>>>>> 
>>>>>> 
>>>> 
>> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
>>>>>>> 
>>>>>>> Vladimir
>>>>>> 
>>>>> 
>>>> 
>> 


Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Rui Wang <am...@apache.org>.
Please tag me on PRs that you need my help. I will check those soon.


-Rui

On Mon, May 24, 2021 at 11:06 AM Julian Hyde <jh...@apache.org> wrote:

> We still need 5 committers to review 5 PRs each. Please reply to this
> email to volunteer.
>
> On Fri, May 21, 2021 at 3:41 PM Stamatis Zampetakis <za...@gmail.com>
> wrote:
> >
> > I agree with Julian, we should get the 1.27.0 out as soon as possible.
> >
> > I can try to prepare RC0 between the 28 and 30 of May, if people agree on
> > this.
> > Alternatively, I will have a bit more time around 17 to 20 of June.
> >
> > I will try to get 2-3 PRs in before starting the RC.
> >
> > Best,
> > Stamatis
> >
> >
> > On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org> wrote:
> >
> > > Now Avatica 1.18 has been released (thanks, Francis!) we should press
> on
> > > with Calcite 1.27.
> > >
> > > Who is release manager? Stamatis, You volunteered to be release manager
> > > for 1.27 [1] but I would be happy to jump in. Let me know.
> > >
> > > There is a backlog of PRs that look good enough to go into 1.27. How to
> > > tackle these? I think we need 4 or 5 committers to each look over 4 or
> 5
> > > PRs in the next few days. Please reply to this email if you are
> prepared to
> > > help.
> > >
> > > Julian
> > >
> > > [1]
> > >
> https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
> > >
> > > On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com> wrote:
> > > > Many thanks for moving this forward Julian, much appreciated.
> > > >
> > > > At the moment the main blocker is the Avatica release ([1,2]) that in
> > > turn
> > > > waits for CALCITE-4503 [3].
> > > > It would be great if somebody has some cycles to review and merge the
> > > > respective PR [4].
> > > >
> > > > Best,
> > > > Stamatis
> > > >
> > > > [1] https://issues.apache.org/jira/browse/CALCITE-4528
> > > > [2] https://issues.apache.org/jira/browse/CALCITE-4488
> > > > [3] https://issues.apache.org/jira/browse/CALCITE-4503
> > > > [4] https://github.com/apache/calcite-avatica/pull/138
> > > >
> > > > On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org>
> wrote:
> > > >
> > > > > Vladimir,
> > > > >
> > > > > Thanks for finding this bug. Please log it.
> > > > >
> > > > > I don't intend to fix any more bugs in this area before 1.27. It
> has
> > > > > been a huge effort on my part, and I have not received any help
> from
> > > > > anyone.
> > > > >
> > > > > Julian
> > > > >
> > > > > On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> > > > > <si...@gmail.com> wrote:
> > > > > >
> > > > > > Thanks for pushing this forward.
> > > > > >
> > > > > > Would you please add search/sarg shrinking to RexShrinker?
> > > > > >
> > > > > > There are failures though:
> > > > > >
> > > > > >   @Test void singleFuzzyTest() {
> > > > > >     Random r = new Random();
> > > > > >     r.setSeed(6321443803263498676L);
> > > > > >     RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> > > > > >     generateRexAndCheckTrueFalse(fuzzer, r);
> > > > > >   }
> > > > > >
> > > > > > yields
> > > > > >
> > > > > > $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> > > > > >
> > > > > > SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false,
> SEARCH(?0.notNullInt0,
> > > > > > Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> > > > > -(+(100500),
> > > > > > -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0,
> ?0.notNullBool0),
> > > > > > null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1),
> 1), 1,
> > > > > > =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> > > > > > COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> > > > > null:INTEGER)),
> > > > > > +(*(COALESCE(COALESCE(1, -2038957448 <(203)%20895-7448>, 0),
> CASE(false, ?0.int0,
> > > > > > null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER,
> null:INTEGER,
> > > -1),
> > > > > > COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500),
> CASE(?0.bool1,
> > > > > > ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER),
> 100500),
> > > > > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > > > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
> ?0.notNullInt1,
> > > > > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> > > false),
> > > > > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> > > ?0.bool1,
> > > > > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > > > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
> =(-1,
> > > 1),
> > > > > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> > > ?0.notNullInt0)),
> > > > > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> > > *(1994412942,
> > > > > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > > > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > > > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> > > -(null,
> > > > > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > > > > ?0.int1),
> > > > > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > > > > *(-1236110720,
> > > > > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
> null:INTEGER,
> > > > > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)),
> Sarg[=])
> > > > > >
> > > > > > Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > > > > > SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true),
> NOT(IS
> > > NOT
> > > > > > TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> > > > > > CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> > > > > ?0.notNullInt1))),
> > > > > > CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1),
> -(null,
> > > > > > ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> > > > > > -(null:INTEGER, null:INTEGER)), null:INTEGER)),
> > > +(*(COALESCE(COALESCE(1,
> > > > > > -2038957448 <(203)%20895-7448>, 0), CASE(false, ?0.int0,
> null:INTEGER),
> > > > > > COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
> COALESCE(0,
> > > > > > 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > > ?0.notNullInt0,
> > > > > > null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > > > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > > > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1),
> ?0.notNullInt1,
> > > > > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> > > false),
> > > > > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> > > ?0.bool1,
> > > > > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > > > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER),
> =(-1,
> > > 1),
> > > > > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> > > ?0.notNullInt0)),
> > > > > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> > > *(1994412942,
> > > > > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > > > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > > > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> > > -(null,
> > > > > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > > > > ?0.int1),
> > > > > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > > > > *(-1236110720,
> > > > > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0,
> null:INTEGER,
> > > > > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> > > > > >
> > > > > > at
> > > > > >
> > > > >
> > >
> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> > > > > >
> > > > > > Vladimir
> > > > >
> > > >
> > >
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Julian Hyde <jh...@apache.org>.
We still need 5 committers to review 5 PRs each. Please reply to this
email to volunteer.

On Fri, May 21, 2021 at 3:41 PM Stamatis Zampetakis <za...@gmail.com> wrote:
>
> I agree with Julian, we should get the 1.27.0 out as soon as possible.
>
> I can try to prepare RC0 between the 28 and 30 of May, if people agree on
> this.
> Alternatively, I will have a bit more time around 17 to 20 of June.
>
> I will try to get 2-3 PRs in before starting the RC.
>
> Best,
> Stamatis
>
>
> On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org> wrote:
>
> > Now Avatica 1.18 has been released (thanks, Francis!) we should press on
> > with Calcite 1.27.
> >
> > Who is release manager? Stamatis, You volunteered to be release manager
> > for 1.27 [1] but I would be happy to jump in. Let me know.
> >
> > There is a backlog of PRs that look good enough to go into 1.27. How to
> > tackle these? I think we need 4 or 5 committers to each look over 4 or 5
> > PRs in the next few days. Please reply to this email if you are prepared to
> > help.
> >
> > Julian
> >
> > [1]
> > https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
> >
> > On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com> wrote:
> > > Many thanks for moving this forward Julian, much appreciated.
> > >
> > > At the moment the main blocker is the Avatica release ([1,2]) that in
> > turn
> > > waits for CALCITE-4503 [3].
> > > It would be great if somebody has some cycles to review and merge the
> > > respective PR [4].
> > >
> > > Best,
> > > Stamatis
> > >
> > > [1] https://issues.apache.org/jira/browse/CALCITE-4528
> > > [2] https://issues.apache.org/jira/browse/CALCITE-4488
> > > [3] https://issues.apache.org/jira/browse/CALCITE-4503
> > > [4] https://github.com/apache/calcite-avatica/pull/138
> > >
> > > On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org> wrote:
> > >
> > > > Vladimir,
> > > >
> > > > Thanks for finding this bug. Please log it.
> > > >
> > > > I don't intend to fix any more bugs in this area before 1.27. It has
> > > > been a huge effort on my part, and I have not received any help from
> > > > anyone.
> > > >
> > > > Julian
> > > >
> > > > On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> > > > <si...@gmail.com> wrote:
> > > > >
> > > > > Thanks for pushing this forward.
> > > > >
> > > > > Would you please add search/sarg shrinking to RexShrinker?
> > > > >
> > > > > There are failures though:
> > > > >
> > > > >   @Test void singleFuzzyTest() {
> > > > >     Random r = new Random();
> > > > >     r.setSeed(6321443803263498676L);
> > > > >     RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> > > > >     generateRexAndCheckTrueFalse(fuzzer, r);
> > > > >   }
> > > > >
> > > > > yields
> > > > >
> > > > > $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> > > > >
> > > > > SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false, SEARCH(?0.notNullInt0,
> > > > > Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> > > > -(+(100500),
> > > > > -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0, ?0.notNullBool0),
> > > > > null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1), 1), 1,
> > > > > =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> > > > > COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> > > > null:INTEGER)),
> > > > > +(*(COALESCE(COALESCE(1, -2038957448, 0), CASE(false, ?0.int0,
> > > > > null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER,
> > -1),
> > > > > COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > > > > ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > > > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> > false),
> > > > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> > ?0.bool1,
> > > > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1,
> > 1),
> > > > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> > ?0.notNullInt0)),
> > > > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> > *(1994412942,
> > > > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> > -(null,
> > > > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > > > ?0.int1),
> > > > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > > > *(-1236110720,
> > > > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > > > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)), Sarg[=])
> > > > >
> > > > > Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > > > > SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS
> > NOT
> > > > > TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> > > > > CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> > > > ?0.notNullInt1))),
> > > > > CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1), -(null,
> > > > > ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> > > > > -(null:INTEGER, null:INTEGER)), null:INTEGER)),
> > +(*(COALESCE(COALESCE(1,
> > > > > -2038957448, 0), CASE(false, ?0.int0, null:INTEGER),
> > > > > COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1), COALESCE(0,
> > > > > 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > ?0.notNullInt0,
> > > > > null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > > > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> > false),
> > > > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> > ?0.bool1,
> > > > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1,
> > 1),
> > > > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> > ?0.notNullInt0)),
> > > > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> > *(1994412942,
> > > > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> > -(null,
> > > > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > > > ?0.int1),
> > > > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > > > *(-1236110720,
> > > > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > > > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> > > > >
> > > > > at
> > > > >
> > > >
> > org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> > > > >
> > > > > Vladimir
> > > >
> > >
> >

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Stamatis Zampetakis <za...@gmail.com>.
I agree with Julian, we should get the 1.27.0 out as soon as possible.

I can try to prepare RC0 between the 28 and 30 of May, if people agree on
this.
Alternatively, I will have a bit more time around 17 to 20 of June.

I will try to get 2-3 PRs in before starting the RC.

Best,
Stamatis


On Fri, May 21, 2021 at 9:15 PM Julian Hyde <jh...@apache.org> wrote:

> Now Avatica 1.18 has been released (thanks, Francis!) we should press on
> with Calcite 1.27.
>
> Who is release manager? Stamatis, You volunteered to be release manager
> for 1.27 [1] but I would be happy to jump in. Let me know.
>
> There is a backlog of PRs that look good enough to go into 1.27. How to
> tackle these? I think we need 4 or 5 committers to each look over 4 or 5
> PRs in the next few days. Please reply to this email if you are prepared to
> help.
>
> Julian
>
> [1]
> https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E
>
> On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com> wrote:
> > Many thanks for moving this forward Julian, much appreciated.
> >
> > At the moment the main blocker is the Avatica release ([1,2]) that in
> turn
> > waits for CALCITE-4503 [3].
> > It would be great if somebody has some cycles to review and merge the
> > respective PR [4].
> >
> > Best,
> > Stamatis
> >
> > [1] https://issues.apache.org/jira/browse/CALCITE-4528
> > [2] https://issues.apache.org/jira/browse/CALCITE-4488
> > [3] https://issues.apache.org/jira/browse/CALCITE-4503
> > [4] https://github.com/apache/calcite-avatica/pull/138
> >
> > On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org> wrote:
> >
> > > Vladimir,
> > >
> > > Thanks for finding this bug. Please log it.
> > >
> > > I don't intend to fix any more bugs in this area before 1.27. It has
> > > been a huge effort on my part, and I have not received any help from
> > > anyone.
> > >
> > > Julian
> > >
> > > On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> > > <si...@gmail.com> wrote:
> > > >
> > > > Thanks for pushing this forward.
> > > >
> > > > Would you please add search/sarg shrinking to RexShrinker?
> > > >
> > > > There are failures though:
> > > >
> > > >   @Test void singleFuzzyTest() {
> > > >     Random r = new Random();
> > > >     r.setSeed(6321443803263498676L);
> > > >     RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> > > >     generateRexAndCheckTrueFalse(fuzzer, r);
> > > >   }
> > > >
> > > > yields
> > > >
> > > > $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> > > >
> > > > SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false, SEARCH(?0.notNullInt0,
> > > > Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> > > -(+(100500),
> > > > -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0, ?0.notNullBool0),
> > > > null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1), 1), 1,
> > > > =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> > > > COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> > > null:INTEGER)),
> > > > +(*(COALESCE(COALESCE(1, -2038957448, 0), CASE(false, ?0.int0,
> > > > null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER,
> -1),
> > > > COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > > > ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> false),
> > > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> ?0.bool1,
> > > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1,
> 1),
> > > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> ?0.notNullInt0)),
> > > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> *(1994412942,
> > > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> -(null,
> > > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > > ?0.int1),
> > > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > > *(-1236110720,
> > > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)), Sarg[=])
> > > >
> > > > Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > > > SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS
> NOT
> > > > TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> > > > CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> > > ?0.notNullInt1))),
> > > > CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1), -(null,
> > > > ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> > > > -(null:INTEGER, null:INTEGER)), null:INTEGER)),
> +(*(COALESCE(COALESCE(1,
> > > > -2038957448, 0), CASE(false, ?0.int0, null:INTEGER),
> > > > COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1), COALESCE(0,
> > > > 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> ?0.notNullInt0,
> > > > null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1,
> false),
> > > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0,
> ?0.bool1,
> > > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1,
> 1),
> > > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1,
> ?0.notNullInt0)),
> > > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER),
> *(1994412942,
> > > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)),
> -(null,
> > > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > > ?0.int1),
> > > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > > *(-1236110720,
> > > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> > > >
> > > > at
> > > >
> > >
> org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> > > >
> > > > Vladimir
> > >
> >
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Julian Hyde <jh...@apache.org>.
Now Avatica 1.18 has been released (thanks, Francis!) we should press on with Calcite 1.27.

Who is release manager? Stamatis, You volunteered to be release manager for 1.27 [1] but I would be happy to jump in. Let me know.

There is a backlog of PRs that look good enough to go into 1.27. How to tackle these? I think we need 4 or 5 committers to each look over 4 or 5 PRs in the next few days. Please reply to this email if you are prepared to help.

Julian

[1] https://lists.apache.org/thread.html/re5702a648df18f56e786d770cdce86101164ae419eee94ae947652d4%40%3Cdev.calcite.apache.org%3E

On 2021/03/09 14:29:16, Stamatis Zampetakis <za...@gmail.com> wrote: 
> Many thanks for moving this forward Julian, much appreciated.
> 
> At the moment the main blocker is the Avatica release ([1,2]) that in turn
> waits for CALCITE-4503 [3].
> It would be great if somebody has some cycles to review and merge the
> respective PR [4].
> 
> Best,
> Stamatis
> 
> [1] https://issues.apache.org/jira/browse/CALCITE-4528
> [2] https://issues.apache.org/jira/browse/CALCITE-4488
> [3] https://issues.apache.org/jira/browse/CALCITE-4503
> [4] https://github.com/apache/calcite-avatica/pull/138
> 
> On Sun, Feb 28, 2021 at 2:22 AM Julian Hyde <jh...@apache.org> wrote:
> 
> > Vladimir,
> >
> > Thanks for finding this bug. Please log it.
> >
> > I don't intend to fix any more bugs in this area before 1.27. It has
> > been a huge effort on my part, and I have not received any help from
> > anyone.
> >
> > Julian
> >
> > On Wed, Feb 24, 2021 at 3:57 PM Vladimir Sitnikov
> > <si...@gmail.com> wrote:
> > >
> > > Thanks for pushing this forward.
> > >
> > > Would you please add search/sarg shrinking to RexShrinker?
> > >
> > > There are failures though:
> > >
> > >   @Test void singleFuzzyTest() {
> > >     Random r = new Random();
> > >     r.setSeed(6321443803263498676L);
> > >     RexFuzzer fuzzer = new RexFuzzer(rexBuilder, typeFactory);
> > >     generateRexAndCheckTrueFalse(fuzzer, r);
> > >   }
> > >
> > > yields
> > >
> > > $node isAlwaysTrue, so it should simplify to TRUE unknownAsFalse
> > >
> > > SEARCH(-(COALESCE(?0.int0, CASE(=(CASE(false, SEARCH(?0.notNullInt0,
> > > Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT TRUE(false))),
> > -(+(100500),
> > > -(CASE(true, 1, 100500), CASE(=(?0.notNullBool0, ?0.notNullBool0),
> > > null:INTEGER, ?0.notNullInt1))), CASE(=(COALESCE(0, ?0.int1), 1), 1,
> > > =(COALESCE(0, ?0.int1), -(null, ?0.int1)), CASE(?0.notNullBool0,
> > > COALESCE(?0.int0, ?0.int1), -(null:INTEGER, null:INTEGER)),
> > null:INTEGER)),
> > > +(*(COALESCE(COALESCE(1, -2038957448, 0), CASE(false, ?0.int0,
> > > null:INTEGER), COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1),
> > > COALESCE(0, 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1,
> > > ?0.notNullInt0, null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1, false),
> > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0, ?0.bool1,
> > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1, 1),
> > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1, ?0.notNullInt0)),
> > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER), *(1994412942,
> > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)), -(null,
> > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > ?0.int1),
> > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > *(-1236110720,
> > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)), Sarg[=])
> > >
> > > Actual   :IS NOT NULL(-(COALESCE(?0.int0, CASE(=(CASE(false,
> > > SEARCH(?0.notNullInt0, Sarg[(0..2]; NULL AS FALSE]), true), NOT(IS NOT
> > > TRUE(false))), -(+(100500), -(CASE(true, 1, 100500),
> > > CASE(=(?0.notNullBool0, ?0.notNullBool0), null:INTEGER,
> > ?0.notNullInt1))),
> > > CASE(=(COALESCE(0, ?0.int1), 1), 1, =(COALESCE(0, ?0.int1), -(null,
> > > ?0.int1)), CASE(?0.notNullBool0, COALESCE(?0.int0, ?0.int1),
> > > -(null:INTEGER, null:INTEGER)), null:INTEGER)), +(*(COALESCE(COALESCE(1,
> > > -2038957448, 0), CASE(false, ?0.int0, null:INTEGER),
> > > COALESCE(?0.notNullInt0, null:INTEGER, null:INTEGER, -1), COALESCE(0,
> > > 933814882, ?0.int0)), COALESCE(+(100500), CASE(?0.bool1, ?0.notNullInt0,
> > > null:INTEGER))))), CASE(=(-(null:INTEGER), 100500),
> > > COALESCE(-(-(CASE(=(?0.bool0, ?0.notNullBool1), ?0.notNullInt1,
> > > null:INTEGER), ?0.notNullInt0)), +(COALESCE(-(-1), ?0.notNullInt1,
> > > -(null:INTEGER, null:INTEGER))), CASE(=(OR(?0.bool0, ?0.bool1, false),
> > > <(true, ?0.notNullBool0)), -(+(null:INTEGER)), =(OR(?0.bool0, ?0.bool1,
> > > false), SEARCH(null:INTEGER, Sarg[TRUE])), CASE(=(-1, null),
> > > CASE(=(?0.notNullBool1, ?0.bool0), 1135316986, null:INTEGER), =(-1, 1),
> > > +(null:INTEGER), =(-1, 100500), -(1), +(?0.notNullInt1, ?0.notNullInt0)),
> > > COALESCE(-(null:INTEGER), CASE(true, 100500, null:INTEGER), *(1994412942,
> > > null))), CASE(=(IS UNKNOWN(?0.notNullBool0), IS NOT
> > > UNKNOWN(?0.notNullBool1)), +(?0.notNullInt1), =(IS
> > > UNKNOWN(?0.notNullBool0), IS DISTINCT FROM(?0.notNullInt1, 1)), -(null,
> > > +(-1)), =(IS UNKNOWN(?0.notNullBool0), >(false, true)), +(-(null,
> > ?0.int1),
> > > *(100500, ?0.int0)), CASE(=(?0.bool0, false), +(-1, 100500),
> > *(-1236110720,
> > > ?0.int0)))), =(-(null:INTEGER), +(+(COALESCE(?0.int0, null:INTEGER,
> > > null:INTEGER, ?0.notNullInt0)))), ?0.notNullInt1, 100500)))
> > >
> > > at
> > >
> > org.apache.calcite.test.fuzzer.RexProgramFuzzyTest.checkUnknownAs(RexProgramFuzzyTest.java:251)
> > >
> > > Vladimir
> >
>