Crate alopex_sql

Crate alopex_sql 

Source
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 名。