You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c1e2d17
Browse filesBrowse the repository at this point in the historyBrowse files
feat: parse MySQL table DDL, JSON_TABLE and procedure bodies
Replace the remaining classification-only table and routine witnesses with
bounded native grammar and traversable ASTs. Add a shared MySQL field-type
parser for table columns, JSON_TABLE columns and procedure parameters,
including native modifiers, character sets, numeric token bounds and the
9.7 VECTOR type. Unknown types and unsupported clause tails remain errors.
Parse CREATE [TEMPORARY] TABLE [IF NOT EXISTS] definitions, common column
attributes, generated/default expressions, keys, CHECK/foreign constraints
and table options. Parse ALTER ADD/DROP/MODIFY/CHANGE/RENAME actions and
supported algorithm/lock options. Keep NOW() adjacent during emission and
reject wildcard/DEFAULT operands where native value syntax excludes them.
Represent JSON_TABLE documents, paths, typed/ordinality/EXISTS columns,
nested COLUMNS and ON EMPTY/ON ERROR responses separately. Preserve native
literal spelling, require table aliases, and bound nested column lists.
Parse typed CREATE PROCEDURE parameters, SQL characteristics and supported
single-statement or nested BEGIN/END bodies. Reuse strict query/DML grammar,
validate SET operands, and use routine grammar to find supported procedure
boundaries in parse_all without confusing CASE END or quoted semicolons.
Retain optimizer-hint comments immediately after hintable statement
keywords. Preserve exact hint contents without interpreting their language;
ignore comments after qualified keyword identifiers and REPLACE functions
as native MySQL does. Keep new syntax out of unsupported local execution
and conservative parameterization, including direct UPDATE/DELETE plans.
Append enum kinds and retain the 48-byte AST layout.
Add positive, malformed-input, AST ownership/mutation, stable-emission,
batch-boundary, nesting-limit and planner regressions. Independent review
identified and verified fixes for NOW spacing, qualified hint comments,
procedure SET stars/collation names and DDL value-expression validation.
Validation: forced full build and make test pass 1,669 tests with 37
external-database skips; 153 focused MySQL tests pass ASan/UBSan with leak
detection. Seven parser/emitter benchmark smoke cases pass; benchmark code
and results are deliberately excluded. This implements bounded feature
subsets, not complete MySQL DDL or stored-program grammar.
0 commit comments