Skip to content

Commit

Permalink
Quote column in PipelineSQLSegmentBuilder. (#34326)
Browse files Browse the repository at this point in the history
  • Loading branch information
iamhucong authored Jan 13, 2025
1 parent 06c30c8 commit 211337b
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public PipelineSQLSegmentBuilder(final DatabaseType databaseType) {
* @return escaped identifier
*/
public String getEscapedIdentifier(final String identifier) {
return dialectDatabaseMetaData.isReservedWord(identifier) ? dialectDatabaseMetaData.getQuoteCharacter().wrap(identifier) : identifier;
return "*".equals(identifier) ? identifier : dialectDatabaseMetaData.getQuoteCharacter().wrap(identifier);
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,24 +38,24 @@ void assertGetEscapedIdentifier() {

@Test
void assertGetUnescapedIdentifier() {
assertThat(mysqlBuilder.getEscapedIdentifier("SELECT1"), is("SELECT1"));
assertThat(mysqlBuilder.getEscapedIdentifier("SELECT1"), is("`SELECT1`"));
}

@Test
void assertGetQualifiedTableNameWithUnsupportedSchema() {
assertThat(mysqlBuilder.getQualifiedTableName("foo_schema", "foo_tbl"), is("foo_tbl"));
assertThat(mysqlBuilder.getQualifiedTableName(new QualifiedTable("foo_schema", "foo_tbl")), is("foo_tbl"));
assertThat(mysqlBuilder.getQualifiedTableName("foo_schema", "foo_tbl"), is("`foo_tbl`"));
assertThat(mysqlBuilder.getQualifiedTableName(new QualifiedTable("foo_schema", "foo_tbl")), is("`foo_tbl`"));
}

@Test
void assertGetQualifiedTableNameWithSupportedSchema() {
assertThat(postgresqlBuilder.getQualifiedTableName("foo_schema", "foo_tbl"), is("foo_schema.foo_tbl"));
assertThat(postgresqlBuilder.getQualifiedTableName(new QualifiedTable("foo_schema", "foo_tbl")), is("foo_schema.foo_tbl"));
assertThat(postgresqlBuilder.getQualifiedTableName("foo_schema", "foo_tbl"), is("\"foo_schema\".\"foo_tbl\""));
assertThat(postgresqlBuilder.getQualifiedTableName(new QualifiedTable("foo_schema", "foo_tbl")), is("\"foo_schema\".\"foo_tbl\""));
}

@Test
void assertGetQualifiedTableNameWithSupportedSchemaAndNullSchema() {
assertThat(postgresqlBuilder.getQualifiedTableName(null, "foo_tbl"), is("foo_tbl"));
assertThat(postgresqlBuilder.getQualifiedTableName(new QualifiedTable(null, "foo_tbl")), is("foo_tbl"));
assertThat(postgresqlBuilder.getQualifiedTableName(null, "foo_tbl"), is("\"foo_tbl\""));
assertThat(postgresqlBuilder.getQualifiedTableName(new QualifiedTable(null, "foo_tbl")), is("\"foo_tbl\""));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class MySQLPipelineSQLBuilderTest {
void assertBuildInsertSQLOnDuplicateClause() {
Optional<String> actual = sqlBuilder.buildInsertOnDuplicateClause(createDataRecord());
assertTrue(actual.isPresent());
assertThat(actual.get(), is("ON DUPLICATE KEY UPDATE id=VALUES(id),sc=VALUES(sc),c1=VALUES(c1),c2=VALUES(c2),c3=VALUES(c3)"));
assertThat(actual.get(), is("ON DUPLICATE KEY UPDATE `id`=VALUES(`id`),`sc`=VALUES(`sc`),`c1`=VALUES(`c1`),`c2`=VALUES(`c2`),`c3`=VALUES(`c3`)"));
}

private DataRecord createDataRecord() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ void assertBuildCreateSchemaSQL() {
void assertBuildInsertOnDuplicateClause() {
Optional<String> actual = sqlBuilder.buildInsertOnDuplicateClause(createDataRecord());
assertTrue(actual.isPresent());
assertThat(actual.get(), is("ON DUPLICATE KEY UPDATE c0=EXCLUDED.c0,c1=EXCLUDED.c1,c2=EXCLUDED.c2,c3=EXCLUDED.c3"));
assertThat(actual.get(), is("ON DUPLICATE KEY UPDATE \"c0\"=EXCLUDED.\"c0\",\"c1\"=EXCLUDED.\"c1\",\"c2\"=EXCLUDED.\"c2\",\"c3\"=EXCLUDED.\"c3\""));
}

private DataRecord createDataRecord() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ void assertBuildInsertSQLOnDuplicateClauseWithEmptyUniqueKey() {
void assertBuildInsertSQLOnDuplicateClause() {
Optional<String> actual = sqlBuilder.buildInsertOnDuplicateClause(createDataRecord());
assertTrue(actual.isPresent());
assertThat(actual.get(), is("ON CONFLICT (order_id) DO UPDATE SET user_id=EXCLUDED.user_id,status=EXCLUDED.status"));
assertThat(actual.get(), is("ON CONFLICT (\"order_id\") DO UPDATE SET \"user_id\"=EXCLUDED.\"user_id\",\"status\"=EXCLUDED.\"status\""));
}

private DataRecord createDataRecord() {
Expand Down

0 comments on commit 211337b

Please sign in to comment.