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/02/02 23:13:32 UTC

[DISCUSS] Towards Calcite 1.27.0

Hi all,

It's been almost 4 months since our last release so I would like to kick
off the discussion for 1.27.0.

I could try to prepare an RC around the 12th of February but I would like
to hear your thoughts.

As usual we have lots of pull requests [1] and a couple of JIRAs tagged for
this release [2] so we should agree on what needs to be absolutely in the
next release.

In addition, the discussion about SARGs [3] is still open, as well as the
respective JIRA [4], so I am not sure if we can move forward before
reaching consensus there. For this matter let's discuss under the
respective thread.

Is there something else that needs to be addressed before proceeding?

Best,
Stamatis

[1] https://github.com/apache/calcite/pulls
[2]
https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12333950
[3]
https://lists.apache.org/thread.html/r279bbe62f182ed39a7597ab70ab42cdcb5cf9ad45929cd55a2b66f27%40%3Cdev.calcite.apache.org%3E

[4] https://issues.apache.org/jira/browse/CALCITE-4405

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

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Stamatis Zampetakis <za...@gmail.com>.
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>.
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 Vladimir Sitnikov <si...@gmail.com>.
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>.
I have a PR for CALCITE-4446,
https://github.com/apache/calcite/pull/2357. I'd be grateful if people
could review & test.

On Mon, Feb 22, 2021 at 12:39 PM Julian Hyde <jh...@gmail.com> wrote:
>
> I’m working hard on 4446. It may still be a few days.
>
> > On Feb 21, 2021, at 1:00 PM, Stamatis Zampetakis <za...@gmail.com> wrote:
> >
> > At the moment we are mainly waiting for CALCITE-4446 [1], CALCITE-4488 [2],
> > for preparing the first RC for 1.27.0.
> >
> > I know that some people started testing the current master (thanks!) and it
> > would be great if others start doing so as soon as possible in order to
> > have a smooth release.
> > If testing with master is not feasible, testing with 1.26.0 and providing
> > feedback (positive or negative) can also help a lot.
> >
> > Best,
> > Stamatis
> >
> > <https://issues.apache.org/jira/browse/CALCITE-4446>[1]
> > https://issues.apache.org/jira/browse/CALCITE-4446
> > [2] https://issues.apache.org/jira/browse/CALCITE-4488
> >
> >
> >
> > On Thu, Feb 4, 2021 at 10:36 AM Stamatis Zampetakis <za...@gmail.com>
> > wrote:
> >
> >> OK so if I understand well for the next release we should aim to finish
> >> CALCITE-4446, CALCITE-4405, and CALCITE-4487.
> >>
> >> It would be good if people can test 1.26.0 or the current master now so
> >> that we can see what else needs to be done for 1.27.0.
> >>
> >> Best,
> >> Stamatis
> >>
> >> On Wed, Feb 3, 2021 at 9:46 AM Vladimir Sitnikov <
> >> sitnikov.vladimir@gmail.com> wrote:
> >>
> >>> Julian>because we never had a test case that indicated how actual behavior
> >>> differed from desired behavior
> >>>
> >>> One of the tests has been included in Calcite sources for a while. Please
> >>> refer to RexProgramFuzzyTest that I previously highlighted in
> >>> "Search/Sarg: untested feature merged to the default branch" thread:
> >>>
> >>> https://lists.apache.org/thread.html/rce6e84d0e0cd5a227d64c9f670b43650833f43e0cbccb80e04f5e0cf%40%3Cdev.calcite.apache.org%3E
> >>>
> >>> Note: I believe "Sarg feature" should have been accompanied by the
> >>> relevant
> >>> additions to RefFuzzer, RexShrinker, and RexInterpreter as a part of the
> >>> test
> >>> coverage.
> >>> Under the current implementation, users can't avoid/disable SEARCH/Sarg,
> >>> and it is enabled by default, so the feature must come with tests.
> >>>
> >>> Vladimir
> >>>
> >>
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Julian Hyde <jh...@gmail.com>.
I’m working hard on 4446. It may still be a few days.

