|
20 | 20 |
|
21 | 21 | import org.apache.flink.connector.jdbc.dialect.JdbcDialectTypeTest;
|
22 | 22 |
|
| 23 | +import org.junit.jupiter.api.Test; |
| 24 | + |
23 | 25 | import java.util.Arrays;
|
24 | 26 | import java.util.List;
|
25 | 27 |
|
| 28 | +import static org.assertj.core.api.Assertions.assertThat; |
| 29 | + |
26 | 30 | /** The PostgresSql params for {@link JdbcDialectTypeTest}. */
|
27 | 31 | public class PostgresDialectTypeTest extends JdbcDialectTypeTest {
|
28 | 32 |
|
@@ -62,4 +66,24 @@ protected List<TestItem> testData() {
|
62 | 66 | "The precision of field 'f0' is out of the TIMESTAMP precision range [1, 6] supported by PostgreSQL dialect."),
|
63 | 67 | createTestItem("TIMESTAMP_LTZ(3)", "Unsupported type:TIMESTAMP_LTZ(3)"));
|
64 | 68 | }
|
| 69 | + |
| 70 | + @Test |
| 71 | + void testUpsertStatement() { |
| 72 | + PostgresDialect dialect = new PostgresDialect(); |
| 73 | + final String tableName = "tbl"; |
| 74 | + final String[] fieldNames = { |
| 75 | + "id", "name", "email", "ts", "field1", "field_2", "__field_3__" |
| 76 | + }; |
| 77 | + final String[] doUpdatekeyFields = {"id", "__field_3__"}; |
| 78 | + final String[] doNothingkeyFields = { |
| 79 | + "id", "name", "email", "ts", "field1", "field_2", "__field_3__" |
| 80 | + }; |
| 81 | + |
| 82 | + assertThat(dialect.getUpsertStatement(tableName, fieldNames, doUpdatekeyFields).get()) |
| 83 | + .isEqualTo( |
| 84 | + "INSERT INTO tbl(id, name, email, ts, field1, field_2, __field_3__) VALUES (:id, :name, :email, :ts, :field1, :field_2, :__field_3__) ON CONFLICT (id, __field_3__) DO UPDATE SET name=EXCLUDED.name, email=EXCLUDED.email, ts=EXCLUDED.ts, field1=EXCLUDED.field1, field_2=EXCLUDED.field_2"); |
| 85 | + assertThat(dialect.getUpsertStatement(tableName, fieldNames, doNothingkeyFields).get()) |
| 86 | + .isEqualTo( |
| 87 | + "INSERT INTO tbl(id, name, email, ts, field1, field_2, __field_3__) VALUES (:id, :name, :email, :ts, :field1, :field_2, :__field_3__) ON CONFLICT (id, name, email, ts, field1, field_2, __field_3__) DO NOTHING"); |
| 88 | + } |
65 | 89 | }
|
0 commit comments