MySQL SQL Parser Support in GSP¶
Explore the MySQL SQL Parser product page
This page documents the SQL syntax support for MySQL in the General SQL Parser.
Syntax Coverage Corpus¶
GSP tests MySQL syntax against 135 documented constructs grouped into 8 categories, each cross-referenced to the documentation that defines it (85 distinct source pages).
Parse coverage¶
Measured against GSP Java 4.2.8 on 2026-08-31 (UTC) (artifact sha256 1117856ef134). Each construct below carries the complete set of examples from the MySQL documentation; a construct counts as fully covered only when every one of its examples parses. Percentages are pass rates over this documented-example corpus — not a percentage of the entire SQL dialect.
| Constructs fully parsed | Individual statements parsed | |
|---|---|---|
| All constructs | 135 of 135 (100%) | 242 of 242 (100%) |
| SELECT (queries) | 40 of 40 (100%) | 90 of 90 (100%) |
| DML (INSERT / UPDATE / DELETE / MERGE) | 8 of 8 (100%) | 16 of 16 (100%) |
| Stored procedures | 21 of 21 (100%) | 22 of 22 (100%) |
Statements are split using the parser's own statement splitter, so multi-statement examples and procedure bodies are counted correctly. The SELECT, DML and stored-procedure rows classify each statement by its parsed statement type: a construct is counted in a row when its examples contain at least one statement of that class, and is fully parsed when all of them parse. Stored procedures covers CREATE PROCEDURE / FUNCTION / PACKAGE / TRIGGER definitions and anonymous blocks.
Machine-readable: dialect data (JSON) · all-dialect matrix · coverage matrix overview
All 135 constructs¶
| Construct | Category | Parses | Specified in |
|---|---|---|---|
SELECT |
all 1 | MySQL docs | |
SET |
all 2 | MySQL docs | |
UPDATE |
all 2 | MySQL docs | |
ALTER DATABASE |
ALTER | all 1 | MySQL docs |
ALTER EVENT |
ALTER | all 3 | MySQL docs |
ALTER INSTANCE |
ALTER | all 2 | MySQL docs |
ALTER LOGFILE GROUP |
ALTER | all 1 | MySQL docs |
ALTER SERVER |
ALTER | all 1 | MySQL docs |
ALTER TABLE |
ALTER | all 4 | MySQL docs |
ALTER TABLESPACE |
ALTER | all 1 | MySQL docs |
ALTER USER |
ALTER | all 2 | MySQL docs |
ALTER VIEW |
ALTER | all 1 | third-party reference |
CREATE FUNCTION |
ALTER | all 2 | MySQL docs |
CREATE DATABASE |
CREATE | all 2 | MySQL docs |
CREATE EVENT |
CREATE | all 1 | MySQL docs |
CREATE FUNCTION |
CREATE | all 1 | MySQL docs |
CREATE FUNCTION IF |
CREATE | all 1 | MySQL docs |
CREATE INDEX |
CREATE | all 2 | MySQL docs |
CREATE LOGFILE GROUP |
CREATE | all 2 | MySQL docs |
CREATE PROCEDURE |
CREATE | all 1 | MySQL docs |
CREATE PROCEDURE CASE |
CREATE | all 1 | MySQL docs |
CREATE PROCEDURE LOOP |
CREATE | all 1 | MySQL docs |
CREATE PROCEDURE REPEAT |
CREATE | all 1 | MySQL docs |
CREATE PROCEDURE RESIGNAL |
CREATE | all 1 | MySQL docs |
CREATE PROCEDURE SIGNAL |
CREATE | all 1 | MySQL docs |
CREATE PROCEDURE WHILE |
CREATE | all 1 | MySQL docs |
CREATE ROLE |
CREATE | all 2 | MySQL docs |
CREATE SCHEMA |
CREATE | all 1 | MySQL docs |
CREATE SERVER |
CREATE | all 1 | MySQL docs |
CREATE SPATIAL REFERENCE SYSTEM |
CREATE | all 1 | MySQL docs |
CREATE TABLE |
CREATE | all 2 | MySQL docs |
CREATE TABLE LIKE |
CREATE | all 1 | MySQL docs |
CREATE TABLE SELECT |
CREATE | all 1 | MySQL docs |
CREATE TABLE AND GENERATED COLUMNS |
CREATE | all 1 | MySQL docs |
CREATE TABLE INDEX |
CREATE | all 4 | MySQL docs |
CREATE TABLE SUBQUERY |
CREATE | all 8 | MySQL docs |
CREATE TABLESPACE |
CREATE | all 4 | MySQL docs |
CREATE TRIGGER |
CREATE | all 1 | MySQL docs |
CREATE USER |
CREATE | all 3 | MySQL docs |
CREATE VIEW |
CREATE | all 1 | MySQL docs |
CALL |
DDL | all 1 | MySQL docs |
CASE |
DDL | all 1 | MySQL docs |
COMPARISON |
DDL | all 2 | MySQL docs |
COMPARISON FUNCTIONS AND OPERATORS |
DDL | all 5 | MySQL docs |
CORRELATED SUBQUERIES |
DDL | all 2 | MySQL docs |
DEALLOCATE PREPARE |
DDL | all 1 | MySQL docs |
DECLARE HANDLER |
DDL | all 1 | MySQL docs |
DECLARE CONDITION |
DDL | all 2 | MySQL docs |
DELETE |
DDL | all 3 | MySQL docs |
DERIVED TABLES |
DDL | all 1 | MySQL docs |
DO |
DDL | all 1 | MySQL docs |
EVENT |
DDL | all 5 | MySQL docs |
EXECUTE |
DDL | all 1 | MySQL docs |
EXPLAIN |
DDL | all 2 | MySQL docs |
FLUSH TABLES |
DDL | all 1 | MySQL docs |
GET DIAGNOSTICS |
DDL | all 1 | MySQL docs |
GRANT |
DDL | all 1 | MySQL docs |
HANDLER |
DDL | all 1 | MySQL docs |
IF |
DDL | all 1 | MySQL docs |
IMPORT |
DDL | all 1 | MySQL docs |
IMPORT TABLE |
DDL | all 1 | MySQL docs |
INSERT |
DDL | all 2 | MySQL docs |
INSERT SELECT |
DDL | all 1 | MySQL docs |
ITERATE |
DDL | all 1 | MySQL docs |
LATERAL DERIVED TABLES |
DDL | all 2 | MySQL docs |
LEAVE |
DDL | all 1 | MySQL docs |
LOAD DATA |
DDL | all 2 | MySQL docs |
LOAD XML |
DDL | all 2 | MySQL docs |
LOOP |
DDL | all 1 | MySQL docs |
PREPARED |
DDL | all 2 | MySQL docs |
PREPARED |
DDL | all 1 | MySQL docs |
PTIMIZING SUBQUERIES |
DDL | all 3 | MySQL docs |
RECURSIVE COMMON TABLE EXPRESSIONS |
DDL | all 1 | MySQL docs |
RENAME TABLE |
DDL | all 3 | MySQL docs |
RENAME USER |
DDL | all 1 | MySQL docs |
REPEAT |
DDL | all 1 | MySQL docs |
REPLACE |
DDL | all 2 | MySQL docs |
RESIGNAL |
DDL | all 1 | MySQL docs |
RESTRICTIONS ON SUBQUERIES |
DDL | all 1 | MySQL docs |
RETURN |
DDL | all 1 | MySQL docs |
REVOKE |
DDL | all 3 | MySQL docs |
ROW SUBQUERIES |
DDL | all 2 | MySQL docs |
SCOPE RULES FOR HANDLERS |
DDL | all 1 | MySQL docs |
SHOW COLUMNS |
DDL | all 2 | MySQL docs |
SHOW GLOBAL STATUS |
DDL | all 2 | MySQL docs |
SIGNAL |
DDL | all 1 | MySQL docs |
SUBQUERIES WITH ALL |
DDL | all 4 | MySQL docs |
SUBQUERIES WITH EXISTS OR NOT EXISTS |
DDL | all 4 | MySQL docs |
SUBQUERY |
DDL | all 8 | MySQL docs |
TRUNCATE TABLE |
DDL | all 1 | MySQL docs |
UNION |
DDL | all 6 | MySQL docs |
VALUES |
DDL | all 2 | MySQL docs |
WHILE |
DDL | all 1 | MySQL docs |
WITH |
DDL | all 4 | MySQL docs |
DROP DATABASE |
DROP | all 1 | MySQL docs |
DROP EVENT |
DROP | all 1 | MySQL docs |
DROP INDEX |
DROP | all 1 | MySQL docs |
DROP LOGFILE GROUP |
DROP | all 1 | MySQL docs |
DROP ROLE |
DROP | all 2 | MySQL docs |
DROP SERVER |
DROP | all 1 | MySQL docs |
DROP SPATIAL REFERENCE SYSTEM |
DROP | all 2 | MySQL docs |
DROP TABLE |
DROP | all 1 | MySQL docs |
DROP TABLESPACE |
DROP | all 2 | MySQL docs |
DROP TRIGGER |
DROP | all 1 | MySQL docs |
DROP USER |
DROP | all 1 | MySQL docs |
DROP VIEW |
DROP | all 1 | MySQL docs |
SELECT COMPARISON FUNCTIONS AND OPERATORS |
SELECT | all 5 | MySQL docs |
SELECT COMPARISON STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT CONCAT STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT CORRELATED SUBQUERIES STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT DERIVED TABLES STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT FOR UPDATE STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT FROM DUAL STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT FROM GROUP BY HAVING STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT FROM GROUP BY STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT FROM HAVING STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT FROM WHERE STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT GROUP BY STATEMENT |
Select | all 1 | MySQL docs |
SELECT INNER JOIN STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT INTO STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT JOIN STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT LEFT JOIN STATEMENT |
SELECT | all 4 | MySQL docs |
SELECT LEFT OUTER JOIN STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT LIMIT STATEMENT |
SELECT | all 3 | MySQL docs |
SELECT PTIMIZING SUBQUERIES STATEMENT |
Select | all 3 | MySQL docs |
SELECT RESTRICTIONS ON SUBQUERIES STATEMENT |
SELECT | all 1 | MySQL docs |
SELECT ROW SUBQUERIES STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT SELECT LATERAL DERIVED TABLES STATEMENT |
SELECT | all 2 | MySQL docs |
SELECT UNION STATEMENT |
SELECT | all 6 | MySQL docs |
SET CHARSET |
SET | all 1 | MySQL docs |
SET GLOBAL |
SET | all 1 | MySQL docs |
SET NAMES |
SET | all 1 | MySQL docs |
SET PASSWORD |
SET | all 1 | MySQL docs |
UPDATE ORDER BY |
UPDATE | all 1 | MySQL docs |
UPDATE SET |
UPDATE | all 1 | MySQL docs |
Key Features Supported¶
- Standard SQL operations (SELECT, INSERT, UPDATE, DELETE)
- MySQL-specific data types and functions
- Stored procedures and functions
- Triggers and events
- Partitioning features
- Full-text indexing and search