> On Feb 21, 2021, at 1:00 PM, Stamatis Zampetakis <za...@gmail.com> wrote:
> 
> At the moment we are mainly waiting for CALCITE-4446 [1], CALCITE-4488 [2],
> for preparing the first RC for 1.27.0.
> 
> I know that some people started testing the current master (thanks!) and it
> would be great if others start doing so as soon as possible in order to
> have a smooth release.
> If testing with master is not feasible, testing with 1.26.0 and providing
> feedback (positive or negative) can also help a lot.
> 
> Best,
> Stamatis
> 
> <https://issues.apache.org/jira/browse/CALCITE-4446>[1]
> https://issues.apache.org/jira/browse/CALCITE-4446
> [2] https://issues.apache.org/jira/browse/CALCITE-4488
> 
> 
> 
> On Thu, Feb 4, 2021 at 10:36 AM Stamatis Zampetakis <za...@gmail.com>
> wrote:
> 
>> OK so if I understand well for the next release we should aim to finish
>> CALCITE-4446, CALCITE-4405, and CALCITE-4487.
>> 
>> It would be good if people can test 1.26.0 or the current master now so
>> that we can see what else needs to be done for 1.27.0.
>> 
>> Best,
>> Stamatis
>> 
>> On Wed, Feb 3, 2021 at 9:46 AM Vladimir Sitnikov <
>> sitnikov.vladimir@gmail.com> wrote:
>> 
>>> Julian>because we never had a test case that indicated how actual behavior
>>> differed from desired behavior
>>> 
>>> One of the tests has been included in Calcite sources for a while. Please
>>> refer to RexProgramFuzzyTest that I previously highlighted in
>>> "Search/Sarg: untested feature merged to the default branch" thread:
>>> 
>>> https://lists.apache.org/thread.html/rce6e84d0e0cd5a227d64c9f670b43650833f43e0cbccb80e04f5e0cf%40%3Cdev.calcite.apache.org%3E
>>> 
>>> Note: I believe "Sarg feature" should have been accompanied by the
>>> relevant
>>> additions to RefFuzzer, RexShrinker, and RexInterpreter as a part of the
>>> test
>>> coverage.
>>> Under the current implementation, users can't avoid/disable SEARCH/Sarg,
>>> and it is enabled by default, so the feature must come with tests.
>>> 
>>> Vladimir
>>> 
>> 


Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Stamatis Zampetakis <za...@gmail.com>.
At the moment we are mainly waiting for CALCITE-4446 [1], CALCITE-4488 [2],
for preparing the first RC for 1.27.0.

I know that some people started testing the current master (thanks!) and it
would be great if others start doing so as soon as possible in order to
have a smooth release.
If testing with master is not feasible, testing with 1.26.0 and providing
feedback (positive or negative) can also help a lot.

Best,
Stamatis

<https://issues.apache.org/jira/browse/CALCITE-4446>[1]
https://issues.apache.org/jira/browse/CALCITE-4446
[2] https://issues.apache.org/jira/browse/CALCITE-4488



On Thu, Feb 4, 2021 at 10:36 AM Stamatis Zampetakis <za...@gmail.com>
wrote:

> OK so if I understand well for the next release we should aim to finish
> CALCITE-4446, CALCITE-4405, and CALCITE-4487.
>
> It would be good if people can test 1.26.0 or the current master now so
> that we can see what else needs to be done for 1.27.0.
>
> Best,
> Stamatis
>
> On Wed, Feb 3, 2021 at 9:46 AM Vladimir Sitnikov <
> sitnikov.vladimir@gmail.com> wrote:
>
>> Julian>because we never had a test case that indicated how actual behavior
>> differed from desired behavior
>>
>> One of the tests has been included in Calcite sources for a while. Please
>> refer to RexProgramFuzzyTest that I previously highlighted in
>> "Search/Sarg: untested feature merged to the default branch" thread:
>>
>> https://lists.apache.org/thread.html/rce6e84d0e0cd5a227d64c9f670b43650833f43e0cbccb80e04f5e0cf%40%3Cdev.calcite.apache.org%3E
>>
>> Note: I believe "Sarg feature" should have been accompanied by the
>> relevant
>> additions to RefFuzzer, RexShrinker, and RexInterpreter as a part of the
>> test
>> coverage.
>> Under the current implementation, users can't avoid/disable SEARCH/Sarg,
>> and it is enabled by default, so the feature must come with tests.
>>
>> Vladimir
>>
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Stamatis Zampetakis <za...@gmail.com>.
OK so if I understand well for the next release we should aim to finish
CALCITE-4446, CALCITE-4405, and CALCITE-4487.

