Expand description
SQL parser and planning components for the Alopex DB SQL dialect.
This crate provides:
- Tokenizer: Lexical analysis of SQL strings
- Parser: SQL parsing into an AST
- Catalog: Table and index metadata management
- Planner: AST to logical plan conversion with type checking
§Quick Start
use alopex_sql::{Parser, AlopexDialect};
use alopex_sql::catalog::MemoryCatalog;
use alopex_sql::planner::Planner;
// Parse SQL using the convenience method
let sql = "CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT)";
let dialect = AlopexDialect::default();
let stmts = Parser::parse_sql(&dialect, sql).unwrap();
let stmt = &stmts[0];
// Plan with catalog
let catalog = MemoryCatalog::new();
let planner = Planner::new(&catalog);
let plan = planner.plan(stmt).unwrap();Re-exports§
pub use ast::Statement;pub use ast::StatementKind;pub use ast::span::Location;pub use ast::span::Span;pub use ast::span::Spanned;pub use dialect::AlopexDialect;pub use dialect::Dialect;pub use error::ParserError;pub use error::Result;pub use parser::Parser;pub use tokenizer::Tokenizer;pub use tokenizer::keyword::Keyword;pub use tokenizer::token::Token;pub use tokenizer::token::TokenWithSpan;pub use tokenizer::token::Word;pub use unified_error::SqlError;pub use catalog::persistent::CatalogOverlay;pub use catalog::persistent::DataSourceFormat;pub use catalog::persistent::TableType;pub use catalog::Catalog;pub use catalog::ColumnMetadata;pub use catalog::Compression;pub use catalog::IndexMetadata;pub use catalog::MemoryCatalog;pub use catalog::RowIdMode;pub use catalog::StorageOptions;pub use catalog::StorageType;pub use catalog::TableMetadata;pub use planner::LogicalPlan;pub use planner::NameResolver;pub use planner::Planner;pub use planner::PlannerError;pub use planner::ProjectedColumn;pub use planner::Projection;pub use planner::ResolvedColumn;pub use planner::ResolvedType;pub use planner::SortExpr;pub use planner::TypeChecker;pub use planner::TypedAssignment;pub use planner::TypedExpr;pub use planner::TypedExprKind;pub use storage::IndexScanIterator;pub use storage::IndexStorage;pub use storage::KeyEncoder;pub use storage::RowCodec;pub use storage::SqlTransaction;pub use storage::SqlValue;pub use storage::StorageError;pub use storage::TableScanIterator;pub use storage::TableStorage;pub use storage::TxnBridge;pub use storage::TxnContext;pub use executor::ColumnInfo;pub use executor::ConstraintViolation;pub use executor::EvaluationError;pub use executor::ExecutionResult;pub use executor::Executor;pub use executor::ExecutorError;pub use executor::QueryResult;pub use executor::Row;pub use ast::ddl::*;pub use ast::dml::*;pub use ast::expr::*;
Modules§
- ast
- catalog
- Catalog module for the Alopex SQL dialect.
- columnar
- dialect
- error
- executor
- SQL Executor module for Alopex SQL.
- parser
- planner
- Query planning module for the Alopex SQL dialect.
- storage
- tokenizer
- unified_
error - SQL 実行パイプライン(Parse/Plan/Execute)を横断する統一エラー型。
Type Aliases§
- SqlResult
ExecutionResultの公開 API 名。