ClickHouse SQL Validator
Real ClickHouse syntax checking inside Visual Studio. This extension validates your
ClickHouse SQL with the actual ClickHouse parser — the same one the server uses — so the
Error List shows genuine ClickHouse errors instead of Transact-SQL complaints about valid
ClickHouse syntax.
Works in Visual Studio 2022 (17.x) and Visual Studio 2026 (18.x), 64-bit.
Why
Visual Studio's built-in SQL editor speaks Transact-SQL. Point it at a ClickHouse query and it
squiggles perfectly valid syntax — SETTINGS, FINAL, LIMIT n BY, map and array types — as
if it were broken, while missing the mistakes that actually matter to ClickHouse. This
extension replaces that guesswork with the truth: it asks ClickHouse itself.
How it works
The extension pipes your document into clickhouse format on stdin. That subcommand runs the
real parser and re-prints the query — it parses only, and never executes anything. There is
no server to connect to, no credentials, and no risk of a stray INSERT or DROP touching
real data. When the parse fails, the extension maps ClickHouse's reported position back onto
your editor buffer, squiggles the offending token, and adds a row to the Error List with the
real ClickHouse error code and message.
Features
- ✅ Genuine ClickHouse errors — the server's own parser, not a T-SQL approximation.
- 🔴 Inline squiggles + Error List — errors land on the exact token, with ClickHouse's code and message.
- 📋 Every error at once — a broken file is re-checked statement by statement (and long
WITH … SELECT queries CTE by CTE) so you see all the problems together, not one per fix.
- ⚡ Validate as you type — debounced revalidation, or switch to on-open/on-save only.
- 🔒 Parse-only and safe — nothing is ever executed against a database.
- 🪟 WSL-aware — no native Windows ClickHouse build? Tick one box and it finds and runs the Linux binary through WSL for you, skipping shell-less distributions like
docker-desktop.
- 🎯 Clean separation — tool problems (binary not found, timeout) go to the Output window, never mixed into your SQL errors.
Which files
| Extension |
Behaviour |
.chsql, .clickhousesql |
Always validated, with ClickHouse syntax colouring. Visual Studio's T-SQL service never touches these, so you get only ClickHouse errors. |
.sql, .ddl |
Validated too (on by default; toggle in options). |
Tip: If SQL Server Data Tools also reports T-SQL errors on your .sql files, rename them
to .chsql so they belong to this extension alone.
Requirements
The ClickHouse binary must be on the machine — no server or configuration needed, only the
parser. On Windows the usual path is via WSL:
curl https://clickhouse.com/ | sh
Then tick Run ClickHouse through WSL in Tools > Options > ClickHouse SQL. A native
clickhouse.exe / clickhouse-format.exe on PATH is auto-detected too, or you can pin an
exact path in options.
Options
Configure under Tools > Options > ClickHouse SQL > General: WSL toggle and distribution,
executable path, extra arguments, timeout, validate-while-typing and idle delay, and whether
plain .sql files are checked. Tools > Validate ClickHouse SQL (also on the editor's
right-click menu) forces an immediate re-check.
Links