Skip to main content

Crate alopex_sql

Crate alopex_sql 

Source
Expand description

SQL parser and planning components for the Alopex DB SQL dialect.

This crate provides:

  • Parser: SQL parsing into an AST via the Nim FFI parser
  • 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::PragmaValue;
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 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::PlannedStatement;
pub use planner::Planner;
pub use planner::PlannerError;
pub use planner::PlanningDiagnostic;
pub use planner::PlanningDiagnosticSeverity;
pub use planner::ProjectedColumn;
pub use planner::Projection;
pub use planner::ResolvedColumn;
pub use planner::ResolvedType;
pub use planner::RoutingInput;
pub use planner::SortExpr;
pub use planner::TableReference;
pub use planner::TableReferenceAccess;
pub use planner::TableReferenceExtractor;
pub use planner::TableReferenceSource;
pub use planner::TypeChecker;
pub use planner::TypedAssignment;
pub use planner::TypedExpr;
pub use planner::TypedExprKind;
pub use planner::plan_sql_for_routing;
pub use planner::plan_statement_for_routing;
pub use storage::IndexScanIterator;
pub use storage::IndexStorage;
pub use storage::KeyEncoder;
pub use storage::RangeBoundedScanIterator;
pub use storage::RangeReadSnapshot;
pub use storage::RowCodec;
pub use storage::SqlTransaction;
pub use storage::SqlValue;
pub use storage::StorageError;
pub use storage::StorageRangeConstraint;
pub use storage::StorageRangeConstraintError;
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
distributed_read
Closed SQL catalog used before distributed-read routing.
error
executor
SQL Executor module for Alopex SQL.
parser
planner
Query planning module for the Alopex SQL dialect.
scalar
Shared scalar-function signatures.
storage
unified_error
SQL 実行パイプライン(Parse/Plan/Execute)を横断する統一エラー型。

Type Aliases§

SqlResult
ExecutionResult の公開 API 名。