Re: [VOTE] Release apache-calcite-1.25.0 (release candidate 0)

2020-08-09 Thread Rui Wang
> I'm happy to change release notes to better reflect 1.25.0 changes. I
> presume it can be done after the vote ?

Absolutely! It does not affect current vote.


-Rui

On Sun, Aug 9, 2020 at 4:55 PM Andrei Sereda  wrote:

> > one thing can be fixed after vote: CALCITE-4114 does not belong to
> "breaking changes" in the release note.
>
> I'm happy to change release notes to better reflect 1.25.0 changes. I
> presume it can be done after the vote ?
>
> On Sun, Aug 9, 2020 at 7:39 PM Francis Chuang 
> wrote:
>
> > Thanks for making this release available for voting, Andrei!
> >
> > Verified GPG Signature - OK
> > Verified SHA512 - OK
> > Ran tests per HOWTO (./gradlew check) - OK
> > Quickly skimmed release notes
> > (
> >
> https://github.com/apache/calcite/blob/calcite-1.25.0-rc0/site/_docs/history.md
> )
> >
> > - OK
> > Spotted checked a few JARs in the Maven repository - OK
> >
> > Environment (OpenJDK:latest docker container):
> > Gradle 6.3 (via gradlew)
> > Oracle Linux Server 7.8
> > openjdk 14.0.2 2020-07-14
> > OpenJDK Runtime Environment (build 14.0.2+12-46)
> > OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
> >
> > My vote is: +1 (binding)
> >
> > Francis
> >
> > On 10/08/2020 4:10 am, Rui Wang wrote:
> > > +1 (non-binding)
> > >
> > > platform: ubuntu16 + java8
> > >
> > > run tests locally on: ok
> > > verify the commit hash in git tag: ok
> > > check sha512: ok
> > > verify signature by gpg:  ok
> > >
> > >
> > > one thing can be fixed after vote: CALCITE-4114 does not belong to
> > > "breaking changes" in the release note. That change happened in
> core/test
> > > (a testing related change).
> > >
> > >
> > > -Rui
> > >
> > >
> > >
> > > On Sun, Aug 9, 2020 at 2:02 AM Enrico Olivelli 
> > wrote:
> > >
> > >> +1 (non binding)
> > >> run tests locally on Fedora + JDK14
> > >> run tests of HerdDB just by switching from 1.24 without any change
> > >>
> > >> Enrico
> > >>
> > >> Il giorno dom 9 ago 2020 alle ore 05:22 Andrei Sereda
>  > >
> > >> ha
> > >> scritto:
> > >>
> > >>> Hi all,
> > >>>
> > >>> I have created a build for Apache Calcite 1.25.0, release
> > >>> candidate 0.
> > >>>
> > >>> Thanks to everyone who has contributed to this release.
> > >>>
> > >>> You can read the release notes here:
> > >>> https://apache.github.io/calcite-site-preview/docs/history.html
> > >>>
> > >>> The commit to be voted upon:
> > >>>
> > >>>
> > >>
> >
> https://gitbox.apache.org/repos/asf?p=calcite.git;a=commit;h=68b02dfd4af15bc94a91a0cd2a30655d04439555
> > >>>
> > >>> Its hash is 68b02dfd4af15bc94a91a0cd2a30655d04439555
> > >>>
> > >>> Tag:
> > >>> https://github.com/apache/calcite/tree/calcite-1.25.0-rc0
> > >>>
> > >>> The artifacts to be voted on are located here:
> > >>>
> > https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-1.25.0-rc0
> > >>> (revision 40922)
> > >>>
> > >>> RAT report:
> > >>> https://apache.github.io/calcite-site-preview/rat/rat-report.txt
> > >>>
> > >>> Site preview is here:
> > >>> https://apache.github.io/calcite-site-preview/
> > >>>
> > >>> JavaDoc API preview is here:
> > >>> https://apache.github.io/calcite-site-preview/api
> > >>>
> > >>> The hashes of the artifacts are as follows:
> > >>>
> > >>>
> > >>
> >
> a5e61bd93657a274ee8a1d1ecbde68e3e471fd27b85bea179991b372f094ae3cdf692672245506a08b996534f9136be26569de81af2bb7d8f026799313957e87
> > >>> *apache-calcite-1.25.0-src.tar.gz
> > >>>
> > >>> A staged Maven repository is available for review at:
> > >>>
> > >>>
> > >>
> >
> https://repository.apache.org/content/repositories/orgapachecalcite-1097/org/apache/calcite/
> > >>>
> > >>> Release artifacts are signed with the following key:
> > >>> https://people.apache.org/keys/committer/sereda.asc
> > >>> https://www.apache.org/dist/calcite/KEYS
> > >>>
> > >>> N.B.
> > >>> To create the jars and test Apache Calcite: "./gradlew build".
> > >>>
> > >>> If you do not have a Java environment available, you can run the
> tests
> > >>> using docker. To do so, install docker and docker-compose, then run
> > >>> "docker-compose run test" from the root of the directory.
> > >>>
> > >>> Please vote on releasing this package as Apache Calcite 1.25.0.
> > >>>
> > >>> The vote is open for the next 72 hours and passes if a majority of at
> > >>> least three +1 PMC votes are cast.
> > >>>
> > >>> [ ] +1 Release this package as Apache Calcite 1.25.0
> > >>> [ ]  0 I don't feel strongly about it, but I'm okay with the release
> > >>> [ ] -1 Do not release this package because...
> > >>>
> > >>>
> > >>> Here is my vote:
> > >>>
> > >>> +1 (non binding)
> > >>>
> > >>
> > >
> >
>


