The CQL continuous query language: semantic foundations and query execution

defines abstract semantic for continous queries

CQL := SQL + operators that map between relation and stream (e.g. windows)

Motivating Example

Select P.price
From Items[Rows 5] as I,
        PriceTable as P
Where I.itemID = P.itemID

Items is a stream, PriceTable is a stored relation, and [Rows 5] specifies a 5-element sliding window.

Even this simple query has no single obvious interpretation that we know of. For example, is the result of the query a stream or a relation? What happens to the query result when the price of a recently purchased item – i.e., an item still within the 5-element window – changes?

C.f. Apache Calcite's Streaming Extension, SamzaSQL and Kafka's KSQL / ksqlDB.