Hi all, I'm not sure if this is an appropriate forum, I want to discuss concepts in the "One SQL to Rule Them All" paper. The paper uses `EMIT STREAM` clause, but Calcite uses the `STREAM` keyword after `SELECT`, but in my understanding, these are the same.
I'm wondering about the supposed semantics of the clause with multiple relations queried. It's supposed to produce a streaming output instead of instantaneous one. But IMO, you need to specify this property for each input relation. Take an example. Let's have ORDER_ITEM and PRODUCT relations. ORDER_ITEM(product_id, quantity, ...); PRODUCT(product_id, name); We want to join these and get a streaming result: SELECT STREAM * FROM order_item o JOIN product p USING(product_id) What should this query output? Intuitively, for each change event in order_item query it should find a matching product and emit that together. But it could be also interpreted that we treat the product as a time-varying relation: for each change event in order_item query all matching changes in product. I don't see which of the above behaviors should be chosen, provided both `order_item` and `product` relations can be accessed as point-in-time relations or time-varying relations. Regards, Viliam -- This message contains confidential information and is intended only for the individuals named. If you are not the named addressee you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender therefore does not accept liability for any errors or omissions in the contents of this message, which arise as a result of e-mail transmission. If verification is required, please request a hard-copy version. -Hazelcast