Re: [VOTE] Release apache-calcite-1.25.0 (release candidate 0)

2020-08-09 Thread Francis Chuang

Thanks for making this release available for voting, Andrei!

Verified GPG Signature - OK
Verified SHA512 - OK
Ran tests per HOWTO (./gradlew check) - OK
Quickly skimmed release notes 
(https://github.com/apache/calcite/blob/calcite-1.25.0-rc0/site/_docs/history.md) 
- OK

Spotted checked a few JARs in the Maven repository - OK

Environment (OpenJDK:latest docker container):
Gradle 6.3 (via gradlew)
Oracle Linux Server 7.8
openjdk 14.0.2 2020-07-14
OpenJDK Runtime Environment (build 14.0.2+12-46)
OpenJDK 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)

My vote is: +1 (binding)

Francis

On 10/08/2020 4:10 am, Rui Wang wrote:

+1 (non-binding)

platform: ubuntu16 + java8

run tests locally on: ok
verify the commit hash in git tag: ok
check sha512: ok
verify signature by gpg:  ok


one thing can be fixed after vote: CALCITE-4114 does not belong to
"breaking changes" in the release note. That change happened in core/test
(a testing related change).


-Rui



On Sun, Aug 9, 2020 at 2:02 AM Enrico Olivelli  wrote:


+1 (non binding)
run tests locally on Fedora + JDK14
run tests of HerdDB just by switching from 1.24 without any change

Enrico

Il giorno dom 9 ago 2020 alle ore 05:22 Andrei Sereda 
ha
scritto:


Hi all,

I have created a build for Apache Calcite 1.25.0, release
candidate 0.

Thanks to everyone who has contributed to this release.

You can read the release notes here:
https://apache.github.io/calcite-site-preview/docs/history.html

The commit to be voted upon:



https://gitbox.apache.org/repos/asf?p=calcite.git;a=commit;h=68b02dfd4af15bc94a91a0cd2a30655d04439555


Its hash is 68b02dfd4af15bc94a91a0cd2a30655d04439555

Tag:
https://github.com/apache/calcite/tree/calcite-1.25.0-rc0

The artifacts to be voted on are located here:
https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-1.25.0-rc0
(revision 40922)

RAT report:
https://apache.github.io/calcite-site-preview/rat/rat-report.txt

Site preview is here:
https://apache.github.io/calcite-site-preview/

JavaDoc API preview is here:
https://apache.github.io/calcite-site-preview/api

The hashes of the artifacts are as follows:



a5e61bd93657a274ee8a1d1ecbde68e3e471fd27b85bea179991b372f094ae3cdf692672245506a08b996534f9136be26569de81af2bb7d8f026799313957e87

*apache-calcite-1.25.0-src.tar.gz

A staged Maven repository is available for review at:



https://repository.apache.org/content/repositories/orgapachecalcite-1097/org/apache/calcite/


Release artifacts are signed with the following key:
https://people.apache.org/keys/committer/sereda.asc
https://www.apache.org/dist/calcite/KEYS

N.B.
To create the jars and test Apache Calcite: "./gradlew build".

If you do not have a Java environment available, you can run the tests
using docker. To do so, install docker and docker-compose, then run
"docker-compose run test" from the root of the directory.

Please vote on releasing this package as Apache Calcite 1.25.0.

The vote is open for the next 72 hours and passes if a majority of at
least three +1 PMC votes are cast.

[ ] +1 Release this package as Apache Calcite 1.25.0
[ ]  0 I don't feel strongly about it, but I'm okay with the release
[ ] -1 Do not release this package because...


Here is my vote:

+1 (non binding)