It would be good if people can test 1.26.0 or the current master now so
that we can see what else needs to be done for 1.27.0.

Best,
Stamatis

On Wed, Feb 3, 2021 at 9:46 AM Vladimir Sitnikov <
sitnikov.vladimir@gmail.com> wrote:

> Julian>because we never had a test case that indicated how actual behavior
> differed from desired behavior
>
> One of the tests has been included in Calcite sources for a while. Please
> refer to RexProgramFuzzyTest that I previously highlighted in
> "Search/Sarg: untested feature merged to the default branch" thread:
>
> https://lists.apache.org/thread.html/rce6e84d0e0cd5a227d64c9f670b43650833f43e0cbccb80e04f5e0cf%40%3Cdev.calcite.apache.org%3E
>
> Note: I believe "Sarg feature" should have been accompanied by the relevant
> additions to RefFuzzer, RexShrinker, and RexInterpreter as a part of the
> test
> coverage.
> Under the current implementation, users can't avoid/disable SEARCH/Sarg,
> and it is enabled by default, so the feature must come with tests.
>
> Vladimir
>

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Vladimir Sitnikov <si...@gmail.com>.
Julian>because we never had a test case that indicated how actual behavior
differed from desired behavior

One of the tests has been included in Calcite sources for a while. Please
refer to RexProgramFuzzyTest that I previously highlighted in
"Search/Sarg: untested feature merged to the default branch" thread:
https://lists.apache.org/thread.html/rce6e84d0e0cd5a227d64c9f670b43650833f43e0cbccb80e04f5e0cf%40%3Cdev.calcite.apache.org%3E

Note: I believe "Sarg feature" should have been accompanied by the relevant
additions to RefFuzzer, RexShrinker, and RexInterpreter as a part of the
test
coverage.
Under the current implementation, users can't avoid/disable SEARCH/Sarg,
and it is enabled by default, so the feature must come with tests.

Vladimir

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Francis Chuang <fr...@apache.org>.
I am happy to be RM for Avatica 1.18.0 (will start a new discussion for it).

If we are planning to release Avatica 1.18.0 before Calcite 1.27.0, the 
Calcite release will have to be pushed back. This might not necessary be 
a bad thing as we can buy more time to work through the issues in 
Calcite 1.27.0.

Francis

On 3/02/2021 10:31 am, Julian Hyde wrote:
> I think we should release Avatica 1.18 BEFORE Calcite 1.27. I just merged a fix to an important bug https://issues.apache.org/jira/browse/CALCITE-4476 <https://issues.apache.org/jira/browse/CALCITE-4476>, and it would be good if it got into Calcite 1.27.
> 
> I agree that we need to solve Sargs. Over Christmas, I put a lot of work into https://issues.apache.org/jira/browse/CALCITE-4446 <https://issues.apache.org/jira/browse/CALCITE-4446> but didn’t quite get it finished. (I never managed to start on https://issues.apache.org/jira/browse/CALCITE-4405 <https://issues.apache.org/jira/browse/CALCITE-4405>, because we never had a test case that indicated how actual behavior differed from desired behavior.)
> 
> It would be good to have some help with 4446.
> 
> Julian
> 
> 
>> On Feb 2, 2021, at 3:24 PM, Francis Chuang <fr...@apache.org> wrote:
>>
>> The proposed schedule looks good to me. I also agree that we need to reach a consensus on SARGs for this release.
>>
>> It's also been a while since Avatica has had a release, so I think it would be a good idea to release Avatica 1.18.0 after Calcite 1.27.0 is released.
>>
>> Francis
>>
>> On 3/02/2021 10:13 am, Stamatis Zampetakis wrote:
>>> Hi all,
>>> It's been almost 4 months since our last release so I would like to kick
>>> off the discussion for 1.27.0.
>>> I could try to prepare an RC around the 12th of February but I would like
>>> to hear your thoughts.
>>> As usual we have lots of pull requests [1] and a couple of JIRAs tagged for
>>> this release [2] so we should agree on what needs to be absolutely in the
>>> next release.
>>> In addition, the discussion about SARGs [3] is still open, as well as the
>>> respective JIRA [4], so I am not sure if we can move forward before
>>> reaching consensus there. For this matter let's discuss under the
>>> respective thread.
>>> Is there something else that needs to be addressed before proceeding?
>>> Best,
>>> Stamatis
>>> [1] https://github.com/apache/calcite/pulls
>>> [2]
>>> https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12333950
>>> [3]
>>> https://lists.apache.org/thread.html/r279bbe62f182ed39a7597ab70ab42cdcb5cf9ad45929cd55a2b66f27%40%3Cdev.calcite.apache.org%3E
>>> [4] https://issues.apache.org/jira/browse/CALCITE-4405
> 
> 

Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Julian Hyde <jh...@gmail.com>.
I think we should release Avatica 1.18 BEFORE Calcite 1.27. I just merged a fix to an important bug https://issues.apache.org/jira/browse/CALCITE-4476 <https://issues.apache.org/jira/browse/CALCITE-4476>, and it would be good if it got into Calcite 1.27.

