Skip to content

Commit 57a0c7c

Browse files
authored
test: modify tests to use correct quote escaping (#909)
Some tests used invalid escaping of quotes in PostgreSQL queries. They assumed that a quote in a quoted string could be escaped by prefixing it with a backslash. This is however not allowed in PostgreSQL, and instead the quote must be escaped by including the same quote twice in the string. The Spanner Java client library contained a bug that allowed the backslash-escaped quotes to be accepted. This bug has been fixed in 6.25.7 and these tests therefore need to be modified to be able to update to that version. Fixes the build error in #898
1 parent 170c5fa commit 57a0c7c

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/test/java/com/google/cloud/spanner/jdbc/JdbcParameterStoreTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -895,35 +895,35 @@ public void testPostgresDialectConvertPositionalParametersToNamedParameters() {
895895
parser.convertPositionalParametersToNamedParameters('?', "?'?test?\"?test?\"?'?")
896896
.sqlWithNamedParameters);
897897
assertEquals(
898-
"$1'?it\\'?s'$2",
899-
parser.convertPositionalParametersToNamedParameters('?', "?'?it\\'?s'?")
898+
"$1'?it''?s'$2",
899+
parser.convertPositionalParametersToNamedParameters('?', "?'?it''?s'?")
900900
.sqlWithNamedParameters);
901901
assertEquals(
902902
"$1'?it\\\"?s'$2",
903903
parser.convertPositionalParametersToNamedParameters('?', "?'?it\\\"?s'?")
904904
.sqlWithNamedParameters);
905905
assertEquals(
906-
"$1\"?it\\\"?s\"$2",
907-
parser.convertPositionalParametersToNamedParameters('?', "?\"?it\\\"?s\"?")
906+
"$1\"?it\"\"?s\"$2",
907+
parser.convertPositionalParametersToNamedParameters('?', "?\"?it\"\"?s\"?")
908908
.sqlWithNamedParameters);
909909
assertEquals(
910-
"$1'''?it\\'?s'''$2",
911-
parser.convertPositionalParametersToNamedParameters('?', "?'''?it\\'?s'''?")
910+
"$1'''?it''?s'''$2",
911+
parser.convertPositionalParametersToNamedParameters('?', "?'''?it''?s'''?")
912912
.sqlWithNamedParameters);
913913
assertEquals(
914-
"$1\"\"\"?it\\\"?s\"\"\"$2",
915-
parser.convertPositionalParametersToNamedParameters('?', "?\"\"\"?it\\\"?s\"\"\"?")
914+
"$1\"\"\"?it\"\"?s\"\"\"$2",
915+
parser.convertPositionalParametersToNamedParameters('?', "?\"\"\"?it\"\"?s\"\"\"?")
916916
.sqlWithNamedParameters);
917917

918918
// PostgreSQL allows newlines inside string literals.
919919
assertEquals(
920-
"$1'?it\\'?s \n ?it\\'?s'$2",
921-
parser.convertPositionalParametersToNamedParameters('?', "?'?it\\'?s \n ?it\\'?s'?")
920+
"$1'?it''?s \n ?it''?s'$2",
921+
parser.convertPositionalParametersToNamedParameters('?', "?'?it''?s \n ?it''?s'?")
922922
.sqlWithNamedParameters);
923923
assertUnclosedLiteral("?'?it\\'?s \n ?it\\'?s?");
924924
assertEquals(
925-
"$1'''?it\\'?s \n ?it\\'?s'$2",
926-
parser.convertPositionalParametersToNamedParameters('?', "?'''?it\\'?s \n ?it\\'?s'?")
925+
"$1'''?it''?s \n ?it''?s'$2",
926+
parser.convertPositionalParametersToNamedParameters('?', "?'''?it''?s \n ?it''?s'?")
927927
.sqlWithNamedParameters);
928928

929929
assertEquals(

0 commit comments

Comments
 (0)