Skip to main content

oxirs_stream/
stream_sql.rs

1//! # Stream SQL - SQL-like Query Language for Streams
2//!
3//! This module provides a SQL-like query language specifically designed
4//! for stream processing, enabling developers to write familiar SQL queries
5//! for real-time data processing.
6//!
7//! ## Features
8//! - SQL parsing and execution for streams
9//! - Window functions (TUMBLING, SLIDING, SESSION)
10//! - Aggregate functions (COUNT, SUM, AVG, MIN, MAX, STDDEV)
11//! - Stream joins with temporal semantics
12//! - Pattern matching in streams
13//! - Query optimization
14//!
15//! ## Example
16//! ```sql
17//! SELECT sensor_id, AVG(temperature) as avg_temp
18//! FROM sensor_stream
19//! WINDOW TUMBLING (SIZE 5 MINUTES)
20//! GROUP BY sensor_id
21//! HAVING AVG(temperature) > 30
22//! ```
23//!
24//! ## Module layout
25//! - `stream_sql_ast`      — config, token types, lexer, AST nodes, result types
26//! - `stream_sql_executor` — `Parser` + `StreamSqlEngine`
27//! - `stream_sql_tests`    — integration tests
28
29// Re-export everything from sibling modules so downstream code keeps working.
30pub use crate::stream_sql_ast::*;
31pub use crate::stream_sql_executor::*;