Skip to content

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.2.6 on 2026-08-18 (UTC) (artifact sha256 44c4c247d5ee). 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 156 of 156 (100%) 717 of 717 (100%)
SELECT (queries) 39 of 39 (100%) 258 of 258 (100%)
DML (INSERT / UPDATE / DELETE / MERGE) 15 of 15 (100%) 47 of 47 (100%)
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 all 3 ClickHouse docs
ALTER NAMED COLLECTION ALTER all 2 ClickHouse docs
ALTER QUOTA ALTER all 2 ClickHouse docs
ALTER ROLE ALTER all 3 ClickHouse docs
ALTER ROW POLICY ALTER all 5 ClickHouse docs
ALTER SETTINGS PROFILE ALTER all 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 all 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 all 1 ClickHouse docs
ALTER TABLE CONSTRAINT ALTER all 2 ClickHouse docs
ALTER TABLE DELETE ALTER all 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 all 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 all 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 all 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 all 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 all 1 ClickHouse docs
ALTER TABLE TTL ALTER all 1 ClickHouse docs
ALTER TABLE UPDATE ALTER all 3 ClickHouse docs
ALTER USER ALTER all 7 ClickHouse docs
ALTER VIEW ALTER all 5 ClickHouse docs
ATTACH ATTACH all 3 ClickHouse docs
CHECK DATABASE CHECK all 2 ClickHouse docs
CHECK GRANT CHECK all 2 ClickHouse docs
CHECK TABLE CHECK all 5 ClickHouse docs
CREATE DATABASE CREATE all 2 ClickHouse docs
CREATE DICTIONARY CREATE all 2 ClickHouse docs
CREATE DICTIONARY LAYOUT CREATE all 3 ClickHouse docs
CREATE DICTIONARY LIFETIME CREATE all 2 ClickHouse docs
CREATE DICTIONARY SOURCE CREATE all 3 ClickHouse docs
CREATE FUNCTION CREATE all 4 ClickHouse docs
CREATE HYPOTHETICAL INDEX CREATE all 1 ClickHouse docs
CREATE MASKING POLICY CREATE all 3 ClickHouse docs
CREATE MATERIALIZED VIEW CREATE all 3 ClickHouse docs
CREATE NAMED COLLECTION CREATE all 1 ClickHouse docs
CREATE QUOTA CREATE all 4 ClickHouse docs
CREATE ROLE CREATE all 1 ClickHouse docs
CREATE ROW POLICY CREATE all 11 ClickHouse docs
CREATE SETTINGS PROFILE CREATE all 1 ClickHouse docs
CREATE TABLE CREATE all 3 ClickHouse docs
CREATE TABLE CODEC CREATE all 4 ClickHouse docs
CREATE TEMPORARY TABLE CREATE all 2 ClickHouse docs
CREATE USER CREATE all 12 ClickHouse docs
CREATE VIEW CREATE all 3 ClickHouse docs
CREATE WINDOW VIEW CREATE all 7 ClickHouse docs
REPLACE TABLE CREATE all 4 ClickHouse docs
AggregateFunction DATA TYPES all 2 ClickHouse docs
Array DATA TYPES all 10 ClickHouse docs
DateTime64 DATA TYPES all 7 ClickHouse docs
Decimal DATA TYPES all 4 ClickHouse docs
Enum DATA TYPES all 12 ClickHouse docs
Geo DATA TYPES all 24 ClickHouse docs
Interval DATA TYPES all 7 ClickHouse docs
LowCardinality DATA TYPES all 1 ClickHouse docs
Map DATA TYPES all 13 ClickHouse docs
Nested DATA TYPES all 15 ClickHouse docs
Nullable DATA TYPES all 6 ClickHouse docs
Tuple DATA TYPES all 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 all 4 ClickHouse docs
DETACH DETACH all 1 ClickHouse docs
DROP DROP all 2 ClickHouse docs
EXCHANGE TABLES EXCHANGE all 1 ClickHouse docs
EXECUTE AS EXECUTE all 2 ClickHouse docs
EXISTS EXISTS all 4 ClickHouse docs
EXPLAIN EXPLAIN all 20 ClickHouse docs
GRANT GRANT all 11 ClickHouse docs
INSERT INTO FORMAT INSERT all 4 ClickHouse docs
INSERT INTO SELECT INSERT all 1 ClickHouse docs
INSERT INTO VALUES INSERT all 5 ClickHouse docs
KILL MUTATION KILL all 2 ClickHouse docs
KILL QUERY KILL all 2 ClickHouse docs
MOVE MOVE all 2 ClickHouse docs
Operators OPERATORS all 34 ClickHouse docs
OPTIMIZE TABLE OPTIMIZE all 15 ClickHouse docs
PARALLEL WITH PARALLEL all 4 ClickHouse docs
RENAME RENAME all 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 all 4 ClickHouse docs
EXCEPT modifier SELECT all 1 ClickHouse docs
FORMAT clause SELECT all 3 ClickHouse docs
FROM SELECT all 5 ClickHouse docs
GROUP BY SELECT all 10 ClickHouse docs
HAVING SELECT all 1 ClickHouse docs
IN operators SELECT all 12 ClickHouse docs
INTERSECT SELECT all 3 ClickHouse docs
INTO OUTFILE SELECT all 3 ClickHouse docs
JOIN SELECT all 12 ClickHouse docs
LIMIT SELECT all 4 ClickHouse docs
LIMIT BY SELECT all 9 ClickHouse docs
OFFSET / FETCH SELECT all 4 ClickHouse docs
ORDER BY SELECT all 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 all 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 all 18 ClickHouse docs
SET SET all 9 ClickHouse docs
SET ROLE SET all 3 ClickHouse docs
SHOW CLUSTERS SHOW all 3 ClickHouse docs
SHOW COLUMNS SHOW all 3 ClickHouse docs
SHOW CREATE SHOW all 5 ClickHouse docs
SHOW DATABASES SHOW all 4 ClickHouse docs
SHOW DICTIONARIES SHOW all 1 ClickHouse docs
SHOW ENGINES / FUNCTIONS / MERGES SHOW all 3 ClickHouse docs
SHOW GRANTS SHOW all 3 ClickHouse docs
SHOW INDEX SHOW all 3 ClickHouse docs
SHOW PROCESSLIST SHOW all 2 ClickHouse docs
SHOW SETTINGS SHOW all 3 ClickHouse docs
SHOW TABLES SHOW all 4 ClickHouse docs
SHOW USERS / ROLES / QUOTAS SHOW all 3 ClickHouse docs
Identifiers and literals SYNTAX all 12 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 all 4 ClickHouse docs
UNDROP TABLE UNDROP all 1 ClickHouse docs
UPDATE (lightweight) UPDATE all 2 ClickHouse docs
USE USE all 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.