You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Julian Hyde <jh...@apache.org> on 2015/01/29 01:08:41 UTC

[VOTE] Release apache-calcite-1.0.0-incubating (release candidate 2)

Hi all,

I have created a build for Apache Calcite 1.0.0-incubating, release candidate 2.

Thanks to everyone who has contributed to this release.

This is Calcite's first major release. The release adds:
* SQL support for GROUPING SETS, EXTEND, UPSERT and sequences;
* a remote JDBC driver;
* improvements to the planner engine and built-in planner rules;
* improvements to the algorithms that implement the relational
algebra, including an interpreter that can evaluate queries without
compilation;
* about 30 bug fixes.

Since the previous release we have re-organized the code into the
org.apache.calcite namespace; the release notes describe how to
migrate code that used the old APIs.

Since RC1 we have fixed issues CALCITE-567, CALCITE-568, CALCITE-570,
CALCITE-571, CALCITE-575.

You can read the release notes here:
https://github.com/apache/incubator-calcite/blob/branch-1.0/doc/HISTORY.md

The commit to be voted upon:
http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/9b1950ddfa01c16afb0e3ced4f5581b369b410b2

Its hash is 9b1950ddfa01c16afb0e3ced4f5581b369b410b2.

The artifacts to be voted on are located here:
http://people.apache.org/~jhyde/apache-calcite-1.0.0-incubating-rc2/

The hashes of the artifacts are as follows:
src.tar.gz.md5 864915537f26ba14e1981ce7fc07f056
src.tar.gz.sha1 669fa3a59e7b6e2a2f01db580cdfbf0d4493d00b
src.zip.md5 7916c172e766554f946dcb79b2ac8636
src.zip.sha1 6713517240e51273d34340274a8bfb85ed1861d2

A staged Maven repository is available for review at:
https://repository.apache.org/content/repositories/orgapachecalcite-1003

Release artifacts are signed with the following key:
https://people.apache.org/keys/committer/jhyde.asc

Please vote on releasing this package as Apache Calcite 1.0.0-incubating.

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

[ ] +1 Release this package as Apache Calcite 1.0.0-incubating
[ ]  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 (binding)

Julian

Re: [VOTE] Release apache-calcite-1.0.0-incubating (release candidate 2)

Posted by John Pullokkaran <jp...@hortonworks.com>.
+1 Hive Unit tests pass with Calcite RC2.

John

On 1/30/15, 2:53 AM, "Jesus Camachorodriguez"
<jc...@hortonworks.com> wrote:

>Successfully upgraded to RC2 and run tests on Hive trunk + HIVE-9454. I
>observed improvements in some plans, while the issues raised in RC1 have
>been solved (thanks, Julian).
>
>+1 (non-binding)
>
>Thanks,
>Jesús
>
>
>
>On 1/29/15, 12:08 AM, "Julian Hyde" <jh...@apache.org> wrote:
>
>>Hi all,
>>
>>I have created a build for Apache Calcite 1.0.0-incubating, release
>>candidate 2.
>>
>>Thanks to everyone who has contributed to this release.
>>
>>This is Calcite's first major release. The release adds:
>>* SQL support for GROUPING SETS, EXTEND, UPSERT and sequences;
>>* a remote JDBC driver;
>>* improvements to the planner engine and built-in planner rules;
>>* improvements to the algorithms that implement the relational
>>algebra, including an interpreter that can evaluate queries without
>>compilation;
>>* about 30 bug fixes.
>>
>>Since the previous release we have re-organized the code into the
>>org.apache.calcite namespace; the release notes describe how to
>>migrate code that used the old APIs.
>>
>>Since RC1 we have fixed issues CALCITE-567, CALCITE-568, CALCITE-570,
>>CALCITE-571, CALCITE-575.
>>
>>You can read the release notes here:
>>http://cp.mcafee.com/d/5fHCN0idEI9FK8KffL6XCQrKfnvoppodETsd7b3zaaapJ6XzRT
>>S6mnPqdT3hOMYqenAPhOr4lCPPWBiKNS0a9RzeI35oBqsKr9RzeI35oBqsKrd7a9EVs8movW_
>>cEIc8zKLsKCOUzPX3RQXYJt6OaqGab_axVZicHs3jq9JYTvASmbI9LLIFCXCOsVHkiP2cFASO
>>7bVGSS9_AEmr8reIiZJfJavUgfGgMx7om9BQuLy5ro5MQo18o1o7Vl0SxVAL7VJNwnuvsbyaP
>>pVZiFnoX0UDmcWMclylFOUaJFZFj_FgISgStoZGSS9_M04SUCPsS2_id41Fr38o18Qqnjh02_
>>f_quq8dmSNfOZJfJavBQuLROYEmr8rek29Ewd54vf_quq8br12i6PYQg9CyASejdYc_5
>>
>>The commit to be voted upon:
>>http://cp.mcafee.com/d/FZsS83hJ5xddN5NVZUTsSztNWXX3bb1J6XxEVosphhjdETsuK-
>>MOO-rhKUqem7zhOYCqejoyISuvkGlSeM1heIpRwoH4HjBPpeIpRwoH4HjBPpEVhd7bx2P3_nV
>>B5xx4tRXBQSn4uvouKDvBHEShjlhhvVkffGhBrwqrjdLCXYCONtxdZZBcTsS038OCncimbJQX
>>lJIj_w0ehZqJcSzKixpIxIWNbSQ-QF_yWIFUqei29EVvKwwXFJ3P9ufPrz0KY-Un4lCPPWBiK
>>NS1NeIpRwoH4HjBMlrjXiD_ixpIxIWNXlJIj_w09JNdCVI5-Aq83iS6gM2hEQKCy05-v-QYQg
>>qJJyvBXqvqk_bEZvHBVgISgSsE4jh0qa8-v-QYQgmS24AdDVEwjd59IsCrdP_u6OrN
>>01c16afb0e3ced4f5581b369b410b2
>>
>>Its hash is 9b1950ddfa01c16afb0e3ced4f5581b369b410b2.
>>
>>The artifacts to be voted on are located here:
>>http://cp.mcafee.com/d/FZsS72hJ5xddN5NVZUTsSztNWXX3bb1J6XxEVosphhjdETsuK-
>>MOO-rhKUqem7zhOYCqejoyISuvkGlSeM1heIpRwoH4HjBPpeIpRwoH4HjBPpEVhd7bx2P3_nV
>>B5xx4tRXBQSn4uvouKDvBHEShjlhhvVkffGhBrwqrpdLCXYCONtxdZZBcTsS03m-GN_ZGSS9_
>>M073jY8AOO7VGSS9-nJFZFjYKzR-KnB2Pp3pOwhbNIDxJ3P9ufPrz0KY-Un4lCPPWBiKNS1Ne
>>IpRwoH4HjBMlrjXiD_ixpIxIWNXlJIj_w09JNdCVI5-Aq83iS6gM2hEQKCy05-v-QYQgqJJyv
>>BXqvqk_bEZvHBVgISgSsE4jh0qa8-v-QYQgmS24AdDVEwjd59IsCrTCTh
>>
>>The hashes of the artifacts are as follows:
>>src.tar.gz.md5 864915537f26ba14e1981ce7fc07f056
>>src.tar.gz.sha1 669fa3a59e7b6e2a2f01db580cdfbf0d4493d00b
>>src.zip.md5 7916c172e766554f946dcb79b2ac8636
>>src.zip.sha1 6713517240e51273d34340274a8bfb85ed1861d2
>>
>>A staged Maven repository is available for review at:
>>http://cp.mcafee.com/d/2DRPoArhojjshsuvudTdETsuK-MOOMrhKUqem76kkkPqdT7HLI
>>cILCQrK6zBxUQsL9CzAS8HdDDRaBtzI0kjH6to6aNaQVsSjH6to6aNaQVsSqekjhOUgIM_R-p
>>hooh7tuVtdBN7DS7HFTVqWdAkRkkn-l3PWApmU6CS3rVK_9IInojvvpjdTdAVPmEBChZqJ9jH
>>4JSHroD_00sJm4_xf8-JmAFRzbWo01Rrr4_JFZFjYKzuX9J3P9ufPrz0KY-Un4lCPPWBiKNS1
>>NeIpRwoH4HjBMlrjXiD_ixpIxIWNXlJIj_w09JNdCVI5-Aq83iS6gM2hEQKCy05-v-QYQgqJJ
>>yvBXqvqk_bEZvHBVgISgSsE4jh0qa8-v-QYQgmS24AdDVEwjd59IsCrSHh9gjDm
>>
>>Release artifacts are signed with the following key:
>>http://cp.mcafee.com/d/5fHCMUg6wUSyMCCUyUY-YrKrhKUZtZxBBwSztMQsIecEEFCQrK
>>fnvoppvdETsd7b3NEVujd79IhmrffGlaX7o0EDmcWMclylFOVIDmcWMclylFOVIQsECzBMxpx
>>_HYOyMMyeWZOWrbyffIfnjLORQr8FGEELYG7DR8OJMddLCTPt-jpoKMC--OCrKr9PCJhbcm-G
>>N_ZGSS9_M072LBGoKHas_zwyjb8vSQIrgYOnzYSUMbLfK5N5pIY-FkHItwsjH6to6aNaQVs5m
>>Q-QF_QEmr8reIuRrr4_U02rsjpKr1vF6y0QJxAc0AqdbFEw1vD_Jfd46HroDVuSDSBfOWfnWV
>>ukbdAdDa14Qg6yyfD_Jfd45Jwx93p-q84Phir79CU_IguvRb
>>
>>Please vote on releasing this package as Apache Calcite 1.0.0-incubating.
>>
>>The vote is open for the next 72 hours and passes if a majority of
>>at least three +1 PPMC votes are cast.
>>
>>[ ] +1 Release this package as Apache Calcite 1.0.0-incubating
>>[ ]  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 (binding)
>>
>>Julian
>