[jira] [Created] (CALCITE-4170) Improve simplification of "<>" predicates

2020-08-09 Thread Julian Hyde (Jira)
Julian Hyde created CALCITE-4170:


 Summary: Improve simplification of "<>" predicates
 Key: CALCITE-4170
 URL: https://issues.apache.org/jira/browse/CALCITE-4170
 Project: Calcite
  Issue Type: Bug
Reporter: Julian Hyde


Improve simplification of "<>" (not equals) predicates.

Today we can simplify "a = 1 or a <> 1" to "true" but we cannot simplify "a <> 
1 or a = 1" to "true". The problem is this. The algorithm for simplifying "or" 
builds a up a list of predicates as it works left to right. After dealing with 
"a = 1" RexSimplifier has a predicate "a = 1" and therefore it can simplify the 
next predicate to anything that returns the right result over the possible 
inputs - which will not include a = 1 - and therefore 'a <> 1' can be 
simplified to 'true'.

But today, we can't take that approach with "a <> 1 or a = 1" because "a <> 1" 
cannot be represented as a single range. It needs two ranges - less than 1 or 
greater than 1. The fix is therefore to allow predicates to be range sets not 
just ranges.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[DISCUSS] Sarg (search argument) to generalize and replace IN in RexCall

2020-08-09 Thread Julian Hyde
We have had several discussions over the years about how to represent IN-lists 
(e.g. “x IN (1, 3, 5)”) in RexNode-land.

I have generally taken the position that we should expand to ORs (e.g. “x = 1 
OR x = 3 OR x = 5”) but a few months ago accepted that we should allow IN in 
RexCall.

I have given this some further thought, as part of a couple of RexSimplify bugs 
[1] [2] and I now think we should replace IN with something more powerful, 
namely sargs. A sarg (or search argument [3]) is an ordered set of intervals, 
and can be represented as a Guava ImmutableRangeSet, such as "[[0‥1), (1‥2], 
[3‥3], (5‥+∞)]". It can represent an IN-list of constants, but also ranges.

Today you would write

  RexCall(IN, RexInputRef(0), RexLiteral(1), RexLiteral(3), RexLiteral(5))

With sargs, you would instead write

  RexCall(IN_SARG, RexInputRef(0), RexSarg(ImmutableRangeSet(“[[1..1], [3..3], 
[5..5]]”)))

There is a new operator IN_SARG, and a new node type RexSarg (it could almost 
be a RexLiteral).

Sargs (and Guava RangeSets) have a powerful and consistent algebra, so if we 
invest in sarg support in RexSimplify and RelOptPredicateList, that investment 
is likely to pay dividends in better plans.

Guava RangeSets, and hence sargs, have support for discrete domains, so they 
can easily optimize ">2 AND <4" to "3”.

Sargs would be the preferred (therefore canonical) form for any AND or OR list 
that has more than one comparison on the same operand (e.g. "x > 3 AND x < 17 
AND x <> 10”).
 
This proposal would subsume IN and therefore we would stop supporting IN in 
RexCall.

Julian

[1] https://issues.apache.org/jira/browse/CALCITE-4155 


[2] https://github.com/julianhyde/calcite/tree/4159-simplify 
 

[3] https://en.wikipedia.org/wiki/Sargable 
 

Re: [VOTE] Release apache-calcite-1.25.0 (release candidate 0)

2020-08-09 Thread Rui Wang
+1 (non-binding)

platform: ubuntu16 + java8

run tests locally on: ok
verify the commit hash in git tag: ok
check sha512: ok
verify signature by gpg:  ok


one thing can be fixed after vote: CALCITE-4114 does not belong to
"breaking changes" in the release note. That change happened in core/test
(a testing related change).


-Rui



On Sun, Aug 9, 2020 at 2:02 AM Enrico Olivelli  wrote:

