Skip to content

Commit 477bfd4

Browse files
authored
fix(jdbc-sink): quote identifier to handle case-sensitive case (#12078)
1 parent aea50f5 commit 477bfd4

File tree

4 files changed

+32
-1
lines changed

4 files changed

+32
-1
lines changed

e2e_test/sink/remote/jdbc.check.pg.slt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,9 @@ select * from t_append_only order by v1, v2;
3333
1 aaa
3434
1 bbb
3535
2 ccc
36+
37+
query I
38+
select * from biz.t2 order by "aBc";
39+
----
40+
1
41+
2

e2e_test/sink/remote/jdbc.load.slt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,26 @@ CREATE SINK s_pg_0 FROM tt1 WITH (
129129
force_append_only=true
130130
);
131131

132+
statement ok
133+
CREATE TABLE tt2 (
134+
"aBc" INTEGER PRIMARY KEY
135+
);
136+
137+
statement ok
138+
CREATE SINK s_pg_t2 FROM tt2 WITH (
139+
connector='jdbc',
140+
jdbc.url='jdbc:postgresql://db:5432/test?user=test&password=connector',
141+
table.name='t2',
142+
schema.name='biz',
143+
type='append-only',
144+
force_append_only=true
145+
);
146+
147+
statement ok
148+
INSERT INTO tt2 VALUES
149+
(1),
150+
(2);
151+
132152
statement ok
133153
INSERT INTO tt1 VALUES
134154
(1, 'aaa'),

e2e_test/sink/remote/pg_create_table.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,7 @@ CREATE TABLE biz.t_types (
7373
array_column VARCHAR[],
7474
array_column2 DECIMAL[]
7575
);
76+
77+
CREATE TABLE biz.t2 (
78+
"aBc" INTEGER PRIMARY KEY
79+
);

java/connector-node/risingwave-sink-jdbc/src/main/java/com/risingwave/connector/jdbc/PostgresDialect.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,8 @@ public String getNormalizedTableName(SchemaTableName schemaTableName) {
4545

4646
@Override
4747
public String quoteIdentifier(String identifier) {
48-
return identifier;
48+
// quote identifier will be case-sensitive in postgres
49+
return "\"" + identifier + "\"";
4950
}
5051

5152
@Override

0 commit comments

Comments
 (0)