Releases: yext/sqlparser
Releases · yext/sqlparser
v0.1.2
Full Changelog: v0.1.1...v0.1.2
MySQL 8.0 Grammar Enhancements
This release advances the parser from its Vitess-oriented baseline to broader MySQL 8.0 grammar coverage.
Highlights
The following list captures coverage improvements between this release and its upstream (diff):
- Added support for Common Table Expressions, including
WITHandWITH RECURSIVEacross query and DML forms. - Added
INTERSECTandEXCEPTset operations, including precedence and parenthesized set expressions. - Added window function grammar support, including
OVER (...), namedWINDOWdefinitions, and frame clauses (ROWS/RANGE). - Added modern row-locking forms:
FOR SHARE,NOWAIT, andSKIP LOCKED. - Added
JSON_TABLEsupport, including nested paths,FOR ORDINALITY, andEXISTS PATH. - Added MySQL 8.0 predicate/function support for
MEMBER OF,REGEXP_LIKE,REGEXP_INSTR,REGEXP_SUBSTR, andREGEXP_REPLACE. - Added table value constructor support via
VALUES ROW(...). - Added support for
CREATE TEMPORARY TABLE, includingIF NOT EXISTSand... LIKE ...forms. - Added support for
CREATE DATABASE/CREATE SCHEMAwith database option parsing (including charset/collation forms). - Added trigger statement coverage for
CREATE TRIGGERandDROP TRIGGER(includingIF EXISTS). - Added MySQL table-locking statements:
LOCK TABLESandUNLOCK TABLES(includingREAD LOCAL,LOW_PRIORITY WRITE, and aliases). - Added prepared statement grammar support for
PREPAREandEXECUTE ... USING. - Added user-variable SQL forms:
SELECT ... INTO @varand assignment expressions using:=. - Added privilege and account-management subset support for
GRANT,REVOKE,DROP USER, andDROP ROLE. - Improved
SHOWstatement coverage with MySQL-orientedSHOWvariants and removal of Vitess-specificSHOWforms. - Added
REPAIR TABLEandOPTIMIZE TABLEstatement support. - Added fractional-precision temporal function/default coverage (for example
CURRENT_TIMESTAMP(6),LOCALTIME(6), and related forms). - Expanded
CREATE TABLEoption parsing to cover additional MySQL forms includingAVG_ROW_LENGTH,CHECKSUM,COMPRESSION,DELAY_KEY_WRITE,ENCRYPTION,INSERT_METHOD,MAX_ROWS,MIN_ROWS,PACK_KEYS, andTABLESPACE ... [STORAGE ...]. - Expanded charset/collation coverage across DDL, including table and column
CHARACTER SET/COLLATEforms. - Added explicit
FULLTEXTandSPATIALindex definition support across table/index DDL forms. - Added online index DDL option coverage for
CREATE INDEXandDROP INDEXstatements withALGORITHM/LOCK. - Expanded partitioning support for
CREATE TABLEandALTER TABLE, including:PARTITION BY RANGE,RANGE COLUMNS,HASH, andLINEAR HASH- Partition maintenance operations (
ADD,DROP,DISCARD/IMPORT TABLESPACE,TRUNCATE,COALESCE,REORGANIZE,EXCHANGE ... WITH|WITHOUT VALIDATION,ANALYZE,CHECK,OPTIMIZE,REBUILD,REPAIR,REMOVE PARTITIONING)
- Expanded DDL coverage for MySQL 8.0 features, including:
- Generated columns (
GENERATED ALWAYS AS,VIRTUAL/STORED) CHECKconstraints- Foreign keys and referential actions
- Column visibility (
VISIBLE/INVISIBLE) RENAME COLUMN- Index key-part direction (
ASC/DESC) - Online DDL options (
ALGORITHM,LOCK) - Additional alter-table option coverage such as
ENGINE=...andCONVERT TO CHARACTER SET ... [COLLATE ...] - Table options such as
ROW_FORMAT,DATA DIRECTORY,INDEX DIRECTORY, and spatialSRID
- Generated columns (
Scope Notes
JSON_TABLEcurrently excludesON EMPTY/ON ERRORclauses.- Privilege grammar support is intentionally a focused MySQL 8.0 subset, not full privilege/role syntax parity.
v0.1.1
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Full Changelog: v0.0.1...v0.1.0
v0.0.1
This tag introduced Go module support to this fork. No functional changes are made.