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.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.