  Real-time data analysis and management are increasingly critical for today`s
businesses. SQL is the de facto lingua franca for these endeavors, yet support
for robust streaming analysis and management with SQL remains limited. Many
approaches restrict semantics to a reduced subset of features and/or require a
suite of non-standard constructs. Additionally, use of event timestamps to
provide native support for analyzing events according to when they actually
occurred is not pervasive, and often comes with important limitations. We
present a three-part proposal for integrating robust streaming into the SQL
standard, namely: (1) time-varying relations as a foundation for classical
tables as well as streaming data, (2) event time semantics, (3) a limited set
of optional keyword extensions to control the materialization of time-varying
query results. Motivated and illustrated using examples and lessons learned
from implementations in Apache Calcite, Apache Flink, and Apache Beam, we show
how with these minimal additions it is possible to utilize the complete suite
of standard SQL semantics to perform robust stream processing.
