diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a2a26af2..7b575c5a5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -153,6 +153,11 @@ ### Bug Fixes +- **[jdbc-v2]** Added the non-reserved keywords `AGGREGATE`, `BOUNDED`, `EXTEND`, `HANDLER`, `IDLE`, `PROTOCOL`, + `RECENT`, `TIMEOUT` and `UNORDERED` (ClickHouse `26.8+`; `IDLE`, `TIMEOUT` and `RECENT` come from the multi-word + keywords `IDLE TIMEOUT` and `RECENT SAMPLES`) to the list of keywords allowed in identifier positions. The server + accepts all of them as a column or table alias, so a query using one of them as an identifier must parse. + (https://github.com/ClickHouse/clickhouse-java/issues/3113) - **[client-v2]** Fixed a query with statement parameters sent in the request body (`client.http.use_form_request_for_query=true`) failing with `LZ4 decompression failed ... (LZ4_DECODER_FAILED)` when client request compression and HTTP compression were both enabled. The multipart body is always sent diff --git a/jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/parser/javacc/ClickHouseSqlUtils.java b/jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/parser/javacc/ClickHouseSqlUtils.java index 46277d196..98a8ac071 100644 --- a/jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/parser/javacc/ClickHouseSqlUtils.java +++ b/jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/parser/javacc/ClickHouseSqlUtils.java @@ -73,7 +73,9 @@ private static Set initAllowedKeywordAliases() { // Appended 06/26/2026 "ENUM", "HYPOTHETICAL", "WHATIF", // Appended 07/21/2026 - "ANALYZE", "AT", "MANIFEST", "RESERVATION" + "ANALYZE", "AT", "MANIFEST", "RESERVATION", + // Appended 09/10/2026 + "AGGREGATE", "BOUNDED", "EXTEND", "HANDLER", "IDLE", "PROTOCOL", "RECENT", "TIMEOUT", "UNORDERED" ); }