Re: [VOTE] Release apache-calcite-1.0.0-incubating (release candidate 2)

Posted by Vladimir Sitnikov <si...@gmail.com>.
Here's additional test case:
https://github.com/vlsi/incubator-calcite/commit/f8ec9591ee6be3ce670dfeeb7ff076ae0c9f1345

testModelCustomTableArrayRowSingleColumn breaks with
java.lang.ClassCastException: java.lang.Integer cannot be cast to
[Ljava.lang.Object;
at Baz$1.apply(ANONYMOUS.java:11)

A naive fix (https://github.com/vlsi/incubator-calcite/commit/20d274c0526499cf06e0e61c6d49faf5a8ae7296)
breaks ScannableTable: it looks like scan always returns Object[],
however EnumerableTableScan requires scalars for single columns.

> It is also possible that https://issues.apache.org/jira/browse/CALCITE-580,
> logged yesterday, is another manifestation of this.

I believe 580 is just a new issue.

Vladimir

Re: [VOTE] Release apache-calcite-1.0.0-incubating (release candidate 2)

Posted by Julian Hyde <jh...@apache.org>.
Vladimir,

Thanks for finding this. It does sound serious. I am on the point of
canceling the vote.

It might have been due to https://issues.apache.org/jira/browse/CALCITE-488,
or it could be due to the change that fixed
https://issues.apache.org/jira/browse/CALCITE-488 and
https://issues.apache.org/jira/browse/CALCITE-562. I introduced a new
convention, BINDABLE, that has a slightly different row representation to
ENUMERABLE convention.

Both conventions return an Enumerator over objects. But those objects have
different types in the two conventions:
* In ENUMERABLE convention elementType is either Object[] or a generated
class with one field per column. If the elementType is Object[] and there
is only one column, the enumerator returns the column values, not wrapped
an array. For example, if the column is an INTEGER, each row will be a
java.lang.Integer. If the columns are {INTEGER, VARCHAR} each row will be
an Object[] containing a java.lang.Integer and a java.lang.String.
* In BINDABLE convention every row is an Object[].

It is possible that when I introduced BINDABLE convention I removed the
code that in ENUMERABLE convention optimizes an Object[] to a naked value.

It is also possible that https://issues.apache.org/jira/browse/CALCITE-580,
logged yesterday, is another manifestation of this.

What concerns me most is that there is not a test for this, or why that
test was not run as part of the pre-release checks. Can you please log a
bug and provide a test case?

The test case will help me understand this issue a bit better. If it is as
serious as it sounds my next move will be to cancel the vote.

Julian

On Jan 30, 2015, at 3:54 AM, Vladimir Sitnikov <si...@gmail.com>
wrote:

-1

The release brings regression in terms of
AbstractQueryableTable(Object[]) vs EnumerableTableScan interaction.

I am not sure what is the best way to solve it.

I suspect EnumerableTableScan users are impacted.

Historically, Calcite treated AbstractQueryableTable(Object[].class)
in a tricky way:
1) If the row type has more than one column, then Calcite expects
Enumerator<Object[]>
2) If the row type has just a single column, then Calcite expects
"unboxed Object[]".

In  CALCITE-488 this behavior was broken so for Object[].class tables
Calcite always expects Object[] boxed rows.
>From one view this new behavior is "less surprising", however the
change was not intended.

