You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Julian Hyde <jh...@apache.org> on 2021/05/21 19:14:59 UTC

Re: [DISCUSS] Towards Calcite 1.27.0

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>.
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
> > >
> >
>