Skip to content

Commit e554769

Browse files
committed
fixed parsing when table name is keyword
1 parent 813df63 commit e554769

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

jdbc-v2/src/main/java/com/clickhouse/jdbc/internal/ParsedPreparedStatement.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,11 +211,18 @@ private void appendParameter(int startIndex) {
211211
}
212212
}
213213

214+
@Override
215+
public void enterTableExprIdentifier(ClickHouseParser.TableExprIdentifierContext ctx) {
216+
if (ctx.tableIdentifier() != null) {
217+
this.table = SqlParser.unquoteIdentifier(ctx.tableIdentifier().getText());
218+
}
219+
}
220+
214221
@Override
215222
public void enterInsertStmt(ClickHouseParser.InsertStmtContext ctx) {
216223
ClickHouseParser.TableIdentifierContext tableId = ctx.tableIdentifier();
217224
if (tableId != null) {
218-
this.table = tableId.identifier().IDENTIFIER().getText();
225+
this.table = SqlParser.unquoteIdentifier(tableId.getText());
219226
}
220227

221228
ClickHouseParser.ColumnsClauseContext columns = ctx.columnsClause();

jdbc-v2/src/test/java/com/clickhouse/jdbc/internal/SqlParserTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ public void testMiscStatements(String sql, int args) {
275275
ParsedPreparedStatement stmt = parser.parsePreparedStatement(sql);
276276
Assert.assertFalse(stmt.isHasErrors());
277277
Assert.assertEquals(stmt.getArgCount(), args);
278+
System.out.println(stmt.getTable());
278279
}
279280

280281
@DataProvider
@@ -294,6 +295,8 @@ public Object[][] testMiscStmtDp() {
294295
{"SELECT * FROM table test WHERE ts = ?", 1},
295296
{"SELECT * FROM table view WHERE ts = ?", 1},
296297
{"SELECT * FROM table primary WHERE ts = ?", 1},
298+
{"insert into events (s) values ('a')", 0},
299+
{"insert into `events` (s) values ('a')", 0},
297300
};
298301
}
299302
}

0 commit comments

Comments
 (0)