Skip to content

Commit b2ae9b6

Browse files
committed
fix(ksql-driver): Escape quotes in column names
1 parent cfafe12 commit b2ae9b6

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

packages/cubejs-ksql-driver/src/KsqlQuery.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ export class KsqlQuery extends BaseQuery {
5252
}
5353

5454
public escapeColumnName(name: string) {
55-
return `\`${name}\``;
55+
// https://docs.confluent.io/platform/current/ksqldb/reference/sql/lexical-structure.html#ksqldb-lexical-structure-identifiers
56+
// https://github.com/confluentinc/ksql/blob/84afdf1c2504844a15e02643f796288b8b069073/ksqldb-parser/src/main/antlr4/io/confluent/ksql/parser/SqlBase.g4#L378
57+
return `\`${name.replaceAll('`', '``')}\``;
5658
}
5759

5860
public castToString(sql: string) {
@@ -97,7 +99,7 @@ export class KsqlQuery extends BaseQuery {
9799
}
98100
}
99101
const res = this.evaluateSymbolSqlWithContext(() => [
100-
102+
101103
preAggregation.refreshRangeStart && [this.evaluateSql(cube, preAggregation.refreshRangeStart.sql, {}), [], { external: true }],
102104
preAggregation.refreshRangeEnd && [this.evaluateSql(cube, preAggregation.refreshRangeEnd.sql, {}), [], { external: true }]
103105
], { preAggregationQuery: true });

0 commit comments

Comments
 (0)