Skip to main content

vibesql_executor/
lib.rs

1//! Executor - SQL Query Execution Engine
2//!
3//! This crate provides query execution functionality for SQL statements.
4
5pub mod advanced_objects;
6mod alter;
7mod alter_rewrite;
8pub mod arena;
9pub mod cache;
10mod compaction_guard;
11mod constraint_validator;
12pub mod correlation;
13mod create_table;
14pub mod cursor;
15pub mod debug_output;
16mod delete;
17pub mod dml_cost;
18mod dml_returning;
19mod domain_ddl;
20mod drop_table;
21pub mod errors;
22pub mod evaluator;
23mod explain;
24pub mod expression_index_maintenance;
25pub mod foreign_key_check;
26mod grant;
27pub mod index_ddl;
28pub mod information_schema;
29mod insert;
30mod introspection;
31pub mod limits;
32pub mod memory;
33pub mod mvcc;
34mod optimizer;
35pub mod partial_index_maintenance;
36pub mod persistence;
37pub mod pipeline;
38mod privilege_checker;
39pub mod procedural;
40mod raise_scope;
41pub mod profiling;
42mod revoke;
43mod role_ddl;
44pub mod schema;
45mod schema_ddl;
46pub mod select;
47mod select_into;
48pub mod session;
49pub mod sqlite_schema;
50pub mod sqlite_stat;
51pub mod timeout;
52mod transaction;
53mod trigger_ddl;
54mod trigger_execution;
55mod trigger_rename;
56pub mod truncate;
57mod truncate_table;
58mod truncate_validation;
59mod type_ddl;
60mod update;
61mod view_ddl;
62
63pub mod readonly;
64
65// SIMD-accelerated operations for columnar execution
66#[cfg(feature = "simd")]
67pub mod simd;
68
69pub use alter::AlterTableExecutor;
70pub use cache::{
71    CacheManager, CacheStats, CachedQueryContext, PreparedStatement, PreparedStatementCache,
72    PreparedStatementCacheStats, PreparedStatementError, QueryPlanCache, QuerySignature,
73};
74pub use constraint_validator::ConstraintValidator;
75pub use create_table::CreateTableExecutor;
76pub use cursor::{Cursor, CursorExecutor, CursorResult, CursorStore, FetchResult};
77pub use delete::DeleteExecutor;
78pub use dml_cost::DmlOptimizer;
79pub use domain_ddl::DomainExecutor;
80pub use drop_table::DropTableExecutor;
81pub use errors::ExecutorError;
82pub use evaluator::{clear_in_subquery_cache, ExpressionEvaluator};
83pub use explain::{ExplainExecutor, ExplainResult, PlanNode, SqliteVmOutput, VmInstruction};
84pub use grant::GrantExecutor;
85pub use index_ddl::{
86    AnalyzeExecutor, CreateIndexExecutor, DropIndexExecutor, IndexExecutor, ReindexExecutor,
87};
88// `evaluate_default_expression` is re-exported so the Raft replication
89// freeze pass (`vibesql-consensus::freeze`, #5381) can evaluate a
90// non-deterministic column DEFAULT at propose time with **exactly** the
91// semantics the apply-time executor would use when the DEFAULT fires.
92pub use insert::defaults::evaluate_default_expression;
93pub use insert::{InsertExecutor, InsertOutcome};
94pub use introspection::IntrospectionExecutor;
95pub use memory::QueryArena;
96pub use persistence::load_sql_dump;
97pub use pipeline::{
98    ColumnarPipeline, ExecutionContext, ExecutionPipeline, NativeColumnarPipeline, PipelineInput,
99    PipelineOutput, RowOrientedPipeline,
100};
101pub use privilege_checker::PrivilegeChecker;
102// Read-only query support for concurrent access
103pub use readonly::{ReadOnlyError, ReadOnlyQuery, SharedDatabase};
104pub use revoke::RevokeExecutor;
105pub use role_ddl::RoleExecutor;
106pub use schema_ddl::SchemaExecutor;
107pub use select::{SelectExecutor, SelectResult};
108pub use select_into::SelectIntoExecutor;
109pub use session::{PreparedExecutionResult, Session, SessionError, SessionMut};
110pub use timeout::TimeoutContext;
111pub use transaction::{
112    live_deferred_fk_violation_count, BeginTransactionExecutor, CommitExecutor,
113    ReleaseSavepointExecutor, RollbackExecutor, RollbackToSavepointExecutor, SavepointExecutor,
114};
115pub use trigger_ddl::TriggerExecutor;
116pub use trigger_execution::{TriggerFirer, TriggerOutcome};
117pub use truncate_table::TruncateTableExecutor;
118pub use type_ddl::TypeExecutor;
119pub use update::UpdateExecutor;
120pub use view_ddl::ViewExecutor;
121
122#[cfg(test)]
123mod tests;