> +1 (non binding)
> run tests locally on Fedora + JDK14
> run tests of HerdDB just by switching from 1.24 without any change
>
> Enrico
>
> Il giorno dom 9 ago 2020 alle ore 05:22 Andrei Sereda 
> ha
> scritto:
>
> > Hi all,
> >
> > I have created a build for Apache Calcite 1.25.0, release
> > candidate 0.
> >
> > Thanks to everyone who has contributed to this release.
> >
> > You can read the release notes here:
> > https://apache.github.io/calcite-site-preview/docs/history.html
> >
> > The commit to be voted upon:
> >
> >
> https://gitbox.apache.org/repos/asf?p=calcite.git;a=commit;h=68b02dfd4af15bc94a91a0cd2a30655d04439555
> >
> > Its hash is 68b02dfd4af15bc94a91a0cd2a30655d04439555
> >
> > Tag:
> > https://github.com/apache/calcite/tree/calcite-1.25.0-rc0
> >
> > The artifacts to be voted on are located here:
> > https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-1.25.0-rc0
> > (revision 40922)
> >
> > RAT report:
> > https://apache.github.io/calcite-site-preview/rat/rat-report.txt
> >
> > Site preview is here:
> > https://apache.github.io/calcite-site-preview/
> >
> > JavaDoc API preview is here:
> > https://apache.github.io/calcite-site-preview/api
> >
> > The hashes of the artifacts are as follows:
> >
> >
> a5e61bd93657a274ee8a1d1ecbde68e3e471fd27b85bea179991b372f094ae3cdf692672245506a08b996534f9136be26569de81af2bb7d8f026799313957e87
> > *apache-calcite-1.25.0-src.tar.gz
> >
> > A staged Maven repository is available for review at:
> >
> >
> https://repository.apache.org/content/repositories/orgapachecalcite-1097/org/apache/calcite/
> >
> > Release artifacts are signed with the following key:
> > https://people.apache.org/keys/committer/sereda.asc
> > https://www.apache.org/dist/calcite/KEYS
> >
> > N.B.
> > To create the jars and test Apache Calcite: "./gradlew build".
> >
> > If you do not have a Java environment available, you can run the tests
> > using docker. To do so, install docker and docker-compose, then run
> > "docker-compose run test" from the root of the directory.
> >
> > Please vote on releasing this package as Apache Calcite 1.25.0.
> >
> > The vote is open for the next 72 hours and passes if a majority of at
> > least three +1 PMC votes are cast.
> >
> > [ ] +1 Release this package as Apache Calcite 1.25.0
> > [ ]  0 I don't feel strongly about it, but I'm okay with the release
> > [ ] -1 Do not release this package because...
> >
> >
> > Here is my vote:
> >
> > +1 (non binding)
> >
>


Re: [VOTE] Release apache-calcite-1.25.0 (release candidate 0)

2020-08-09 Thread Enrico Olivelli
+1 (non binding)
run tests locally on Fedora + JDK14
run tests of HerdDB just by switching from 1.24 without any change

Enrico

Il giorno dom 9 ago 2020 alle ore 05:22 Andrei Sereda  ha
scritto:

> Hi all,
>
> I have created a build for Apache Calcite 1.25.0, release
> candidate 0.
>
> Thanks to everyone who has contributed to this release.
>
> You can read the release notes here:
> https://apache.github.io/calcite-site-preview/docs/history.html
>
> The commit to be voted upon:
>
> https://gitbox.apache.org/repos/asf?p=calcite.git;a=commit;h=68b02dfd4af15bc94a91a0cd2a30655d04439555
>
> Its hash is 68b02dfd4af15bc94a91a0cd2a30655d04439555
>
> Tag:
> https://github.com/apache/calcite/tree/calcite-1.25.0-rc0
>
> The artifacts to be voted on are located here:
> https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-1.25.0-rc0
> (revision 40922)
>
> RAT report:
> https://apache.github.io/calcite-site-preview/rat/rat-report.txt
>
> Site preview is here:
> https://apache.github.io/calcite-site-preview/
>
> JavaDoc API preview is here:
> https://apache.github.io/calcite-site-preview/api
>
> The hashes of the artifacts are as follows:
>
> a5e61bd93657a274ee8a1d1ecbde68e3e471fd27b85bea179991b372f094ae3cdf692672245506a08b996534f9136be26569de81af2bb7d8f026799313957e87
> *apache-calcite-1.25.0-src.tar.gz
>
> A staged Maven repository is available for review at:
>
> https://repository.apache.org/content/repositories/orgapachecalcite-1097/org/apache/calcite/
>
> Release artifacts are signed with the following key:
> https://people.apache.org/keys/committer/sereda.asc
> https://www.apache.org/dist/calcite/KEYS
>
> N.B.
> To create the jars and test Apache Calcite: "./gradlew build".
>
> If you do not have a Java environment available, you can run the tests
> using docker. To do so, install docker and docker-compose, then run
> "docker-compose run test" from the root of the directory.
>
> Please vote on releasing this package as Apache Calcite 1.25.0.
>
> The vote is open for the next 72 hours and passes if a majority of at
> least three +1 PMC votes are cast.
>
> [ ] +1 Release this package as Apache Calcite 1.25.0
> [ ]  0 I don't feel strongly about it, but I'm okay with the release
> [ ] -1 Do not release this package because...
>
>
> Here is my vote:
>
> +1 (non binding)
>