From 7ac893ba9b3ea4519b36777a0820857aaf70c39d Mon Sep 17 00:00:00 2001 From: Polyglot AI <293096396+polyglotAI-bot@users.noreply.github.com> Date: Thu, 29 Oct 2026 19:43:44 +0000 Subject: [PATCH] jdbc-v2: update keywords and engines in JDBC Add the RETURNING and SHARED keywords to ALLOWED_KEYWORD_ALIASES and map the Elasticsearch table engine to REMOTE TABLE, so the keyword and table-engine checks pass against ClickHouse HEAD (26.11). Fixes: https://github.com/ClickHouse/clickhouse-java/issues/3265 Co-Authored-By: Claude Opus 5.5 --- history/latest/3265.md | 5 +++++ .../jdbc/internal/parser/javacc/ClickHouseSqlUtils.java | 4 +++- .../com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 history/latest/3265.md diff --git a/history/latest/3265.md b/history/latest/3265.md new file mode 100644 index 000000000..b0baa5f98 --- /dev/null +++ b/history/latest/3265.md @@ -0,0 +1,5 @@ +- **[jdbc-v2]** Added the `RETURNING` and `SHARED` keywords and the `Elasticsearch` table engine from ClickHouse 26.11 + (HEAD) to the driver's keyword and engine lists, so the keyword and table-engine checks pass against ClickHouse HEAD. + `DatabaseMetaData#getTables` now reports a table with the `Elasticsearch` engine as `REMOTE TABLE` (it was reported + as `TABLE`), like the other external-storage engines. Both SQL parsers already accept `RETURNING` and `SHARED` as + aliases. (https://github.com/ClickHouse/clickhouse-java/issues/3265) 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 4a36f74a9..94e1fb2a2 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 @@ -81,7 +81,9 @@ private static Set initAllowedKeywordAliases() { // Appended 10/05/2026 "LATERAL", "SIMILAR", // Appended 10/17/2026 - "RANGES" + "RANGES", + // Appended 10/29/2026 + "RETURNING", "SHARED" ); } diff --git a/jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java b/jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java index f6e046b01..1a9663a47 100644 --- a/jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java +++ b/jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java @@ -924,6 +924,9 @@ public ResultSet getProcedureColumns(String catalog, String schemaPattern, Strin // Obfuscate (appended 10/17/2026) map.put("Obfuscate", TableType.TABLE.getTypeName()); + // Remote engines (appended 10/29/2026) + map.put("Elasticsearch", TableType.REMOTE_TABLE.getTypeName()); + // Special map.put("TimeSeries", TableType.TABLE.getTypeName()); map.put("Null", TableType.TABLE.getTypeName());