For instance, smart-csv-example is broken since it tries to use
adaptive enumerator type depending on the number of projected columns.
In particular, the change impacts my mat-calcite-plugin and I have no
idea how I missed that when I was testing previous RC.

I would suggest revert to the old mode when Object[].class kind of
tables skip Object[] array for single-column rows.

Well, the PhysType vs elementType API should be improved, however I
would not want that improvement to hold the train.

Any thoughts?

Vladimir

Re: [VOTE] Release apache-calcite-1.0.0-incubating (release candidate 2)

Posted by Vladimir Sitnikov <si...@gmail.com>.
-1

The release brings regression in terms of
AbstractQueryableTable(Object[]) vs EnumerableTableScan interaction.

I am not sure what is the best way to solve it.

I suspect EnumerableTableScan users are impacted.

Historically, Calcite treated AbstractQueryableTable(Object[].class)
in a tricky way:
1) If the row type has more than one column, then Calcite expects
Enumerator<Object[]>
2) If the row type has just a single column, then Calcite expects
"unboxed Object[]".

In  CALCITE-488 this behavior was broken so for Object[].class tables
Calcite always expects Object[] boxed rows.
>From one view this new behavior is "less surprising", however the
change was not intended.

For instance, smart-csv-example is broken since it tries to use
adaptive enumerator type depending on the number of projected columns.
In particular, the change impacts my mat-calcite-plugin and I have no
idea how I missed that when I was testing previous RC.

I would suggest revert to the old mode when Object[].class kind of
tables skip Object[] array for single-column rows.

Well, the PhysType vs elementType API should be improved, however I
would not want that improvement to hold the train.

Any thoughts?

Vladimir

Re: [VOTE] Release apache-calcite-1.0.0-incubating (release candidate 2)

Posted by Jesus Camachorodriguez <jc...@hortonworks.com>.
Successfully upgraded to RC2 and run tests on Hive trunk + HIVE-9454. I
observed improvements in some plans, while the issues raised in RC1 have
been solved (thanks, Julian).

+1 (non-binding)

Thanks,
Jesús



On 1/29/15, 12:08 AM, "Julian Hyde" <jh...@apache.org> wrote:

>Hi all,
>
>I have created a build for Apache Calcite 1.0.0-incubating, release
>candidate 2.
>
>Thanks to everyone who has contributed to this release.
>
>This is Calcite's first major release. The release adds:
>* SQL support for GROUPING SETS, EXTEND, UPSERT and sequences;
>* a remote JDBC driver;
>* improvements to the planner engine and built-in planner rules;
>* improvements to the algorithms that implement the relational
>algebra, including an interpreter that can evaluate queries without
>compilation;
>* about 30 bug fixes.
>
>Since the previous release we have re-organized the code into the
>org.apache.calcite namespace; the release notes describe how to
>migrate code that used the old APIs.
>
>Since RC1 we have fixed issues CALCITE-567, CALCITE-568, CALCITE-570,
>CALCITE-571, CALCITE-575.
>
>You can read the release notes here:
>https://github.com/apache/incubator-calcite/blob/branch-1.0/doc/HISTORY.md
>
>The commit to be voted upon:
>http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/9b1950ddfa
>01c16afb0e3ced4f5581b369b410b2
>
>Its hash is 9b1950ddfa01c16afb0e3ced4f5581b369b410b2.
>
>The artifacts to be voted on are located here:
>http://people.apache.org/~jhyde/apache-calcite-1.0.0-incubating-rc2/
>
>The hashes of the artifacts are as follows:
>src.tar.gz.md5 864915537f26ba14e1981ce7fc07f056
>src.tar.gz.sha1 669fa3a59e7b6e2a2f01db580cdfbf0d4493d00b
>src.zip.md5 7916c172e766554f946dcb79b2ac8636
>src.zip.sha1 6713517240e51273d34340274a8bfb85ed1861d2
>
>A staged Maven repository is available for review at:
>https://repository.apache.org/content/repositories/orgapachecalcite-1003
>
>Release artifacts are signed with the following key:
>https://people.apache.org/keys/committer/jhyde.asc
>
>Please vote on releasing this package as Apache Calcite 1.0.0-incubating.
>
>The vote is open for the next 72 hours and passes if a majority of
>at least three +1 PPMC votes are cast.
>
>[ ] +1 Release this package as Apache Calcite 1.0.0-incubating
>[ ]  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 (binding)
>
>Julian