Expand description
Database schema parsing and representation.
This module parses SQL DDL statements (CREATE TABLE, CREATE INDEX) into a structured representation that can be used for schema-aware query analysis.
§Supported Statements
CREATE TABLEwith columns, types, constraintsCREATE INDEXwith column lists and uniqueness- Primary key constraints (inline and table-level)
- NOT NULL constraints
§Example
ⓘ
let sql = r#"
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255) NOT NULL
);
CREATE INDEX idx_email ON users(email);
"#;
let schema = Schema::parse(sql)?;
// Get table info
if let Some(users) = schema.tables.get("users") {
println!("Columns: {:?}", users.columns);
println!("Indexes: {:?}", users.indexes);
}
// Generate summary for LLM
let summary = schema.to_summary();Structs§
- Column
Info - Column metadata extracted from CREATE TABLE.
- Index
Info - Index metadata extracted from CREATE INDEX or table constraints.
- Schema
- Parsed database schema containing all tables and their metadata.
- Table
Info - Complete information about a database table.