Skip to content

Commit 5eec56f

Browse files
committed
jdbc-v2: update keywords and engines in JDBC
1 parent 259318d commit 5eec56f

3 files changed

Lines changed: 56 additions & 1 deletion

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: update-keyword-engine-lists
3+
description: Update ALLOWED_KEYWORD_ALIASES in ClickHouseSqlUtils.java and ENGINE_TO_TABLE_TYPE in DatabaseMetaDataImpl.java from failing test output. Use when StatementSQLTest.testAllowedKeywordAliasesMatchSystemKeywords or DatabaseMetaDataTest.testAllTableEnginesFromSystemTableEnginesAreMapped fails.
4+
---
5+
6+
# Update keyword and engine lists from test failures
7+
8+
## Files
9+
10+
**Keywords:**
11+
`jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/parser/javacc/ClickHouseSqlUtils.java`
12+
`initAllowedKeywordAliases()`, append after the last `// Appended` comment block.
13+
14+
**Engines:**
15+
`jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java`
16+
`ENGINE_TO_TABLE_TYPE` static block, insert a new group before `// Special`.
17+
18+
## Steps
19+
20+
1. Parse the failing test message to extract the list of missing items.
21+
22+
2. **For keywords** (`StatementSQLTest` failure — e.g. `["CURSOR", "DETERMINISTIC", ...]`):
23+
Append a new dated comment + entries at the end of `buildKeywordSet(...)`, after the last existing `// Appended` block:
24+
```java
25+
// Appended MM/DD/YYYY
26+
"KEYWORD1", "KEYWORD2", ...
27+
```
28+
The previous entry must have a trailing comma. Keep alphabetical order within the new block.
29+
30+
3. **For engines** (`DatabaseMetaDataTest` failure — e.g. `[Paimon, PaimonAzure, ...]`):
31+
Add a new named group before `// Special` in the static block:
32+
```java
33+
// <GroupName> (appended MM/DD/YYYY)
34+
map.put("Engine1", TableType.REMOTE_TABLE.getTypeName());
35+
```
36+
Choose `TableType` by analogy:
37+
- External storage (S3/Azure/HDFS variants, lake formats) → `REMOTE_TABLE`
38+
- MergeTree family or local engines → `TABLE`
39+
40+
## Output
41+
42+
After editing, output this git commit command:
43+
44+
```
45+
git commit -m "jdbc-v2: update <keywords|engines|keywords and engines> in JDBC"
46+
```

jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/parser/javacc/ClickHouseSqlUtils.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ private static Set<String> initAllowedKeywordAliases() {
6565
"CENTURY", "DECADE", "DOW", "DOY", "EPOCH", "ISODOW", "ISOYEAR", "MILLENNIUM", "NATURAL", "SOME",
6666
"ZONE",
6767
// Appended 04/10/2026
68-
"PATH", "PLACING"
68+
"PATH", "PLACING",
69+
// Appended 05/27/2026
70+
"CURSOR", "DETERMINISTIC", "ESCAPE", "SAMPLES", "STREAM", "UNKNOWN"
6971
);
7072
}
7173

jdbc-v2/src/main/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,13 @@ public ResultSet getProcedureColumns(String catalog, String schemaPattern, Strin
865865
map.put("SharedSummingMergeTree", TableType.TABLE.getTypeName());
866866
map.put("SharedVersionedCollapsingMergeTree", TableType.TABLE.getTypeName());
867867

868+
// Paimon (appended 05/27/2026)
869+
map.put("Paimon", TableType.REMOTE_TABLE.getTypeName());
870+
map.put("PaimonAzure", TableType.REMOTE_TABLE.getTypeName());
871+
map.put("PaimonHDFS", TableType.REMOTE_TABLE.getTypeName());
872+
map.put("PaimonLocal", TableType.REMOTE_TABLE.getTypeName());
873+
map.put("PaimonS3", TableType.REMOTE_TABLE.getTypeName());
874+
868875
// Special
869876
map.put("TimeSeries", TableType.TABLE.getTypeName());
870877
map.put("Null", TableType.TABLE.getTypeName());

0 commit comments

Comments
 (0)