amaliujia commented on a change in pull request #1981:
URL: https://github.com/apache/calcite/pull/1981#discussion_r455212526
##########
File path: core/src/test/resources/sql/stream.iq
##########
@@ -64,6 +78,25 @@ SELECT * FROM TABLE(HOP(TABLE ORDERS, DESCRIPTOR(ROWTIME),
INTERVAL '5' MINUTE,
!ok
+SELECT * FROM TABLE(HOP(TABLE ORDERS, DESCRIPTOR(ROWTIME), INTERVAL '5'
MINUTE, INTERVAL '10' MINUTE, INTERVAL '2' MINUTE));
++---------------------+----+---------+-------+---------------------+---------------------+
+| ROWTIME | ID | PRODUCT | UNITS | window_start |
window_end |
++---------------------+----+---------+-------+---------------------+---------------------+
+| 2015-02-15 10:15:00 | 1 | paint | 10 | 2015-02-15 10:07:00 |
2015-02-15 10:17:00 |
+| 2015-02-15 10:15:00 | 1 | paint | 10 | 2015-02-15 10:12:00 |
2015-02-15 10:22:00 |
+| 2015-02-15 10:24:15 | 2 | paper | 5 | 2015-02-15 10:17:00 |
2015-02-15 10:27:00 |
+| 2015-02-15 10:24:15 | 2 | paper | 5 | 2015-02-15 10:22:00 |
2015-02-15 10:32:00 |
+| 2015-02-15 10:24:45 | 3 | brush | 12 | 2015-02-15 10:17:00 |
2015-02-15 10:27:00 |
+| 2015-02-15 10:24:45 | 3 | brush | 12 | 2015-02-15 10:22:00 |
2015-02-15 10:32:00 |
+| 2015-02-15 10:58:00 | 4 | paint | 3 | 2015-02-15 10:52:00 |
2015-02-15 11:02:00 |
+| 2015-02-15 10:58:00 | 4 | paint | 3 | 2015-02-15 10:57:00 |
2015-02-15 11:07:00 |
+| 2015-02-15 11:10:00 | 5 | paint | 3 | 2015-02-15 11:02:00 |
2015-02-15 11:12:00 |
Review comment:
I see. I would prefer to leave that work for another PR because Join
still has some areas that need a clarification.
Join windowed streams will need more thoughts. For example, can a TUMBLE
stream join HOP stream? It might make sense if there is a use case that intends
to do such join, but such case might be rare. So we could end up with
validating some Join cases. And if we plan to add more constraints, then
multi-way join will also become a case that need special handling because join
reordering might lead to an illegal join plan (depends on the rules of allowed
windowed joins though).
I feel like it would be better to promote stream to the first class citizen
in Calcite then in rule matching we should consider different joins: table join
table, steam join table and stream join stream, and the stream join stream will
need to consider different optimization factors.
Anyway, what I want to say is Join is a big area that can be discussed and
implemented separately.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]