Skip to content

Commit c46bd90

Browse files
feat(codegen): parse DDL with sqlparser, drop hand-rolled scanner (#38) (#123)
Replace src/codegen/parser.rs's uppercase-and-split scanner with the sqlparser crate (0.50). parse_sql_schema now walks Statement::CreateTable, trying PostgreSQL → SQLite → generic dialects. Public IR (ParsedSchema/TableDef/ColumnDef) and the parse_sql_schema / parse_schema_file signatures are unchanged, so overlay/query consumers are unaffected. split_respecting_parens, parse_create_table and parse_column_def are deleted. Fixes the documented misclassifications: schema-qualified names (bare table identifier extracted), quoted identifiers with whitespace, column- and table-level CHECK clauses (ignored, not split into bogus columns), GENERATED columns, and semicolons inside comments. Invalid SQL is now a hard error instead of a silent empty schema. 6 original parser tests retained + 6 new acceptance tests (schema-qualified, quoted-whitespace, CHECK, GENERATED, semicolon-in-comment, invalid-SQL). Suite: 113 lib + 9 integration green. Closes #38. Co-authored-by: hyperpolymath <hyperpolymath@users.noreply.github.com> Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 6c7faf1 commit c46bd90

0 file changed

File tree

    0 commit comments

    Comments
     (0)