I agree that we need to solve Sargs. Over Christmas, I put a lot of work into https://issues.apache.org/jira/browse/CALCITE-4446 <https://issues.apache.org/jira/browse/CALCITE-4446> but didn’t quite get it finished. (I never managed to start on https://issues.apache.org/jira/browse/CALCITE-4405 <https://issues.apache.org/jira/browse/CALCITE-4405>, because we never had a test case that indicated how actual behavior differed from desired behavior.)

It would be good to have some help with 4446.

Julian


> On Feb 2, 2021, at 3:24 PM, Francis Chuang <fr...@apache.org> wrote:
> 
> The proposed schedule looks good to me. I also agree that we need to reach a consensus on SARGs for this release.
> 
> It's also been a while since Avatica has had a release, so I think it would be a good idea to release Avatica 1.18.0 after Calcite 1.27.0 is released.
> 
> Francis
> 
> On 3/02/2021 10:13 am, Stamatis Zampetakis wrote:
>> Hi all,
>> It's been almost 4 months since our last release so I would like to kick
>> off the discussion for 1.27.0.
>> I could try to prepare an RC around the 12th of February but I would like
>> to hear your thoughts.
>> As usual we have lots of pull requests [1] and a couple of JIRAs tagged for
>> this release [2] so we should agree on what needs to be absolutely in the
>> next release.
>> In addition, the discussion about SARGs [3] is still open, as well as the
>> respective JIRA [4], so I am not sure if we can move forward before
>> reaching consensus there. For this matter let's discuss under the
>> respective thread.
>> Is there something else that needs to be addressed before proceeding?
>> Best,
>> Stamatis
>> [1] https://github.com/apache/calcite/pulls
>> [2]
>> https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12333950
>> [3]
>> https://lists.apache.org/thread.html/r279bbe62f182ed39a7597ab70ab42cdcb5cf9ad45929cd55a2b66f27%40%3Cdev.calcite.apache.org%3E
>> [4] https://issues.apache.org/jira/browse/CALCITE-4405


Re: [DISCUSS] Towards Calcite 1.27.0

Posted by Francis Chuang <fr...@apache.org>.
The proposed schedule looks good to me. I also agree that we need to 
reach a consensus on SARGs for this release.

It's also been a while since Avatica has had a release, so I think it 
would be a good idea to release Avatica 1.18.0 after Calcite 1.27.0 is 
released.

Francis

On 3/02/2021 10:13 am, Stamatis Zampetakis wrote:
> Hi all,
> 
> It's been almost 4 months since our last release so I would like to kick
> off the discussion for 1.27.0.
> 
> I could try to prepare an RC around the 12th of February but I would like
> to hear your thoughts.
> 
> As usual we have lots of pull requests [1] and a couple of JIRAs tagged for
> this release [2] so we should agree on what needs to be absolutely in the
> next release.
> 
> In addition, the discussion about SARGs [3] is still open, as well as the
> respective JIRA [4], so I am not sure if we can move forward before
> reaching consensus there. For this matter let's discuss under the
> respective thread.
> 
> Is there something else that needs to be addressed before proceeding?
> 
> Best,
> Stamatis
> 
> [1] https://github.com/apache/calcite/pulls
> [2]
> https://issues.apache.org/jira/secure/Dashboard.jspa?selectPageId=12333950
> [3]
> https://lists.apache.org/thread.html/r279bbe62f182ed39a7597ab70ab42cdcb5cf9ad45929cd55a2b66f27%40%3Cdev.calcite.apache.org%3E
> 
> [4] https://issues.apache.org/jira/browse/CALCITE-4405
>