From 0c34263a630e9a7eb24a3caae90fd7e2869c5df4 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Fri, 16 Oct 2026 18:30:20 +0700 Subject: [PATCH] docs(clickhouse): state what the driver needs from each server version --- databases/clickhouse.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/databases/clickhouse.mdx b/databases/clickhouse.mdx index 44fd7678..1e45a02f 100644 --- a/databases/clickhouse.mdx +++ b/databases/clickhouse.mdx @@ -3,7 +3,7 @@ title: ClickHouse description: Connection settings, the URL format, and the parts and partition tools for ClickHouse --- -Every query travels over HTTP to port 8123. The native TCP protocol on 9000 is not used, so the server's HTTP interface has to be on. Any version connects, though data-skipping indices need 19.17 or newer to show up. The driver ships inside the app. +Every query travels over HTTP to port 8123. The native TCP protocol on 9000 is not used, so the server's HTTP interface has to be on. Any version connects, and so does a user with a read-only profile: a setting the server or the user's profile does not allow is left out of each request. Data-skipping indices show up from 21.8, and editing a table comment needs 23.9. The driver ships inside the app. ## Quick setup @@ -86,7 +86,7 @@ The CA file may be PEM or DER. **Verify CA** needs one, since it checks no hostn - A materialized view opens read-only in the data grid. Edit the table a `TO` view writes into, or run `ALTER TABLE … UPDATE` and `ALTER TABLE … DELETE` on a view that stores its own rows from the SQL editor. - No auto-increment, and the primary key and sorting key are fixed at creation. Structure editing covers adding, modifying, and dropping columns, and dropping data-skipping indexes. Add or change a data-skipping index with `ALTER TABLE … ADD INDEX` in the SQL editor, and recreate the table for anything else. - A `SET` does not carry to the next statement. Every statement is its own HTTP request with no session id, and the setting is gone by the next one. Put it in a `SETTINGS` clause on the query itself. -- A query with its own `FORMAT` clause, such as `SELECT 1 FORMAT JSON`, shows the server's raw output in one column instead of a parsed table. Drop the clause to get a grid. +- A query with its own `FORMAT` clause, such as `SELECT 1 FORMAT JSON`, shows the server's raw output in one column instead of a parsed table, and an export of it stops with an error naming the format. Drop the clause to get a grid or an export. - A column with even one value that is not valid UTF-8 shows every row as hex in the grid, and its cells do not open for inline editing. `String` and `FixedString` hold raw bytes, so a hash or a stray byte is enough. An export, an object copy and a data compare judge each value on its own, so a row holding text stays text there. Select `toValidUTF8(column)` to read it as text, with the bad bytes replaced. ## Troubleshooting