ClickHouse SQL Parser Support in GSP¶
Explore the ClickHouse SQL Parser product page
ClickHouse is an open-source, column-oriented OLAP database designed for real-time analytical queries over very large datasets. Its SQL dialect extends standard SQL with ClickHouse-specific constructs such as table engines (for example, the MergeTree family), ARRAY JOIN, and FORMAT clauses.
General SQL Parser (GSP) parses ClickHouse SQL with a dedicated, hand-tuned grammar rather than a generic SQL grammar, so you get a full AST, offline syntax validation, SQL formatting, and column-level data lineage for ClickHouse statements. The parser is exercised by GSP's continuous unit-test suite and updated in the regular release cycle.
Syntax Coverage Corpus¶
GSP tests ClickHouse syntax against 156 documented constructs grouped into 33 categories, each cross-referenced to the documentation that defines it (114 distinct source pages).
Parse coverage¶
Measured against GSP Java 4.1.11 on 2026-08-10 (UTC) (artifact sha256 71895b6e5ab0). Each construct below carries the complete set of examples from the ClickHouse 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 | 78 of 156 (50%) | 504 of 704 (72%) |
| SELECT (queries) | 23 of 38 (61%) | 220 of 252 (87%) |
| DML (INSERT / UPDATE / DELETE / MERGE) | 10 of 14 (71%) | 39 of 46 (85%) |
| Stored procedures | 1 of 1 (100%) | 4 of 4 (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 156 constructs¶
| Construct | Category | Parses | Specified in |
|---|---|---|---|
ALTER DATABASE MODIFY COMMENT |
ALTER | all 2 | ClickHouse docs |
ALTER MASKING POLICY |
ALTER | 0 of 3 | ClickHouse docs |
ALTER NAMED COLLECTION |
ALTER | 0 of 2 | ClickHouse docs |
ALTER QUOTA |
ALTER | 0 of 2 | ClickHouse docs |
ALTER ROLE |
ALTER | 0 of 3 | ClickHouse docs |
ALTER ROW POLICY |
ALTER | 0 of 5 | ClickHouse docs |
ALTER SETTINGS PROFILE |
ALTER | 0 of 15 | ClickHouse docs |
ALTER TABLE ADD COLUMN |
ALTER | all 4 | ClickHouse docs |
ALTER TABLE ADD INDEX |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE ADD PROJECTION |
ALTER | 2 of 3 | ClickHouse docs |
ALTER TABLE APPLY DELETED MASK |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE APPLY PATCHES |
ALTER | all 3 | ClickHouse docs |
ALTER TABLE ATTACH PARTITION |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE CLEAR COLUMN |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE CLEAR IN PARTITION |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE COMMENT COLUMN |
ALTER | 0 of 1 | ClickHouse docs |
ALTER TABLE CONSTRAINT |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE DELETE |
ALTER | 2 of 3 | ClickHouse docs |
ALTER TABLE DETACH PARTITION |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE DROP COLUMN |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE DROP INDEX |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE DROP PARTITION |
ALTER | 1 of 2 | ClickHouse docs |
ALTER TABLE DROP PROJECTION |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE FETCH PARTITION |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE FORGET PARTITION |
ALTER | 0 of 1 | ClickHouse docs |
ALTER TABLE FREEZE PARTITION |
ALTER | all 3 | ClickHouse docs |
ALTER TABLE MATERIALIZE COLUMN |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE MATERIALIZE INDEX |
ALTER | all 3 | ClickHouse docs |
ALTER TABLE MATERIALIZE PROJECTION |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE MODIFY COLUMN |
ALTER | 4 of 5 | ClickHouse docs |
ALTER TABLE MODIFY COMMENT |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE MODIFY ORDER BY |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE MODIFY SAMPLE BY |
ALTER | 0 of 2 | ClickHouse docs |
ALTER TABLE MODIFY SETTING |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE MOVE PARTITION |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE MOVE TO DISK/VOLUME |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE RENAME COLUMN |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE REPLACE PARTITION |
ALTER | all 2 | ClickHouse docs |
ALTER TABLE STATISTICS |
ALTER | 0 of 1 | ClickHouse docs |
ALTER TABLE TTL |
ALTER | all 1 | ClickHouse docs |
ALTER TABLE UPDATE |
ALTER | 2 of 3 | ClickHouse docs |
ALTER USER |
ALTER | 0 of 7 | ClickHouse docs |
ALTER VIEW |
ALTER | all 5 | ClickHouse docs |
ATTACH |
ATTACH | all 3 | ClickHouse docs |
CHECK DATABASE |
CHECK | 0 of 2 | ClickHouse docs |
CHECK GRANT |
CHECK | 0 of 2 | ClickHouse docs |
CHECK TABLE |
CHECK | 0 of 5 | ClickHouse docs |
CREATE DATABASE |
CREATE | 0 of 2 | ClickHouse docs |
CREATE DICTIONARY |
CREATE | 0 of 2 | ClickHouse docs |
CREATE DICTIONARY LAYOUT |
CREATE | 0 of 3 | ClickHouse docs |
CREATE DICTIONARY LIFETIME |
CREATE | 0 of 2 | ClickHouse docs |
CREATE DICTIONARY SOURCE |
CREATE | 0 of 3 | ClickHouse docs |
CREATE FUNCTION |
CREATE | all 4 | ClickHouse docs |
CREATE HYPOTHETICAL INDEX |
CREATE | 0 of 1 | ClickHouse docs |
CREATE MASKING POLICY |
CREATE | 0 of 3 | ClickHouse docs |
CREATE MATERIALIZED VIEW |
CREATE | all 3 | ClickHouse docs |
CREATE NAMED COLLECTION |
CREATE | 0 of 1 | ClickHouse docs |
CREATE QUOTA |
CREATE | 0 of 4 | ClickHouse docs |
CREATE ROLE |
CREATE | 0 of 1 | ClickHouse docs |
CREATE ROW POLICY |
CREATE | 0 of 11 | ClickHouse docs |
CREATE SETTINGS PROFILE |
CREATE | 0 of 1 | ClickHouse docs |
CREATE TABLE |
CREATE | 2 of 3 | ClickHouse docs |
CREATE TABLE CODEC |
CREATE | all 4 | ClickHouse docs |
CREATE TEMPORARY TABLE |
CREATE | all 2 | ClickHouse docs |
CREATE USER |
CREATE | 0 of 12 | ClickHouse docs |
CREATE VIEW |
CREATE | all 3 | ClickHouse docs |
CREATE WINDOW VIEW |
CREATE | all 7 | ClickHouse docs |
REPLACE TABLE |
CREATE | 2 of 4 | ClickHouse docs |
AggregateFunction |
DATA TYPES | all 2 | ClickHouse docs |
Array |
DATA TYPES | 9 of 10 | ClickHouse docs |
DateTime64 |
DATA TYPES | all 7 | ClickHouse docs |
Decimal |
DATA TYPES | all 4 | ClickHouse docs |
Enum |
DATA TYPES | 10 of 12 | ClickHouse docs |
Geo |
DATA TYPES | all 24 | ClickHouse docs |
Interval |
DATA TYPES | 5 of 7 | ClickHouse docs |
LowCardinality |
DATA TYPES | all 1 | ClickHouse docs |
Map |
DATA TYPES | 10 of 13 | ClickHouse docs |
Nested |
DATA TYPES | 13 of 15 | ClickHouse docs |
Nullable |
DATA TYPES | 5 of 6 | ClickHouse docs |
Tuple |
DATA TYPES | 12 of 14 | ClickHouse docs |
UUID |
DATA TYPES | all 8 | ClickHouse docs |
ON CLUSTER (distributed DDL) |
DDL | all 1 | ClickHouse docs |
DELETE (lightweight) |
DELETE | all 1 | ClickHouse docs |
DESCRIBE TABLE |
DESCRIBE | 1 of 4 | ClickHouse docs |
DETACH |
DETACH | all 1 | ClickHouse docs |
DROP |
DROP | 1 of 2 | ClickHouse docs |
EXCHANGE TABLES |
EXCHANGE | 0 of 1 | ClickHouse docs |
EXECUTE AS |
EXECUTE | 0 of 2 | ClickHouse docs |
EXISTS |
EXISTS | 0 of 4 | ClickHouse docs |
EXPLAIN |
EXPLAIN | 18 of 20 | ClickHouse docs |
GRANT |
GRANT | all 11 | ClickHouse docs |
INSERT INTO FORMAT |
INSERT | 3 of 4 | ClickHouse docs |
INSERT INTO SELECT |
INSERT | all 1 | ClickHouse docs |
INSERT INTO VALUES |
INSERT | 2 of 5 | ClickHouse docs |
KILL MUTATION |
KILL | all 2 | ClickHouse docs |
KILL QUERY |
KILL | all 2 | ClickHouse docs |
MOVE |
MOVE | 0 of 2 | ClickHouse docs |
Operators |
OPERATORS | 30 of 34 | ClickHouse docs |
OPTIMIZE TABLE |
OPTIMIZE | all 15 | ClickHouse docs |
PARALLEL WITH |
PARALLEL | 1 of 2 | ClickHouse docs |
RENAME |
RENAME | 1 of 2 | ClickHouse docs |
REVOKE |
REVOKE | all 2 | ClickHouse docs |
APPLY modifier |
SELECT | all 1 | ClickHouse docs |
ARRAY JOIN |
SELECT | all 12 | ClickHouse docs |
DISTINCT |
SELECT | all 4 | ClickHouse docs |
EXCEPT |
SELECT | 3 of 4 | ClickHouse docs |
EXCEPT modifier |
SELECT | all 1 | ClickHouse docs |
FORMAT clause |
SELECT | all 3 | ClickHouse docs |
FROM |
SELECT | 4 of 5 | ClickHouse docs |
GROUP BY |
SELECT | 7 of 10 | ClickHouse docs |
HAVING |
SELECT | all 1 | ClickHouse docs |
IN operators |
SELECT | all 12 | ClickHouse docs |
INTERSECT |
SELECT | 2 of 3 | ClickHouse docs |
INTO OUTFILE |
SELECT | all 3 | ClickHouse docs |
JOIN |
SELECT | 10 of 12 | ClickHouse docs |
LIMIT |
SELECT | 3 of 4 | ClickHouse docs |
LIMIT BY |
SELECT | all 9 | ClickHouse docs |
OFFSET / FETCH |
SELECT | 1 of 4 | ClickHouse docs |
ORDER BY |
SELECT | 6 of 11 | ClickHouse docs |
PREWHERE |
SELECT | all 2 | ClickHouse docs |
QUALIFY |
SELECT | all 1 | ClickHouse docs |
REPLACE modifier |
SELECT | all 1 | ClickHouse docs |
SAMPLE |
SELECT | all 4 | ClickHouse docs |
SELECT |
SELECT | 7 of 9 | ClickHouse docs |
SELECT ALL |
SELECT | all 2 | ClickHouse docs |
UNION |
SELECT | all 1 | ClickHouse docs |
WHERE |
SELECT | all 29 | ClickHouse docs |
WITH (CTE) |
SELECT | 15 of 18 | ClickHouse docs |
SET |
SET | 5 of 9 | ClickHouse docs |
SET ROLE |
SET | 0 of 3 | ClickHouse docs |
SHOW CLUSTERS |
SHOW | 0 of 3 | ClickHouse docs |
SHOW COLUMNS |
SHOW | 2 of 3 | ClickHouse docs |
SHOW CREATE |
SHOW | 3 of 5 | ClickHouse docs |
SHOW DATABASES |
SHOW | all 4 | ClickHouse docs |
SHOW DICTIONARIES |
SHOW | 0 of 1 | ClickHouse docs |
SHOW ENGINES / FUNCTIONS / MERGES |
SHOW | 0 of 3 | ClickHouse docs |
SHOW GRANTS |
SHOW | 0 of 3 | ClickHouse docs |
SHOW INDEX |
SHOW | 0 of 3 | ClickHouse docs |
SHOW PROCESSLIST |
SHOW | all 2 | ClickHouse docs |
SHOW SETTINGS |
SHOW | 0 of 3 | ClickHouse docs |
SHOW TABLES |
SHOW | all 4 | ClickHouse docs |
SHOW USERS / ROLES / QUOTAS |
SHOW | 0 of 3 | ClickHouse docs |
Identifiers and literals |
SYNTAX | 0 of 1 | ClickHouse docs |
SYSTEM DISTRIBUTED SENDS |
SYSTEM | all 3 | ClickHouse docs |
SYSTEM DROP CACHE |
SYSTEM | all 5 | ClickHouse docs |
SYSTEM FLUSH |
SYSTEM | all 1 | ClickHouse docs |
SYSTEM RELOAD |
SYSTEM | all 5 | ClickHouse docs |
SYSTEM REPLICA |
SYSTEM | all 9 | ClickHouse docs |
SYSTEM SHUTDOWN / KILL |
SYSTEM | all 2 | ClickHouse docs |
SYSTEM START/STOP MERGES |
SYSTEM | all 5 | ClickHouse docs |
SYSTEM UNLOAD PRIMARY KEY |
SYSTEM | all 3 | ClickHouse docs |
TRUNCATE |
TRUNCATE | 1 of 4 | ClickHouse docs |
UNDROP TABLE |
UNDROP | 0 of 1 | ClickHouse docs |
UPDATE (lightweight) |
UPDATE | all 2 | ClickHouse docs |
USE |
USE | 1 of 2 | ClickHouse docs |
WATCH |
WATCH | all 4 | ClickHouse docs |
Keyword Compatibility¶
For details on which ClickHouse keywords can be used as unquoted identifiers, see the ClickHouse Keyword Compatibility Reference.