You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Milinda Lakmal Pathirage (JIRA)" <ji...@apache.org> on 2015/12/06 06:50:10 UTC
[jira] [Comment Edited] (CALCITE-968) Support stream joins
[ https://issues.apache.org/jira/browse/CALCITE-968?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15043712#comment-15043712 ]
Milinda Lakmal Pathirage edited comment on CALCITE-968 at 12/6/15 5:49 AM:
---------------------------------------------------------------------------
[~julianhyde], fixes looks okay to me. I am getting following exception when I ran StreamTest.
{noformat}
Running org.apache.calcite.test.StreamTest
Tests run: 7, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 8.753 sec <<< FAILURE! - in org.apache.calcite.test.StreamTest
testStreamToRelationJoin(org.apache.calcite.test.StreamTest) Time elapsed: 0.104 sec <<< ERROR!
java.lang.RuntimeException: exception while preparing [select stream orders.rowtime as rowtime, orders.id as orderId, products.supplier as supplierId from orders join products on orders.product = products.id]
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:865)
at org.junit.Assert.assertThat(Assert.java:832)
at org.apache.calcite.test.CalciteAssert$2.apply(CalciteAssert.java:225)
at org.apache.calcite.test.CalciteAssert$2.apply(CalciteAssert.java:219)
at org.apache.calcite.test.CalciteAssert$13.apply(CalciteAssert.java:523)
at org.apache.calcite.test.CalciteAssert$13.apply(CalciteAssert.java:521)
at org.apache.calcite.runtime.Hook.run(Hook.java:128)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:266)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:190)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:727)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:586)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:556)
at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
at org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
at org.apache.calcite.test.CalciteAssert.assertPrepare(CalciteAssert.java:544)
at org.apache.calcite.test.CalciteAssert$AssertQuery.convertMatches(CalciteAssert.java:1257)
at org.apache.calcite.test.CalciteAssert$AssertQuery.convertContains(CalciteAssert.java:1252)
at org.apache.calcite.test.StreamTest.testStreamToRelationJoin(StreamTest.java:238)
{noformat}
According to IntelliJ IDEA MatcherAssert#20 looks like following:
{code:java}
if(!matcher.matches(actual)) {
{code}
Can the above exception be a NullPointerException? But if {{convertContains}} works for other tests, this should work for testStreamToRelationJoin as well. May be I am missing something obvious in the code.
was (Author: milinda):
[~julianhyde], fixes looks okay to me. I am getting following exception when I ran StreamTest.
Running org.apache.calcite.test.StreamTest
Tests run: 7, Failures: 0, Errors: 1, Skipped: 1, Time elapsed: 8.753 sec <<< FAILURE! - in org.apache.calcite.test.StreamTest
testStreamToRelationJoin(org.apache.calcite.test.StreamTest) Time elapsed: 0.104 sec <<< ERROR!
java.lang.RuntimeException: exception while preparing [select stream orders.rowtime as rowtime, orders.id as orderId, products.supplier as supplierId from orders join products on orders.product = products.id]
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:865)
at org.junit.Assert.assertThat(Assert.java:832)
at org.apache.calcite.test.CalciteAssert$2.apply(CalciteAssert.java:225)
at org.apache.calcite.test.CalciteAssert$2.apply(CalciteAssert.java:219)
at org.apache.calcite.test.CalciteAssert$13.apply(CalciteAssert.java:523)
at org.apache.calcite.test.CalciteAssert$13.apply(CalciteAssert.java:521)
at org.apache.calcite.runtime.Hook.run(Hook.java:128)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:266)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:190)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:727)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:586)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:556)
at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement_(CalciteConnectionImpl.java:194)
at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:184)
at org.apache.calcite.jdbc.CalciteConnectionImpl.prepareStatement(CalciteConnectionImpl.java:85)
at org.apache.calcite.avatica.AvaticaConnection.prepareStatement(AvaticaConnection.java:153)
at org.apache.calcite.test.CalciteAssert.assertPrepare(CalciteAssert.java:544)
at org.apache.calcite.test.CalciteAssert$AssertQuery.convertMatches(CalciteAssert.java:1257)
at org.apache.calcite.test.CalciteAssert$AssertQuery.convertContains(CalciteAssert.java:1252)
at org.apache.calcite.test.StreamTest.testStreamToRelationJoin(StreamTest.java:238)
According to IntelliJ IDEA MatcherAssert#20 looks like following:
{code:java}
if(!matcher.matches(actual)) {
{code}
Can the above exception be a NullPointerException? But if {{convertContains}} works for other tests, this should work for testStreamToRelationJoin as well. May be I am missing something obvious in the code.
> Support stream joins
> --------------------
>
> Key: CALCITE-968
> URL: https://issues.apache.org/jira/browse/CALCITE-968
> Project: Calcite
> Issue Type: New Feature
> Components: core, stream
> Reporter: Milinda Lakmal Pathirage
> Assignee: Julian Hyde
> Attachments: CALCITE-968-0.patch
>
>
> Stream joins are used to relate information from different streams or stream and relation combinations. Calcite lacks (proper) support for stream-to-relation joins and stream-to-stream joins.
> stream-to-relation join like below fails at the SQL validation stage.
> select stream orders.orderId, orders.productId, products.name from orders join products on orders.productId = products.id
> But if 'products' is a stream, the query is valid according to Calcite, even though the stream-to-stream join in above query is not valid due to unbounded nature of streams.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)