Module schema

Module schema 

Source
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 TABLE with columns, types, constraints
  • CREATE INDEX with 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§

ColumnInfo
Column metadata extracted from CREATE TABLE.
IndexInfo
Index metadata extracted from CREATE INDEX or table constraints.
Schema
Parsed database schema containing all tables and their metadata.
TableInfo
Complete information about a database table.