|
6 | 6 |
|
7 | 7 | import static io.airbyte.cdk.db.jdbc.DateTimeConverter.putJavaSQLTime;
|
8 | 8 | import static io.airbyte.integrations.destination.redshift.operations.RedshiftSqlOperations.escapeStringLiteral;
|
9 |
| -import static org.junit.jupiter.api.Assertions.assertAll; |
10 | 9 | import static org.junit.jupiter.api.Assertions.assertEquals;
|
| 10 | +import static org.junit.jupiter.api.Assertions.assertFalse; |
11 | 11 | import static org.junit.jupiter.api.Assertions.assertTrue;
|
12 | 12 |
|
13 | 13 | import com.fasterxml.jackson.databind.JsonNode;
|
|
17 | 17 | import io.airbyte.cdk.db.jdbc.JdbcDatabase;
|
18 | 18 | import io.airbyte.cdk.db.jdbc.JdbcSourceOperations;
|
19 | 19 | import io.airbyte.cdk.db.jdbc.JdbcUtils;
|
20 |
| -import io.airbyte.cdk.integrations.destination.jdbc.TableDefinition; |
21 | 20 | import io.airbyte.cdk.integrations.destination.jdbc.typing_deduping.JdbcSqlGenerator;
|
22 | 21 | import io.airbyte.cdk.integrations.standardtest.destination.typing_deduping.JdbcSqlGeneratorIntegrationTest;
|
23 | 22 | import io.airbyte.commons.json.Jsons;
|
24 | 23 | import io.airbyte.integrations.base.destination.typing_deduping.DestinationHandler;
|
| 24 | +import io.airbyte.integrations.base.destination.typing_deduping.DestinationInitialState; |
25 | 25 | import io.airbyte.integrations.base.destination.typing_deduping.Sql;
|
26 | 26 | import io.airbyte.integrations.destination.redshift.RedshiftInsertDestination;
|
27 | 27 | import io.airbyte.integrations.destination.redshift.RedshiftSQLNameTransformer;
|
|
33 | 33 | import java.time.LocalDateTime;
|
34 | 34 | import java.time.OffsetTime;
|
35 | 35 | import java.time.ZoneOffset;
|
36 |
| -import java.util.Optional; |
| 36 | +import java.util.List; |
37 | 37 | import javax.sql.DataSource;
|
38 | 38 | import org.jooq.DSLContext;
|
39 | 39 | import org.jooq.DataType;
|
@@ -151,7 +151,7 @@ protected DSLContext getDslContext() {
|
151 | 151 | }
|
152 | 152 |
|
153 | 153 | @Override
|
154 |
| - protected DestinationHandler<TableDefinition> getDestinationHandler() { |
| 154 | + protected DestinationHandler getDestinationHandler() { |
155 | 155 | return new RedshiftDestinationHandler(databaseName, database);
|
156 | 156 | }
|
157 | 157 |
|
@@ -180,29 +180,11 @@ protected Field<?> toJsonValue(final String valueAsString) {
|
180 | 180 | public void testCreateTableIncremental() throws Exception {
|
181 | 181 | final Sql sql = generator.createTable(incrementalDedupStream, "", false);
|
182 | 182 | destinationHandler.execute(sql);
|
183 |
| - |
184 |
| - final Optional<TableDefinition> existingTable = destinationHandler.findExistingTable(incrementalDedupStream.id()); |
185 |
| - |
186 |
| - assertTrue(existingTable.isPresent()); |
187 |
| - assertAll( |
188 |
| - () -> assertEquals("varchar", existingTable.get().columns().get("_airbyte_raw_id").type()), |
189 |
| - () -> assertEquals("timestamptz", existingTable.get().columns().get("_airbyte_extracted_at").type()), |
190 |
| - () -> assertEquals("super", existingTable.get().columns().get("_airbyte_meta").type()), |
191 |
| - () -> assertEquals("int8", existingTable.get().columns().get("id1").type()), |
192 |
| - () -> assertEquals("int8", existingTable.get().columns().get("id2").type()), |
193 |
| - () -> assertEquals("timestamptz", existingTable.get().columns().get("updated_at").type()), |
194 |
| - () -> assertEquals("super", existingTable.get().columns().get("struct").type()), |
195 |
| - () -> assertEquals("super", existingTable.get().columns().get("array").type()), |
196 |
| - () -> assertEquals("varchar", existingTable.get().columns().get("string").type()), |
197 |
| - () -> assertEquals("numeric", existingTable.get().columns().get("number").type()), |
198 |
| - () -> assertEquals("int8", existingTable.get().columns().get("integer").type()), |
199 |
| - () -> assertEquals("bool", existingTable.get().columns().get("boolean").type()), |
200 |
| - () -> assertEquals("timestamptz", existingTable.get().columns().get("timestamp_with_timezone").type()), |
201 |
| - () -> assertEquals("timestamp", existingTable.get().columns().get("timestamp_without_timezone").type()), |
202 |
| - () -> assertEquals("timetz", existingTable.get().columns().get("time_with_timezone").type()), |
203 |
| - () -> assertEquals("time", existingTable.get().columns().get("time_without_timezone").type()), |
204 |
| - () -> assertEquals("date", existingTable.get().columns().get("date").type()), |
205 |
| - () -> assertEquals("super", existingTable.get().columns().get("unknown").type())); |
| 183 | + List<DestinationInitialState> initialStates = destinationHandler.gatherInitialState(List.of(incrementalDedupStream)); |
| 184 | + assertEquals(1, initialStates.size()); |
| 185 | + final DestinationInitialState initialState = initialStates.getFirst(); |
| 186 | + assertTrue(initialState.isFinalTablePresent()); |
| 187 | + assertFalse(initialState.isSchemaMismatch()); |
206 | 188 | // TODO assert on table clustering, etc.
|
207 | 189 | }
|
208 | 190 |
|
|
0 commit comments