1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! SQL Execution Infrastructure for SpireDB
//!
//! This module provides the complete SQL query execution layer:
//!
//! # Architecture
//!
//! ```text
//! ┌──────────────────────────────────────────────────────────────────┐
//! │ SQL Query Processing │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ [context] Global query context with session state │
//! │ [config] Configuration loading and CLI parsing │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ DDL/DML Handlers │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ [ddl] CREATE/DROP TABLE/INDEX via gRPC │
//! │ [dml] INSERT/UPDATE/DELETE via gRPC │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ Query Execution Layer │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ [exec] Single-shard execution plans │
//! │ [distributed] Multi-shard parallel execution │
//! │ [distributed_exec] DataFusion ExecutionPlan impl │
//! │ [provider] DataFusion TableProvider impl │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ Optimization & Routing │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ [filter] Predicate serialization for pushdown │
//! │ [pruning] Key-range extraction for region filtering │
//! │ [routing] Region discovery and query routing │
//! │ [statistics] Table stats for cost-based optimization │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ Infrastructure │
//! ├──────────────────────────────────────────────────────────────────┤
//! │ [cache] LRU query result caching │
//! │ [pool] Lock-free gRPC connection pooling │
//! │ [topology] Cluster topology monitoring │
//! └──────────────────────────────────────────────────────────────────┘
//! ```
//!
//! # Quick Start
//!
//! ```rust,ignore
//! use spiresql::sql::{context::SpireContext, config::Config, ddl::DdlHandler, dml::DmlHandler};
//!
//! // Initialize context with gRPC connections
//! let ctx = SpireContext::new(schema_client, cluster_client, &config);
//! ctx.register_tables().await?;
//!
//! // Execute SQL queries via DataFusion
//! let results = ctx.session().sql("SELECT * FROM users").await?;
//! ```
// Re-exports for convenience
pub use Config;
pub use SpireContext;
pub use DdlHandler;
pub use DmlHandler;
pub use ConnectionPool;
pub use RegionRouter;
pub use ClusterTopology;