From 4611b07c92468fe454fce7f7c2b1cdf44c6ab928 Mon Sep 17 00:00:00 2001 From: subodh Date: Wed, 14 Dec 2022 13:39:10 +0530 Subject: [PATCH 01/14] WIP --- .../airbyte/db/jdbc/DefaultJdbcDatabase.java | 5 ++ .../java/io/airbyte/db/jdbc/JdbcDatabase.java | 3 + .../bases/debezium-v1-9-6/build.gradle | 2 +- ...ebezium-connector-postgres-1.9.6.Final.jar | Bin 0 -> 359240 bytes .../internals/PostgresDebeziumStateUtil.java | 79 +++++++++++++----- .../PostgresDebeziumStateUtilTest.java | 44 +++++++--- .../postgres/PostgresCdcProperties.java | 3 + .../source/postgres/PostgresSource.java | 12 ++- .../source/postgres/PostgresUtils.java | 8 ++ .../src/main/resources/spec.json | 11 ++- 10 files changed, 132 insertions(+), 35 deletions(-) create mode 100644 airbyte-integrations/bases/debezium-v1-9-6/debezium-connector-postgres-1.9.6.Final.jar diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java index faf328623007..285c595b6903 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java @@ -89,6 +89,11 @@ public DatabaseMetaData getMetaData() throws SQLException { } } + @Override + public DataSource getDataSource() { + return dataSource; + } + /** * You CANNOT assume that data will be returned from this method before the entire {@link ResultSet} * is buffered in memory. Review the implementation of the database's JDBC driver or use the diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java index 18fb509c225f..d23cf513353b 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java @@ -22,6 +22,7 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; +import javax.sql.DataSource; /** * Database object for interacting with a JDBC connection. @@ -230,4 +231,6 @@ public ResultSetMetaData queryMetadata(final String sql, final String... params) public abstract DatabaseMetaData getMetaData() throws SQLException; + public abstract DataSource getDataSource(); + } diff --git a/airbyte-integrations/bases/debezium-v1-9-6/build.gradle b/airbyte-integrations/bases/debezium-v1-9-6/build.gradle index 32cd542b32cf..831cae80d1a3 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/build.gradle +++ b/airbyte-integrations/bases/debezium-v1-9-6/build.gradle @@ -13,7 +13,7 @@ dependencies { implementation 'io.debezium:debezium-embedded:1.9.6.Final' implementation 'io.debezium:debezium-connector-sqlserver:1.9.6.Final' implementation 'io.debezium:debezium-connector-mysql:1.9.6.Final' - implementation 'io.debezium:debezium-connector-postgres:1.9.6.Final' + implementation files('debezium-connector-postgres-1.9.6.Final.jar') implementation 'org.codehaus.plexus:plexus-utils:3.4.2' testFixturesImplementation project(':airbyte-db:db-lib') diff --git a/airbyte-integrations/bases/debezium-v1-9-6/debezium-connector-postgres-1.9.6.Final.jar b/airbyte-integrations/bases/debezium-v1-9-6/debezium-connector-postgres-1.9.6.Final.jar new file mode 100644 index 0000000000000000000000000000000000000000..6cb6edfb62c6b8a5cb6a1d7a2b6d1f448c368c17 GIT binary patch literal 359240 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
XW5tW+f#*~r$*_~O)1y;w<&Ns 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%0DKt> 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 confirmedFlushLsnOnServerSide; + } else if (replicationSlot.has("restart_lsn")) { + final long restartLsn = Lsn.valueOf(replicationSlot.get("restart_lsn").asText()).asLong(); + LOGGER.info("Replication slot restart_lsn : " + restartLsn + " Saved offset LSN : " + savedOffset.getAsLong()); + return savedOffset.getAsLong() >= restartLsn; + } + + // We return true when saved offset is not present cause using an empty offset would result in sync + // from scratch anyway + return true; + } + + public OptionalLong savedOffset(final Properties baseProperties, + final ConfiguredAirbyteCatalog catalog, + final JsonNode cdcState, + final JsonNode config) { final DebeziumPropertiesManager debeziumPropertiesManager = new DebeziumPropertiesManager(baseProperties, config, catalog, AirbyteFileOffsetBackingStore.initializeState(cdcState), Optional.empty()); final Properties debeziumProperties = debeziumPropertiesManager.getDebeziumProperties(); - final OptionalLong savedOffset = parseSavedOffset(debeziumProperties); - - if (savedOffset.isPresent()) { - if (replicationSlot.has("confirmed_flush_lsn")) { - final long confirmedFlushLsnOnServerSide = Lsn.valueOf(replicationSlot.get("confirmed_flush_lsn").asText()).asLong(); - LOGGER.info("Replication slot confirmed_flush_lsn : " + confirmedFlushLsnOnServerSide + " Saved offset LSN : " + savedOffset.getAsLong()); - return savedOffset.getAsLong() >= confirmedFlushLsnOnServerSide; - } else if (replicationSlot.has("restart_lsn")) { - final long restartLsn = Lsn.valueOf(replicationSlot.get("restart_lsn").asText()).asLong(); - LOGGER.info("Replication slot restart_lsn : " + restartLsn + " Saved offset LSN : " + savedOffset.getAsLong()); - return savedOffset.getAsLong() >= restartLsn; - } + return parseSavedOffset(debeziumProperties); + } + + public void commitLSNToPostgresDatabase(final DataSource dataSource, final OptionalLong savedOffset, final String slotName) { + if (Objects.isNull(savedOffset) || savedOffset.isEmpty()) { + return; } - // We return true when saved offset is not present cause using an empty offset would result in sync - // from scratch anyway - return true; + final LogSequenceNumber logSequenceNumber = Lsn.valueOf(savedOffset.getAsLong()).asLogSequenceNumber(); + + try (final BaseConnection pgConnection = ((BaseConnection) dataSource.getConnection())) { + final ChainedLogicalStreamBuilder streamBuilder = pgConnection + .getReplicationAPI() + .replicationStream() + .logical() + .withSlotName("\"" + slotName + "\"") + .withStartPosition(logSequenceNumber) + .withSlotOptions(new Properties()); + try (final PGReplicationStream stream = streamBuilder.start()) { + stream.forceUpdateStatus(); + + stream.setFlushedLSN(logSequenceNumber); + stream.setAppliedLSN(logSequenceNumber); + + stream.forceUpdateStatus(); + } + } catch (SQLException e) { + throw new RuntimeException(e); + } } /** diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java index c3ad7c5b3cf4..b30e429d8972 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java @@ -10,6 +10,7 @@ import io.airbyte.db.jdbc.JdbcUtils; import io.airbyte.protocol.models.ConfiguredAirbyteCatalog; import java.util.List; +import java.util.OptionalLong; import java.util.Properties; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -47,9 +48,12 @@ public void stateGeneratedAfterSnapshotCompletionAfterReplicationSlot() { final JsonNode cdcState = Jsons.deserialize( "{\"{\\\"schema\\\":null,\\\"payload\\\":[\\\"db_jagkjrgxhw\\\",{\\\"server\\\":\\\"db_jagkjrgxhw\\\"}]}\":\"{\\\"last_snapshot_record\\\":true,\\\"lsn\\\":23897640,\\\"txId\\\":505,\\\"ts_usec\\\":1659422332985000,\\\"snapshot\\\":true}\"}"); - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(new Properties(), - new ConfiguredAirbyteCatalog(), cdcState, REPLICATION_SLOT, CONFIG); + final OptionalLong savedOffset = postgresDebeziumStateUtil.savedOffset(new Properties(), + new ConfiguredAirbyteCatalog(), cdcState, CONFIG); + Assertions.assertTrue(savedOffset.isPresent()); + Assertions.assertEquals(savedOffset.getAsLong(), 23897640L); + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, savedOffset); Assertions.assertTrue(savedOffsetAfterReplicationSlotLSN); } @@ -58,9 +62,12 @@ public void stateGeneratedAfterSnapshotCompletionBeforeReplicationSlot() { final JsonNode cdcState = Jsons.deserialize( "{\"{\\\"schema\\\":null,\\\"payload\\\":[\\\"db_jagkjrgxhw\\\",{\\\"server\\\":\\\"db_jagkjrgxhw\\\"}]}\":\"{\\\"last_snapshot_record\\\":true,\\\"lsn\\\":23896935,\\\"txId\\\":505,\\\"ts_usec\\\":1659422332985000,\\\"snapshot\\\":true}\"}"); - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(new Properties(), - new ConfiguredAirbyteCatalog(), cdcState, REPLICATION_SLOT, CONFIG); + final OptionalLong savedOffset = postgresDebeziumStateUtil.savedOffset(new Properties(), + new ConfiguredAirbyteCatalog(), cdcState, CONFIG); + Assertions.assertTrue(savedOffset.isPresent()); + Assertions.assertEquals(savedOffset.getAsLong(), 23896935L); + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, savedOffset); Assertions.assertFalse(savedOffsetAfterReplicationSlotLSN); } @@ -69,9 +76,12 @@ public void stateGeneratedFromWalStreamingAfterReplicationSlot() { final JsonNode cdcState = Jsons.deserialize( "{\"{\\\"schema\\\":null,\\\"payload\\\":[\\\"db_jagkjrgxhw\\\",{\\\"server\\\":\\\"db_jagkjrgxhw\\\"}]}\":\"{\\\"transaction_id\\\":null,\\\"lsn_proc\\\":23901120,\\\"lsn_commit\\\":23901120,\\\"lsn\\\":23901120,\\\"txId\\\":525,\\\"ts_usec\\\":1659422649959099}\"}"); - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(new Properties(), - new ConfiguredAirbyteCatalog(), cdcState, REPLICATION_SLOT, CONFIG); + final OptionalLong savedOffset = postgresDebeziumStateUtil.savedOffset(new Properties(), + new ConfiguredAirbyteCatalog(), cdcState, CONFIG); + Assertions.assertTrue(savedOffset.isPresent()); + Assertions.assertEquals(savedOffset.getAsLong(), 23901120L); + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, savedOffset); Assertions.assertTrue(savedOffsetAfterReplicationSlotLSN); } @@ -80,17 +90,29 @@ public void stateGeneratedFromWalStreamingBeforeReplicationSlot() { final JsonNode cdcState = Jsons.deserialize( "{\"{\\\"schema\\\":null,\\\"payload\\\":[\\\"db_jagkjrgxhw\\\",{\\\"server\\\":\\\"db_jagkjrgxhw\\\"}]}\":\"{\\\"transaction_id\\\":null,\\\"lsn_proc\\\":23896935,\\\"lsn_commit\\\":23896935,\\\"lsn\\\":23896935,\\\"txId\\\":525,\\\"ts_usec\\\":1659422649959099}\"}"); - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(new Properties(), - new ConfiguredAirbyteCatalog(), cdcState, REPLICATION_SLOT, CONFIG); + final OptionalLong savedOffset = postgresDebeziumStateUtil.savedOffset(new Properties(), + new ConfiguredAirbyteCatalog(), cdcState, CONFIG); + Assertions.assertTrue(savedOffset.isPresent()); + Assertions.assertEquals(savedOffset.getAsLong(), 23896935L); + + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, savedOffset); Assertions.assertFalse(savedOffsetAfterReplicationSlotLSN); } @Test - public void nullState() { - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(new Properties(), - new ConfiguredAirbyteCatalog(), null, REPLICATION_SLOT, CONFIG); + public void nullOffset() { + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, null); + Assertions.assertTrue(savedOffsetAfterReplicationSlotLSN); + } + + @Test + public void emptyState() { + final OptionalLong savedOffset = postgresDebeziumStateUtil.savedOffset(new Properties(), + new ConfiguredAirbyteCatalog(), null, CONFIG); + Assertions.assertTrue(savedOffset.isEmpty()); + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, savedOffset); Assertions.assertTrue(savedOffsetAfterReplicationSlotLSN); } diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresCdcProperties.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresCdcProperties.java index 85b18cc01fe8..e3cfbdb1bb08 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresCdcProperties.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresCdcProperties.java @@ -57,6 +57,9 @@ private static Properties commonProperties(final JdbcDatabase database) { props.setProperty("datetime.type", PostgresConverter.class.getName()); props.setProperty("include.unknown.datatypes", "true"); props.setProperty("heartbeat.interval.ms", Long.toString(Duration.ofSeconds(HEARTBEAT_FREQUENCY_SEC).toMillis())); + if (PostgresUtils.shouldFlushAfterSync(sourceConfig)) { + props.setProperty("flush.lsn.source", "false"); + } // Check params for SSL connection in config and add properties for CDC SSL connection // https://debezium.io/documentation/reference/stable/connectors/postgresql.html#postgresql-property-database-sslmode diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java index e57254a6e7d8..73895ed51c82 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java @@ -68,6 +68,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.OptionalLong; import java.util.Set; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -345,19 +346,26 @@ public List> getIncrementalIterators(final final JsonNode state = (stateManager.getCdcStateManager().getCdcState() == null || stateManager.getCdcStateManager().getCdcState().getState() == null) ? null : Jsons.clone(stateManager.getCdcStateManager().getCdcState().getState()); - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN( + + final OptionalLong savedOffset = postgresDebeziumStateUtil.savedOffset( Jsons.clone(PostgresCdcProperties.getDebeziumDefaultProperties(database)), catalog, state, + sourceConfig); + + final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN( // We can assume that there will be only 1 replication slot cause before the sync starts for // Postgres CDC, // we run all the check operations and one of the check validates that the replication slot exists // and has only 1 entry getReplicationSlot(database, sourceConfig).get(0), - sourceConfig); + savedOffset); if (!savedOffsetAfterReplicationSlotLSN) { LOGGER.warn("Saved offset is before Replication slot's confirmed_flush_lsn, Airbyte will trigger sync from scratch"); + } else if(PostgresUtils.shouldFlushAfterSync(sourceConfig)){ + postgresDebeziumStateUtil.commitLSNToPostgresDatabase(database.getDataSource(), savedOffset, + sourceConfig.get("replication_method").get("replication_slot").asText()); } final AirbyteDebeziumHandler handler = new AirbyteDebeziumHandler(sourceConfig, diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresUtils.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresUtils.java index ebc2f1f9870b..f7045bdd8c4e 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresUtils.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresUtils.java @@ -54,6 +54,14 @@ public static boolean isCdc(final JsonNode config) { return isCdc; } + public static boolean shouldFlushAfterSync(final JsonNode config) { + final boolean shouldFlushAfterSync = config.hasNonNull("replication_method") + && config.get("replication_method").hasNonNull("lsn_commit_behaviour") + && config.get("replication_method").get("lsn_commit_behaviour").asText().equals("After loading Data in the destination"); + LOGGER.info("Should flush after sync: {}", shouldFlushAfterSync); + return shouldFlushAfterSync; + } + public static Optional getFirstRecordWaitSeconds(final JsonNode config) { final JsonNode replicationMethod = config.get("replication_method"); if (replicationMethod != null && replicationMethod.has("initial_waiting_seconds")) { diff --git a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json index 9e5a16a33181..d09b8352f792 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json @@ -235,7 +235,8 @@ { "title": "Logical Replication (CDC)", "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.", - "required": ["method", "replication_slot", "publication"], + "required": ["method", "replication_slot", "publication", "lsn_commit_behaviour"], + "additionalProperties": true, "properties": { "method": { "type": "string", @@ -270,6 +271,14 @@ "order": 5, "min": 120, "max": 1200 + }, + "lsn_commit_behaviour": { + "type": "string", + "title": "LSN commit behaviour", + "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.", + "enum": ["While reading Data", "After loading Data in the destination"], + "default": "After loading Data in the destination", + "order": 6 } } } From 991e4c4b48031d9dea04e6c31394ba998e383f64 Mon Sep 17 00:00:00 2001 From: subodh Date: Wed, 14 Dec 2022 18:11:56 +0530 Subject: [PATCH 02/14] fix issues --- .../airbyte/db/jdbc/DefaultJdbcDatabase.java | 5 -- .../java/io/airbyte/db/jdbc/JdbcDatabase.java | 3 - .../internals/PostgresDebeziumStateUtil.java | 84 +++++++++++++++++-- .../source/postgres/PostgresSource.java | 9 +- 4 files changed, 84 insertions(+), 17 deletions(-) diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java index 285c595b6903..faf328623007 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/DefaultJdbcDatabase.java @@ -89,11 +89,6 @@ public DatabaseMetaData getMetaData() throws SQLException { } } - @Override - public DataSource getDataSource() { - return dataSource; - } - /** * You CANNOT assume that data will be returned from this method before the entire {@link ResultSet} * is buffered in memory. Review the implementation of the database's JDBC driver or use the diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java index d23cf513353b..18fb509c225f 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/JdbcDatabase.java @@ -22,7 +22,6 @@ import java.util.function.Consumer; import java.util.stream.Stream; import java.util.stream.StreamSupport; -import javax.sql.DataSource; /** * Database object for interacting with a JDBC connection. @@ -231,6 +230,4 @@ public ResultSetMetaData queryMetadata(final String sql, final String... params) public abstract DatabaseMetaData getMetaData() throws SQLException; - public abstract DataSource getDataSource(); - } diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java index 1242583241a1..29474170d844 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java @@ -8,6 +8,7 @@ import static io.debezium.connector.postgresql.SourceInfo.LSN_KEY; import com.fasterxml.jackson.databind.JsonNode; +import io.airbyte.db.jdbc.JdbcUtils; import io.airbyte.protocol.models.ConfiguredAirbyteCatalog; import io.debezium.config.Configuration; import io.debezium.connector.common.OffsetReader; @@ -16,9 +17,15 @@ import io.debezium.connector.postgresql.PostgresOffsetContext.Loader; import io.debezium.connector.postgresql.PostgresPartition; import io.debezium.connector.postgresql.connection.Lsn; +import io.debezium.jdbc.JdbcConnection.ResultSetMapper; +import io.debezium.jdbc.JdbcConnection.StatementFactory; import io.debezium.pipeline.spi.Offsets; import io.debezium.pipeline.spi.Partition; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; import java.sql.SQLException; +import java.sql.Statement; import java.util.Collections; import java.util.Map; import java.util.Objects; @@ -26,7 +33,6 @@ import java.util.OptionalLong; import java.util.Properties; import java.util.Set; -import javax.sql.DataSource; import org.apache.kafka.connect.json.JsonConverter; import org.apache.kafka.connect.runtime.WorkerConfig; import org.apache.kafka.connect.runtime.standalone.StandaloneConfig; @@ -80,21 +86,44 @@ public OptionalLong savedOffset(final Properties baseProperties, return parseSavedOffset(debeziumProperties); } - public void commitLSNToPostgresDatabase(final DataSource dataSource, final OptionalLong savedOffset, final String slotName) { + private Connection connection(final JsonNode jdbcConfig) throws SQLException { + Properties properties = new Properties(); + properties.setProperty("user", jdbcConfig.has(JdbcUtils.USERNAME_KEY) ? jdbcConfig.get(JdbcUtils.USERNAME_KEY).asText() + : null); + properties.setProperty("password", jdbcConfig.has(JdbcUtils.PASSWORD_KEY) ? jdbcConfig.get(JdbcUtils.PASSWORD_KEY).asText() + : null); + properties.setProperty("assumeMinServerVersion", "9.4"); + properties.setProperty("ApplicationName", "Airbyte Debezium Streaming"); + properties.setProperty("replication", "database"); + properties.setProperty("preferQueryMode", "simple"); // replication protocol only supports simple query mode + + return DriverManager.getConnection(jdbcConfig.get(JdbcUtils.JDBC_URL_KEY).asText(), properties); + } + + public void commitLSNToPostgresDatabase(final JsonNode jdbcConfig, + final OptionalLong savedOffset, + final String slotName, + final String publicationName, + final String plugin) { if (Objects.isNull(savedOffset) || savedOffset.isEmpty()) { return; } final LogSequenceNumber logSequenceNumber = Lsn.valueOf(savedOffset.getAsLong()).asLogSequenceNumber(); - try (final BaseConnection pgConnection = ((BaseConnection) dataSource.getConnection())) { - final ChainedLogicalStreamBuilder streamBuilder = pgConnection + try (final BaseConnection pgConnection = ((BaseConnection) connection(jdbcConfig))) { + validateReplicationConnection(pgConnection); + + + ChainedLogicalStreamBuilder streamBuilder = pgConnection .getReplicationAPI() .replicationStream() .logical() .withSlotName("\"" + slotName + "\"") - .withStartPosition(logSequenceNumber) - .withSlotOptions(new Properties()); + .withStartPosition(logSequenceNumber); + + streamBuilder = addSlotOption(publicationName, plugin, pgConnection, streamBuilder); + try (final PGReplicationStream stream = streamBuilder.start()) { stream.forceUpdateStatus(); @@ -108,6 +137,49 @@ public void commitLSNToPostgresDatabase(final DataSource dataSource, final Optio } } + private ChainedLogicalStreamBuilder addSlotOption(final String publicationName, + final String plugin, + final BaseConnection pgConnection, + ChainedLogicalStreamBuilder streamBuilder) { + if (plugin.equalsIgnoreCase("pgoutput")) { + streamBuilder = streamBuilder.withSlotOption("proto_version", 1) + .withSlotOption("publication_names", publicationName); + + if (pgConnection.haveMinimumServerVersion(140000)) { + streamBuilder = streamBuilder.withSlotOption("messages", true); + } + } else if (plugin.equalsIgnoreCase("wal2json")) { + streamBuilder = streamBuilder + .withSlotOption("pretty-print", 1) + .withSlotOption("write-in-chunks", 1) + .withSlotOption("include-xids", 1) + .withSlotOption("include-timestamp", 1) + .withSlotOption("include-not-null", "true"); + } else { + throw new RuntimeException("Unknown plugin value : " + plugin); + } + return streamBuilder; + } + + private void validateReplicationConnection(BaseConnection pgConnection) throws SQLException { + final Lsn xlogStart = queryAndMap(pgConnection, "IDENTIFY_SYSTEM", Connection::createStatement, rs -> { + if (!rs.next()) { + throw new IllegalStateException("The DB connection is not a valid replication connection"); + } + String xlogpos = rs.getString("xlogpos"); + return Lsn.valueOf(xlogpos); + }); + } + + private T queryAndMap(Connection conn, String query, StatementFactory statementFactory, ResultSetMapper mapper) throws SQLException { + Objects.requireNonNull(mapper, "Mapper must be provided"); + try (Statement statement = statementFactory.createStatement(conn)) { + try (ResultSet resultSet = statement.executeQuery(query);) { + return mapper.apply(resultSet); + } + } + } + /** * * @param properties Properties should contain the relevant properties like path to the debezium diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java index 73895ed51c82..1ae4498aafe4 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java @@ -363,9 +363,12 @@ public List> getIncrementalIterators(final if (!savedOffsetAfterReplicationSlotLSN) { LOGGER.warn("Saved offset is before Replication slot's confirmed_flush_lsn, Airbyte will trigger sync from scratch"); - } else if(PostgresUtils.shouldFlushAfterSync(sourceConfig)){ - postgresDebeziumStateUtil.commitLSNToPostgresDatabase(database.getDataSource(), savedOffset, - sourceConfig.get("replication_method").get("replication_slot").asText()); + } else if (PostgresUtils.shouldFlushAfterSync(sourceConfig)) { + postgresDebeziumStateUtil.commitLSNToPostgresDatabase(database.getDatabaseConfig(), + savedOffset, + sourceConfig.get("replication_method").get("replication_slot").asText(), + sourceConfig.get("replication_method").get("publication").asText(), + PostgresUtils.getPluginValue(sourceConfig.get("replication_method"))); } final AirbyteDebeziumHandler handler = new AirbyteDebeziumHandler(sourceConfig, From 6783723ebd14448ec38c1f650afe5ef8c6334e45 Mon Sep 17 00:00:00 2001 From: subodh Date: Thu, 15 Dec 2022 15:11:54 +0530 Subject: [PATCH 03/14] fix test --- .../source/postgres/CdcPostgresSourceTest.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java index 1d10a6f7af08..1c28ea4fc0df 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java @@ -129,6 +129,7 @@ private JsonNode getConfig(final String dbName) { .put("publication", PUBLICATION) .put("plugin", getPluginName()) .put("initial_waiting_seconds", INITIAL_WAITING_SECONDS) + .put("lsn_commit_behaviour", "After loading Data in the destination") .build()); return Jsons.jsonNode(ImmutableMap.builder() @@ -346,8 +347,18 @@ protected void syncShouldHandlePurgedLogsGracefully() throws Exception { final int recordsToCreate = 20; + final JsonNode config = getConfig(); + final JsonNode replicationMethod = Jsons.jsonNode(ImmutableMap.builder() + .put("replication_slot", SLOT_NAME_BASE + "_" + dbName) + .put("publication", PUBLICATION) + .put("plugin", getPluginName()) + .put("initial_waiting_seconds", INITIAL_WAITING_SECONDS) + .put("lsn_commit_behaviour", "While reading Data") + .build()); + ((ObjectNode) config).put("replication_method", replicationMethod); + final AutoCloseableIterator firstBatchIterator = getSource() - .read(getConfig(), CONFIGURED_CATALOG, null); + .read(config, CONFIGURED_CATALOG, null); final List dataFromFirstBatch = AutoCloseableIterators .toListAndClose(firstBatchIterator); final List stateAfterFirstBatch = extractStateMessages(dataFromFirstBatch); @@ -363,7 +374,7 @@ protected void syncShouldHandlePurgedLogsGracefully() throws Exception { final JsonNode state = Jsons.jsonNode(stateAfterFirstBatch); final AutoCloseableIterator secondBatchIterator = getSource() - .read(getConfig(), CONFIGURED_CATALOG, state); + .read(config, CONFIGURED_CATALOG, state); final List dataFromSecondBatch = AutoCloseableIterators .toListAndClose(secondBatchIterator); final List stateAfterSecondBatch = extractStateMessages(dataFromSecondBatch); @@ -380,7 +391,7 @@ protected void syncShouldHandlePurgedLogsGracefully() throws Exception { // Triggering sync with the first sync's state only which would mimic a scenario that the second // sync failed on destination end and we didn't save state final AutoCloseableIterator thirdBatchIterator = getSource() - .read(getConfig(), CONFIGURED_CATALOG, state); + .read(config, CONFIGURED_CATALOG, state); final List dataFromThirdBatch = AutoCloseableIterators .toListAndClose(thirdBatchIterator); From 3ca1c43353dc43449a052c8dd29c74ebc2acce7f Mon Sep 17 00:00:00 2001 From: subodh Date: Thu, 15 Dec 2022 15:56:33 +0530 Subject: [PATCH 04/14] format --- .../internals/PostgresDebeziumStateUtil.java | 25 +++++++++---------- .../PostgresDebeziumStateUtilTest.java | 1 - 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java index 29474170d844..a028b7214a5e 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java @@ -54,7 +54,7 @@ public class PostgresDebeziumStateUtil { private static final Logger LOGGER = LoggerFactory.getLogger(PostgresDebeziumStateUtil.class); public boolean isSavedOffsetAfterReplicationSlotLSN(final JsonNode replicationSlot, - final OptionalLong savedOffset) { + final OptionalLong savedOffset) { if (Objects.isNull(savedOffset) || savedOffset.isEmpty()) { return true; @@ -76,9 +76,9 @@ public boolean isSavedOffsetAfterReplicationSlotLSN(final JsonNode replicationSl } public OptionalLong savedOffset(final Properties baseProperties, - final ConfiguredAirbyteCatalog catalog, - final JsonNode cdcState, - final JsonNode config) { + final ConfiguredAirbyteCatalog catalog, + final JsonNode cdcState, + final JsonNode config) { final DebeziumPropertiesManager debeziumPropertiesManager = new DebeziumPropertiesManager(baseProperties, config, catalog, AirbyteFileOffsetBackingStore.initializeState(cdcState), Optional.empty()); @@ -101,10 +101,10 @@ private Connection connection(final JsonNode jdbcConfig) throws SQLException { } public void commitLSNToPostgresDatabase(final JsonNode jdbcConfig, - final OptionalLong savedOffset, - final String slotName, - final String publicationName, - final String plugin) { + final OptionalLong savedOffset, + final String slotName, + final String publicationName, + final String plugin) { if (Objects.isNull(savedOffset) || savedOffset.isEmpty()) { return; } @@ -114,7 +114,6 @@ public void commitLSNToPostgresDatabase(final JsonNode jdbcConfig, try (final BaseConnection pgConnection = ((BaseConnection) connection(jdbcConfig))) { validateReplicationConnection(pgConnection); - ChainedLogicalStreamBuilder streamBuilder = pgConnection .getReplicationAPI() .replicationStream() @@ -138,9 +137,9 @@ public void commitLSNToPostgresDatabase(final JsonNode jdbcConfig, } private ChainedLogicalStreamBuilder addSlotOption(final String publicationName, - final String plugin, - final BaseConnection pgConnection, - ChainedLogicalStreamBuilder streamBuilder) { + final String plugin, + final BaseConnection pgConnection, + ChainedLogicalStreamBuilder streamBuilder) { if (plugin.equalsIgnoreCase("pgoutput")) { streamBuilder = streamBuilder.withSlotOption("proto_version", 1) .withSlotOption("publication_names", publicationName); @@ -171,7 +170,7 @@ private void validateReplicationConnection(BaseConnection pgConnection) throws S }); } - private T queryAndMap(Connection conn, String query, StatementFactory statementFactory, ResultSetMapper mapper) throws SQLException { + private T queryAndMap(Connection conn, String query, StatementFactory statementFactory, ResultSetMapper mapper) throws SQLException { Objects.requireNonNull(mapper, "Mapper must be provided"); try (Statement statement = statementFactory.createStatement(conn)) { try (ResultSet resultSet = statement.executeQuery(query);) { diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java index b30e429d8972..cf8f5f65c389 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java @@ -95,7 +95,6 @@ public void stateGeneratedFromWalStreamingBeforeReplicationSlot() { Assertions.assertTrue(savedOffset.isPresent()); Assertions.assertEquals(savedOffset.getAsLong(), 23896935L); - final boolean savedOffsetAfterReplicationSlotLSN = postgresDebeziumStateUtil.isSavedOffsetAfterReplicationSlotLSN(REPLICATION_SLOT, savedOffset); Assertions.assertFalse(savedOffsetAfterReplicationSlotLSN); } From cb40e12c87614d929fbbebc2e648c932fac8c132 Mon Sep 17 00:00:00 2001 From: subodh Date: Thu, 15 Dec 2022 19:33:06 +0530 Subject: [PATCH 05/14] more tests --- .../bases/debezium-v1-9-6/build.gradle | 4 + .../internals/PostgresDebeziumStateUtil.java | 5 +- .../PostgresDebeziumStateUtilTest.java | 80 +++++++++++++++++++ .../postgres/CdcPostgresSourceTest.java | 29 ++++--- .../source/postgres/PostgresSpecTest.java | 31 ++++++- .../source/postgres/PostgresUtilsTest.java | 32 ++++++++ 6 files changed, 163 insertions(+), 18 deletions(-) diff --git a/airbyte-integrations/bases/debezium-v1-9-6/build.gradle b/airbyte-integrations/bases/debezium-v1-9-6/build.gradle index 831cae80d1a3..633cb787a57d 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/build.gradle +++ b/airbyte-integrations/bases/debezium-v1-9-6/build.gradle @@ -19,6 +19,10 @@ dependencies { testFixturesImplementation project(':airbyte-db:db-lib') testFixturesImplementation project(':airbyte-integrations:bases:base-java') + testImplementation project(':airbyte-test-utils') + testImplementation libs.connectors.testcontainers.jdbc + testImplementation libs.connectors.testcontainers.postgresql + testFixturesImplementation 'org.junit.jupiter:junit-jupiter-engine:5.4.2' testFixturesImplementation 'org.junit.jupiter:junit-jupiter-api:5.4.2' testFixturesImplementation 'org.junit.jupiter:junit-jupiter-params:5.4.2' diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java index a028b7214a5e..414cac52773b 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java @@ -160,7 +160,7 @@ private ChainedLogicalStreamBuilder addSlotOption(final String publicationName, return streamBuilder; } - private void validateReplicationConnection(BaseConnection pgConnection) throws SQLException { + private void validateReplicationConnection(final BaseConnection pgConnection) throws SQLException { final Lsn xlogStart = queryAndMap(pgConnection, "IDENTIFY_SYSTEM", Connection::createStatement, rs -> { if (!rs.next()) { throw new IllegalStateException("The DB connection is not a valid replication connection"); @@ -170,7 +170,8 @@ private void validateReplicationConnection(BaseConnection pgConnection) throws S }); } - private T queryAndMap(Connection conn, String query, StatementFactory statementFactory, ResultSetMapper mapper) throws SQLException { + private T queryAndMap(final Connection conn, final String query, final StatementFactory statementFactory, final ResultSetMapper mapper) + throws SQLException { Objects.requireNonNull(mapper, "Mapper must be provided"); try (Statement statement = statementFactory.createStatement(conn)) { try (ResultSet resultSet = statement.executeQuery(query);) { diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java index cf8f5f65c389..c3f34b0d05fb 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java @@ -6,14 +6,31 @@ import com.fasterxml.jackson.databind.JsonNode; import com.google.common.collect.ImmutableMap; +import io.airbyte.commons.io.IOs; import io.airbyte.commons.json.Jsons; +import io.airbyte.commons.string.Strings; +import io.airbyte.db.PgLsn; +import io.airbyte.db.PostgresUtils; +import io.airbyte.db.factory.DataSourceFactory; +import io.airbyte.db.factory.DatabaseDriver; +import io.airbyte.db.jdbc.DefaultJdbcDatabase; +import io.airbyte.db.jdbc.JdbcDatabase; import io.airbyte.db.jdbc.JdbcUtils; import io.airbyte.protocol.models.ConfiguredAirbyteCatalog; +import io.airbyte.test.utils.PostgreSQLContainerHelper; +import io.debezium.connector.postgresql.connection.Lsn; +import java.sql.SQLException; import java.util.List; +import java.util.Map; import java.util.OptionalLong; import java.util.Properties; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.utility.DockerImageName; +import org.testcontainers.utility.MountableFile; public class PostgresDebeziumStateUtilTest { @@ -115,4 +132,67 @@ public void emptyState() { Assertions.assertTrue(savedOffsetAfterReplicationSlotLSN); } + @ParameterizedTest + @ValueSource(strings = {"pgoutput", "wal2json"}) + public void test(final String plugin) throws SQLException { + final DockerImageName myImage = DockerImageName.parse("debezium/postgres:13-alpine").asCompatibleSubstituteFor("postgres"); + final String dbName = Strings.addRandomSuffix("db", "_", 10).toLowerCase(); + final String fullReplicationSlot = "debezium_slot" + "_" + dbName; + final String publication = "publication"; + try (final PostgreSQLContainer container = new PostgreSQLContainer<>(myImage)) { + container.start(); + + final String initScriptName = "init_" + dbName.concat(".sql"); + final String tmpFilePath = IOs.writeFileToRandomTmpDir(initScriptName, "CREATE DATABASE " + dbName + ";"); + PostgreSQLContainerHelper.runSqlScript(MountableFile.forHostPath(tmpFilePath), container); + + final Map databaseConfig = Map.of(JdbcUtils.USERNAME_KEY, container.getUsername(), + JdbcUtils.PASSWORD_KEY, container.getPassword(), + JdbcUtils.JDBC_URL_KEY, String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(), + container.getHost(), + container.getFirstMappedPort(), + dbName)); + + final JdbcDatabase database = new DefaultJdbcDatabase( + DataSourceFactory.create( + databaseConfig.get(JdbcUtils.USERNAME_KEY), + databaseConfig.get(JdbcUtils.PASSWORD_KEY), + DatabaseDriver.POSTGRESQL.getDriverClassName(), + databaseConfig.get(JdbcUtils.JDBC_URL_KEY))); + + database.execute("SELECT pg_create_logical_replication_slot('" + fullReplicationSlot + "', '" + plugin + "');"); + database.execute("CREATE PUBLICATION " + publication + " FOR ALL TABLES;"); + + database.execute("CREATE TABLE public.test_table (id int primary key, name varchar(256));"); + database.execute("insert into public.test_table values (1, 'foo');"); + database.execute("insert into public.test_table values (2, 'bar');"); + + final Lsn lsnAtTheBeginning = Lsn.valueOf( + getReplicationSlot(database, fullReplicationSlot, plugin, dbName).get("confirmed_flush_lsn").asText()); + + final PgLsn targetLsn = PostgresUtils.getLsn(database); + postgresDebeziumStateUtil.commitLSNToPostgresDatabase(Jsons.jsonNode(databaseConfig), + OptionalLong.of(targetLsn.asLong()), + fullReplicationSlot, + publication, + plugin); + + final Lsn lsnAfterCommit = Lsn.valueOf( + getReplicationSlot(database, fullReplicationSlot, plugin, dbName).get("confirmed_flush_lsn").asText()); + + Assertions.assertEquals(1, lsnAfterCommit.compareTo(lsnAtTheBeginning)); + Assertions.assertEquals(targetLsn.asLong(), lsnAfterCommit.asLong()); + container.stop(); + } + } + + private JsonNode getReplicationSlot(final JdbcDatabase database, String slotName, String plugin, String dbName) { + try { + return database.queryJsons("SELECT * FROM pg_replication_slots WHERE slot_name = ? AND plugin = ? AND database = ?", slotName, plugin, dbName) + .get(0); + } catch (final SQLException e) { + throw new RuntimeException(e); + } + } + } diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java index 1c28ea4fc0df..bbbb32457885 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java @@ -124,14 +124,7 @@ protected void setup() throws SQLException { } private JsonNode getConfig(final String dbName) { - final JsonNode replicationMethod = Jsons.jsonNode(ImmutableMap.builder() - .put("replication_slot", SLOT_NAME_BASE + "_" + dbName) - .put("publication", PUBLICATION) - .put("plugin", getPluginName()) - .put("initial_waiting_seconds", INITIAL_WAITING_SECONDS) - .put("lsn_commit_behaviour", "After loading Data in the destination") - .build()); - + final JsonNode replicationMethod = getReplicationMethod(dbName); return Jsons.jsonNode(ImmutableMap.builder() .put(JdbcUtils.HOST_KEY, container.getHost()) .put(JdbcUtils.PORT_KEY, container.getFirstMappedPort()) @@ -145,6 +138,17 @@ private JsonNode getConfig(final String dbName) { .build()); } + private JsonNode getReplicationMethod(final String dbName) { + return Jsons.jsonNode(ImmutableMap.builder() + .put("method", "CDC") + .put("replication_slot", SLOT_NAME_BASE + "_" + dbName) + .put("publication", PUBLICATION) + .put("plugin", getPluginName()) + .put("initial_waiting_seconds", INITIAL_WAITING_SECONDS) + .put("lsn_commit_behaviour", "After loading Data in the destination") + .build()); + } + private static Database getDatabase(final DSLContext dslContext) { return new Database(dslContext); } @@ -348,13 +352,8 @@ protected void syncShouldHandlePurgedLogsGracefully() throws Exception { final int recordsToCreate = 20; final JsonNode config = getConfig(); - final JsonNode replicationMethod = Jsons.jsonNode(ImmutableMap.builder() - .put("replication_slot", SLOT_NAME_BASE + "_" + dbName) - .put("publication", PUBLICATION) - .put("plugin", getPluginName()) - .put("initial_waiting_seconds", INITIAL_WAITING_SECONDS) - .put("lsn_commit_behaviour", "While reading Data") - .build()); + final JsonNode replicationMethod = ((ObjectNode) getReplicationMethod(config.get(JdbcUtils.DATABASE_KEY).asText())).put("lsn_commit_behaviour", + "While reading Data"); ((ObjectNode) config).put("replication_method", replicationMethod); final AutoCloseableIterator firstBatchIterator = getSource() diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresSpecTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresSpecTest.java index 2de04fa66f84..eee63ee49be1 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresSpecTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresSpecTest.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ObjectNode; +import com.google.common.collect.ImmutableMap; import io.airbyte.commons.io.IOs; import io.airbyte.commons.json.Jsons; import io.airbyte.commons.resources.MoreResources; @@ -20,8 +21,11 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; /** * Tests that the postgres spec passes JsonSchema validation. While this may seem like overkill, we @@ -38,7 +42,7 @@ public class PostgresSpecTest { + "\"host\" : \"localhost\", " + "\"jdbc_url_params\" : \"property1=pValue1&property2=pValue2\", " + "\"ssl\" : true, " - + "\"replication_method\" : { \"method\" : \"CDC\", \"replication_slot\" : \"ab_slot\", \"publication\" : \"ab_publication\" }" + + "\"replication_method\" : { \"method\" : \"CDC\", \"replication_slot\" : \"ab_slot\", \"publication\" : \"ab_publication\", \"lsn_commit_behaviour\" : \"After loading Data in the destination\" }" + "}"; private static JsonNode schema; private static JsonSchemaValidator validator; @@ -128,4 +132,29 @@ void testJdbcAdditionalProperty() throws Exception { assertNotNull(spec.getConnectionSpecification().get("properties").get(JdbcUtils.JDBC_URL_PARAMS_KEY)); } + @ParameterizedTest + @ValueSource(strings = {"While reading Data", "After loading Data in the destination"}) + void testLsnCommitBehaviourProperty(final String commitBehaviour) { + final JsonNode replicationMethod = Jsons.jsonNode(ImmutableMap.builder() + .put("method", "CDC") + .put("replication_slot", "replication_slot") + .put("publication", "PUBLICATION") + .put("plugin", "pgoutput") + .put("initial_waiting_seconds", 5) + .put("lsn_commit_behaviour", commitBehaviour) + .build()); + + final JsonNode config = Jsons.jsonNode(ImmutableMap.builder() + .put(JdbcUtils.HOST_KEY, "host") + .put(JdbcUtils.PORT_KEY, 5432) + .put(JdbcUtils.DATABASE_KEY, "dbName") + .put(JdbcUtils.SCHEMAS_KEY, List.of("MODELS_SCHEMA", "MODELS_SCHEMA" + "_random")) + .put(JdbcUtils.USERNAME_KEY, "user") + .put(JdbcUtils.PASSWORD_KEY, "password") + .put(JdbcUtils.SSL_KEY, false) + .put("replication_method", replicationMethod) + .build()); + assertTrue(validator.test(schema, config)); + } + } diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresUtilsTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresUtilsTest.java index a3d3c4deccf0..0d21b9b8ac0e 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresUtilsTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/PostgresUtilsTest.java @@ -16,8 +16,10 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.google.common.collect.ImmutableMap; import io.airbyte.commons.json.Jsons; +import io.airbyte.db.jdbc.JdbcUtils; import java.time.Duration; import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Optional; import org.junit.jupiter.api.Test; @@ -63,4 +65,34 @@ void testGetFirstRecordWaitTime() { assertEquals(MAX_FIRST_RECORD_WAIT_TIME, PostgresUtils.getFirstRecordWaitTime(tooLongConfig)); } + @Test + public void shouldFlushAfterSync() { + final JsonNode replicationMethod = Jsons.jsonNode(ImmutableMap.builder() + .put("method", "CDC") + .put("replication_slot", "replication_slot") + .put("publication", "PUBLICATION") + .put("plugin", "pgoutput") + .put("initial_waiting_seconds", 5) + .put("lsn_commit_behaviour", "After loading Data in the destination") + .build()); + + final JsonNode config = Jsons.jsonNode(ImmutableMap.builder() + .put(JdbcUtils.HOST_KEY, "host") + .put(JdbcUtils.PORT_KEY, 5432) + .put(JdbcUtils.DATABASE_KEY, "dbName") + .put(JdbcUtils.SCHEMAS_KEY, List.of("MODELS_SCHEMA", "MODELS_SCHEMA" + "_random")) + .put(JdbcUtils.USERNAME_KEY, "user") + .put(JdbcUtils.PASSWORD_KEY, "password") + .put(JdbcUtils.SSL_KEY, false) + .put("replication_method", replicationMethod) + .build()); + assertTrue(PostgresUtils.shouldFlushAfterSync(config)); + + final JsonNode replicationMethod2 = ((ObjectNode) replicationMethod) + .put("lsn_commit_behaviour", "While reading Data"); + ((ObjectNode) config).put("replication_method", replicationMethod2); + + assertFalse(PostgresUtils.shouldFlushAfterSync(config)); + } + } From a5dd2c88f39ec95d553deb75551f6899da7b86f6 Mon Sep 17 00:00:00 2001 From: subodh Date: Thu, 15 Dec 2022 20:53:30 +0530 Subject: [PATCH 06/14] one more test --- .../internals/PostgresDebeziumStateUtil.java | 2 +- .../PostgresDebeziumStateUtilTest.java | 9 +- .../source/postgres/PostgresSource.java | 3 +- .../postgres/CdcPostgresSourceTest.java | 101 +++++++++++++++++- 4 files changed, 107 insertions(+), 8 deletions(-) diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java index 414cac52773b..94b4c773eb51 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/main/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtil.java @@ -109,7 +109,7 @@ public void commitLSNToPostgresDatabase(final JsonNode jdbcConfig, return; } - final LogSequenceNumber logSequenceNumber = Lsn.valueOf(savedOffset.getAsLong()).asLogSequenceNumber(); + final LogSequenceNumber logSequenceNumber = LogSequenceNumber.valueOf(savedOffset.getAsLong()); try (final BaseConnection pgConnection = ((BaseConnection) connection(jdbcConfig))) { validateReplicationConnection(pgConnection); diff --git a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java index c3f34b0d05fb..4855f4307e8a 100644 --- a/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java +++ b/airbyte-integrations/bases/debezium-v1-9-6/src/test/java/io/airbyte/integrations/debezium/internals/PostgresDebeziumStateUtilTest.java @@ -9,7 +9,6 @@ import io.airbyte.commons.io.IOs; import io.airbyte.commons.json.Jsons; import io.airbyte.commons.string.Strings; -import io.airbyte.db.PgLsn; import io.airbyte.db.PostgresUtils; import io.airbyte.db.factory.DataSourceFactory; import io.airbyte.db.factory.DatabaseDriver; @@ -134,7 +133,7 @@ public void emptyState() { @ParameterizedTest @ValueSource(strings = {"pgoutput", "wal2json"}) - public void test(final String plugin) throws SQLException { + public void LsnCommitTest(final String plugin) throws SQLException { final DockerImageName myImage = DockerImageName.parse("debezium/postgres:13-alpine").asCompatibleSubstituteFor("postgres"); final String dbName = Strings.addRandomSuffix("db", "_", 10).toLowerCase(); final String fullReplicationSlot = "debezium_slot" + "_" + dbName; @@ -170,9 +169,9 @@ public void test(final String plugin) throws SQLException { final Lsn lsnAtTheBeginning = Lsn.valueOf( getReplicationSlot(database, fullReplicationSlot, plugin, dbName).get("confirmed_flush_lsn").asText()); - final PgLsn targetLsn = PostgresUtils.getLsn(database); + final long targetLsn = PostgresUtils.getLsn(database).asLong(); postgresDebeziumStateUtil.commitLSNToPostgresDatabase(Jsons.jsonNode(databaseConfig), - OptionalLong.of(targetLsn.asLong()), + OptionalLong.of(targetLsn), fullReplicationSlot, publication, plugin); @@ -181,7 +180,7 @@ public void test(final String plugin) throws SQLException { getReplicationSlot(database, fullReplicationSlot, plugin, dbName).get("confirmed_flush_lsn").asText()); Assertions.assertEquals(1, lsnAfterCommit.compareTo(lsnAtTheBeginning)); - Assertions.assertEquals(targetLsn.asLong(), lsnAfterCommit.asLong()); + Assertions.assertEquals(targetLsn, lsnAfterCommit.asLong()); container.stop(); } } diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java index 1ae4498aafe4..46eb7a3bd39b 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSource.java @@ -255,7 +255,8 @@ public List>> discoverRawTables(final JdbcDa } } - private List getReplicationSlot(final JdbcDatabase database, final JsonNode config) { + @VisibleForTesting + List getReplicationSlot(final JdbcDatabase database, final JsonNode config) { try { return database.queryJsons(connection -> { final String sql = "SELECT * FROM pg_replication_slots WHERE slot_name = ? AND plugin = ? AND database = ?"; diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java index bbbb32457885..47ff987cd2e1 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java @@ -54,6 +54,7 @@ import java.util.List; import java.util.Optional; import java.util.Set; +import javax.sql.DataSource; import org.apache.kafka.connect.source.SourceRecord; import org.jooq.DSLContext; import org.jooq.SQLDialect; @@ -388,7 +389,7 @@ protected void syncShouldHandlePurgedLogsGracefully() throws Exception { } // Triggering sync with the first sync's state only which would mimic a scenario that the second - // sync failed on destination end and we didn't save state + // sync failed on destination end, and we didn't save state final AutoCloseableIterator thirdBatchIterator = getSource() .read(config, CONFIGURED_CATALOG, state); @@ -448,4 +449,102 @@ public SourceRecord sourceRecord() { assertNull(pctp.getHeartbeatPosition(null)); } + @Test + protected void syncShouldIncrementLSN() throws Exception { + final int recordsToCreate = 20; + + final DataSource dataSource = DataSourceFactory.create( + config.get(JdbcUtils.USERNAME_KEY).asText(), + config.get(JdbcUtils.PASSWORD_KEY).asText(), + DatabaseDriver.POSTGRESQL.getDriverClassName(), + String.format(DatabaseDriver.POSTGRESQL.getUrlFormatString(), + config.get(JdbcUtils.HOST_KEY).asText(), + config.get(JdbcUtils.PORT_KEY).asInt(), + config.get(JdbcUtils.DATABASE_KEY).asText())); + + final JdbcDatabase defaultJdbcDatabase = new DefaultJdbcDatabase(dataSource); + + final Long replicationSlotAtTheBeginning = PgLsn.fromPgString( + source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + + final AutoCloseableIterator firstBatchIterator = getSource() + .read(config, CONFIGURED_CATALOG, null); + final List dataFromFirstBatch = AutoCloseableIterators + .toListAndClose(firstBatchIterator); + final List stateAfterFirstBatch = extractStateMessages(dataFromFirstBatch); + + final Long replicationSlotAfterFirstSync = PgLsn.fromPgString( + source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + assertEquals(0, replicationSlotAfterFirstSync.compareTo(replicationSlotAtTheBeginning)); + + // second batch of records again 20 being created + for (int recordsCreated = 0; recordsCreated < recordsToCreate; recordsCreated++) { + final JsonNode record = + Jsons.jsonNode(ImmutableMap + .of(COL_ID, 200 + recordsCreated, COL_MAKE_ID, 1, COL_MODEL, + "F-" + recordsCreated)); + writeModelRecord(record); + } + + final JsonNode stateAfterFirstSync = Jsons.jsonNode(stateAfterFirstBatch); + final AutoCloseableIterator secondBatchIterator = getSource() + .read(config, CONFIGURED_CATALOG, stateAfterFirstSync); + final List dataFromSecondBatch = AutoCloseableIterators + .toListAndClose(secondBatchIterator); + final List stateAfterSecondBatch = extractStateMessages(dataFromSecondBatch); + assertExpectedStateMessages(stateAfterSecondBatch); + + final Long replicationSlotAfterSecondSync = PgLsn.fromPgString( + source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + assertEquals(1, replicationSlotAfterSecondSync.compareTo(replicationSlotAfterFirstSync)); + + for (int recordsCreated = 0; recordsCreated < 1; recordsCreated++) { + final JsonNode record = + Jsons.jsonNode(ImmutableMap + .of(COL_ID, 400 + recordsCreated, COL_MAKE_ID, 1, COL_MODEL, + "H-" + recordsCreated)); + writeModelRecord(record); + } + + // Triggering sync with the first sync's state only which would mimic a scenario that the second + // sync failed on destination end, and we didn't save state + final AutoCloseableIterator thirdBatchIterator = getSource() + .read(config, CONFIGURED_CATALOG, stateAfterFirstSync); + final List dataFromThirdBatch = AutoCloseableIterators + .toListAndClose(thirdBatchIterator); + + final List stateAfterThirdBatch = extractStateMessages(dataFromThirdBatch); + assertExpectedStateMessages(stateAfterThirdBatch); + final Set recordsFromThirdBatch = extractRecordMessages( + dataFromThirdBatch); + + final Long replicationSlotAfterThirdSync = PgLsn.fromPgString( + source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + assertEquals(0, replicationSlotAfterThirdSync.compareTo(replicationSlotAfterSecondSync)); + assertEquals(recordsToCreate + 1, recordsFromThirdBatch.size()); + + for (int recordsCreated = 0; recordsCreated < 1; recordsCreated++) { + final JsonNode record = + Jsons.jsonNode(ImmutableMap + .of(COL_ID, 500 + recordsCreated, COL_MAKE_ID, 1, COL_MODEL, + "H-" + recordsCreated)); + writeModelRecord(record); + } + + final AutoCloseableIterator fourthBatchIterator = getSource() + .read(config, CONFIGURED_CATALOG, Jsons.jsonNode(stateAfterThirdBatch)); + final List dataFromFourthBatch = AutoCloseableIterators + .toListAndClose(fourthBatchIterator); + + final List stateAfterFourthBatch = extractStateMessages(dataFromFourthBatch); + assertExpectedStateMessages(stateAfterFourthBatch); + final Set recordsFromFourthBatch = extractRecordMessages( + dataFromFourthBatch); + + final Long replicationSlotAfterFourthSync = PgLsn.fromPgString( + source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + assertEquals(1, replicationSlotAfterFourthSync.compareTo(replicationSlotAfterThirdSync)); + assertEquals(1, recordsFromFourthBatch.size()); + } + } From 72d6d7cd05131332c8eab3f9ab6634a793c54342 Mon Sep 17 00:00:00 2001 From: subodh Date: Mon, 19 Dec 2022 15:03:29 +0530 Subject: [PATCH 07/14] make lsn_commit_behaviour not required --- .../connectors/source-postgres/src/main/resources/spec.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json index 5022084c9376..2e0557469505 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/main/resources/spec.json @@ -235,7 +235,7 @@ { "title": "Logical Replication (CDC)", "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.", - "required": ["method", "replication_slot", "publication", "lsn_commit_behaviour"], + "required": ["method", "replication_slot", "publication"], "additionalProperties": true, "properties": { "method": { From 374f7ba33286397347fc3a78d9539bea2d160242 Mon Sep 17 00:00:00 2001 From: subodh Date: Mon, 19 Dec 2022 21:42:36 +0530 Subject: [PATCH 08/14] update expected spec --- .../src/test-integration/resources/expected_spec.json | 8 ++++++++ .../resources/expected_strict_encrypt_spec.json | 8 ++++++++ .../source-postgres/src/test/resources/expected_spec.json | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json index b8fc95b726a7..864157e3f1c5 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json @@ -270,6 +270,14 @@ "order": 5, "min": 120, "max": 1200 + }, + "lsn_commit_behaviour": { + "type": "string", + "title": "LSN commit behaviour", + "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.", + "enum": ["While reading Data", "After loading Data in the destination"], + "default": "After loading Data in the destination", + "order": 6 } } } diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json index 9733ecb52716..4ee03d65224d 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json @@ -250,6 +250,14 @@ "order": 5, "min": 120, "max": 1200 + }, + "lsn_commit_behaviour": { + "type": "string", + "title": "LSN commit behaviour", + "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.", + "enum": ["While reading Data", "After loading Data in the destination"], + "default": "After loading Data in the destination", + "order": 6 } } } diff --git a/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json b/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json index 9733ecb52716..4ee03d65224d 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/test/resources/expected_spec.json @@ -250,6 +250,14 @@ "order": 5, "min": 120, "max": 1200 + }, + "lsn_commit_behaviour": { + "type": "string", + "title": "LSN commit behaviour", + "description": "Determines when Airbtye should flush the LSN of processed WAL logs in the source database. `After loading Data in the destination` is default. If `While reading Data` is selected, in case of a downstream failure (while loading data into the destination), next sync would result in a full sync.", + "enum": ["While reading Data", "After loading Data in the destination"], + "default": "After loading Data in the destination", + "order": 6 } } } From e8e50072e89b0b604efdbbcb955a0cec6db54027 Mon Sep 17 00:00:00 2001 From: subodh Date: Tue, 20 Dec 2022 19:57:52 +0530 Subject: [PATCH 09/14] update expected spec --- .../test-integration/resources/expected_strict_encrypt_spec.json | 1 + 1 file changed, 1 insertion(+) diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json index 4ee03d65224d..d8cfad1abbc2 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_strict_encrypt_spec.json @@ -216,6 +216,7 @@ "title": "Logical Replication (CDC)", "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.", "required": ["method", "replication_slot", "publication"], + "additionalProperties": true, "properties": { "method": { "type": "string", From 36d0da4a33d1052e993255eab0e14e458133d66b Mon Sep 17 00:00:00 2001 From: subodh Date: Thu, 29 Dec 2022 00:00:33 +0530 Subject: [PATCH 10/14] update expected spec --- .../src/test-integration/resources/expected_spec.json | 1 + 1 file changed, 1 insertion(+) diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json index 864157e3f1c5..24f542b3cbeb 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/resources/expected_spec.json @@ -236,6 +236,7 @@ "title": "Logical Replication (CDC)", "description": "Logical replication uses the Postgres write-ahead log (WAL) to detect inserts, updates, and deletes. This needs to be configured on the source database itself. Only available on Postgres 10 and above. Read the docs.", "required": ["method", "replication_slot", "publication"], + "additionalProperties": true, "properties": { "method": { "type": "string", From 9bd6c24b15c941597c7418a1447d670a68eac3c9 Mon Sep 17 00:00:00 2001 From: subodh Date: Tue, 3 Jan 2023 14:08:57 +0530 Subject: [PATCH 11/14] PR comments --- .../integrations/source/postgres/CdcPostgresSourceTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java index 241d829797be..c019f11f802e 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java @@ -475,7 +475,7 @@ protected void syncShouldIncrementLSN() throws Exception { final Long replicationSlotAfterFirstSync = PgLsn.fromPgString( source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); - assertEquals(0, replicationSlotAfterFirstSync.compareTo(replicationSlotAtTheBeginning)); + assertEquals(replicationSlotAtTheBeginning, replicationSlotAfterFirstSync); // second batch of records again 20 being created for (int recordsCreated = 0; recordsCreated < recordsToCreate; recordsCreated++) { @@ -520,7 +520,7 @@ protected void syncShouldIncrementLSN() throws Exception { final Long replicationSlotAfterThirdSync = PgLsn.fromPgString( source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); - assertEquals(0, replicationSlotAfterThirdSync.compareTo(replicationSlotAfterSecondSync)); + assertEquals(replicationSlotAfterSecondSync, replicationSlotAfterThirdSync); assertEquals(recordsToCreate + 1, recordsFromThirdBatch.size()); for (int recordsCreated = 0; recordsCreated < 1; recordsCreated++) { From 64625e591d7ea811db3f1332be9d8d208699cc04 Mon Sep 17 00:00:00 2001 From: subodh Date: Tue, 3 Jan 2023 14:13:57 +0530 Subject: [PATCH 12/14] PR comments --- .../source/postgres/CdcPostgresSourceTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java index c019f11f802e..87e630da75ae 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test/java/io/airbyte/integrations/source/postgres/CdcPostgresSourceTest.java @@ -475,6 +475,8 @@ protected void syncShouldIncrementLSN() throws Exception { final Long replicationSlotAfterFirstSync = PgLsn.fromPgString( source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + + // First sync should not make any change to the replication slot status assertEquals(replicationSlotAtTheBeginning, replicationSlotAfterFirstSync); // second batch of records again 20 being created @@ -496,6 +498,8 @@ protected void syncShouldIncrementLSN() throws Exception { final Long replicationSlotAfterSecondSync = PgLsn.fromPgString( source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + + // Second sync should move the replication slot ahead assertEquals(1, replicationSlotAfterSecondSync.compareTo(replicationSlotAfterFirstSync)); for (int recordsCreated = 0; recordsCreated < 1; recordsCreated++) { @@ -520,6 +524,8 @@ protected void syncShouldIncrementLSN() throws Exception { final Long replicationSlotAfterThirdSync = PgLsn.fromPgString( source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + + // Since we used the state, no change should happen to the replication slot assertEquals(replicationSlotAfterSecondSync, replicationSlotAfterThirdSync); assertEquals(recordsToCreate + 1, recordsFromThirdBatch.size()); @@ -543,6 +549,8 @@ protected void syncShouldIncrementLSN() throws Exception { final Long replicationSlotAfterFourthSync = PgLsn.fromPgString( source.getReplicationSlot(defaultJdbcDatabase, config).get(0).get("confirmed_flush_lsn").asText()).asLong(); + + // Fourth sync should again move the replication slot ahead assertEquals(1, replicationSlotAfterFourthSync.compareTo(replicationSlotAfterThirdSync)); assertEquals(1, recordsFromFourthBatch.size()); } From 2a2c1ed89f88650ca39d4ae04190c7f054664705 Mon Sep 17 00:00:00 2001 From: subodh Date: Wed, 4 Jan 2023 10:51:14 +0530 Subject: [PATCH 13/14] upgrade version --- .../source-postgres-strict-encrypt/Dockerfile | 2 +- .../connectors/source-postgres/Dockerfile | 2 +- docs/integrations/sources/postgres.md | 233 +++++++++--------- 3 files changed, 119 insertions(+), 118 deletions(-) diff --git a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile index d2c1a6dda415..f7c9b147afed 100644 --- a/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile +++ b/airbyte-integrations/connectors/source-postgres-strict-encrypt/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-postgres-strict-encrypt COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=1.0.34 +LABEL io.airbyte.version=1.0.35 LABEL io.airbyte.name=airbyte/source-postgres-strict-encrypt diff --git a/airbyte-integrations/connectors/source-postgres/Dockerfile b/airbyte-integrations/connectors/source-postgres/Dockerfile index 1ec5edecc4c6..793e460515a3 100644 --- a/airbyte-integrations/connectors/source-postgres/Dockerfile +++ b/airbyte-integrations/connectors/source-postgres/Dockerfile @@ -16,5 +16,5 @@ ENV APPLICATION source-postgres COPY --from=build /airbyte /airbyte -LABEL io.airbyte.version=1.0.34 +LABEL io.airbyte.version=1.0.35 LABEL io.airbyte.name=airbyte/source-postgres diff --git a/docs/integrations/sources/postgres.md b/docs/integrations/sources/postgres.md index 25b140f0feda..acb541a3ccd2 100644 --- a/docs/integrations/sources/postgres.md +++ b/docs/integrations/sources/postgres.md @@ -409,120 +409,121 @@ The root causes is that the WALs needed for the incremental sync has been remove ## Changelog -| Version | Date | Pull Request | Subject | -|:--------|:-----------|:---------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 1.0.34 | 2022-12-13 | [20378](https://github.com/airbytehq/airbyte/pull/20378) | Improve descriptions | -| 1.0.33 | 2022-12-12 | [18959](https://github.com/airbytehq/airbyte/pull/18959) | CDC : Don't timeout if snapshot is not complete. | -| 1.0.32 | 2022-12-12 | [20192](https://github.com/airbytehq/airbyte/pull/20192) | Only throw a warning if cursor column contains null values. | -| 1.0.31 | 2022-12-02 | [19889](https://github.com/airbytehq/airbyte/pull/19889) | Check before each sync and stop if an incremental sync cursor column contains a null value. | -| | 2022-12-02 | [19985](https://github.com/airbytehq/airbyte/pull/19985) | Reenable incorrectly-disabled `wal2json` CDC plugin | -| 1.0.30 | 2022-11-29 | [19024](https://github.com/airbytehq/airbyte/pull/19024) | Skip tables from schema where user do not have Usage permission during discovery. | -| 1.0.29 | 2022-11-29 | [19623](https://github.com/airbytehq/airbyte/pull/19623) | Mark PSQLException related to using replica that is configured as a hot standby server as config error. | -| 1.0.28 | 2022-11-28 | [19514](https://github.com/airbytehq/airbyte/pull/19514) | Adjust batch selection memory limits databases. | -| 1.0.27 | 2022-11-28 | [16990](https://github.com/airbytehq/airbyte/pull/16990) | Handle arrays data types | -| 1.0.26 | 2022-11-18 | [19551](https://github.com/airbytehq/airbyte/pull/19551) | Fixes bug with ssl modes | -| 1.0.25 | 2022-11-16 | [19004](https://github.com/airbytehq/airbyte/pull/19004) | Use Debezium heartbeats to improve CDC replication of large databases. | -| 1.0.24 | 2022-11-07 | [19291](https://github.com/airbytehq/airbyte/pull/19291) | Default timeout is reduced from 1 min to 10sec | -| 1.0.23 | 2022-11-07 | [19025](https://github.com/airbytehq/airbyte/pull/19025) | Stop enforce SSL if ssl mode is disabled | -| 1.0.22 | 2022-10-31 | [18538](https://github.com/airbytehq/airbyte/pull/18538) | Encode database name | -| 1.0.21 | 2022-10-25 | [18256](https://github.com/airbytehq/airbyte/pull/18256) | Disable allow and prefer ssl modes in CDC mode | -| 1.0.20 | 2022-10-25 | [18383](https://github.com/airbytehq/airbyte/pull/18383) | Better SSH error handling + messages | -| 1.0.19 | 2022-10-21 | [18263](https://github.com/airbytehq/airbyte/pull/18263) | Fixes bug introduced in [15833](https://github.com/airbytehq/airbyte/pull/15833) and adds better error messaging for SSH tunnel in Destinations | -| 1.0.18 | 2022-10-19 | [18087](https://github.com/airbytehq/airbyte/pull/18087) | Better error messaging for configuration errors (SSH configs, choosing an invalid cursor) | -| 1.0.17 | 2022-10-17 | [18041](https://github.com/airbytehq/airbyte/pull/18041) | Fixes bug introduced 2022-09-12 with SshTunnel, handles iterator exception properly | -| 1.0.16 | 2022-10-13 | [15535](https://github.com/airbytehq/airbyte/pull/16238) | Update incremental query to avoid data missing when new data is inserted at the same time as a sync starts under non-CDC incremental mode | -| 1.0.15 | 2022-10-11 | [17782](https://github.com/airbytehq/airbyte/pull/17782) | Handle 24:00:00 value for Time column | -| 1.0.14 | 2022-10-03 | [17515](https://github.com/airbytehq/airbyte/pull/17515) | Fix an issue preventing connection using client certificate | -| 1.0.13 | 2022-10-01 | [17459](https://github.com/airbytehq/airbyte/pull/17459) | Upgrade debezium version to 1.9.6 from 1.9.2 | -| 1.0.12 | 2022-09-27 | [17299](https://github.com/airbytehq/airbyte/pull/17299) | Improve error handling for strict-encrypt postgres source | -| 1.0.11 | 2022-09-26 | [17131](https://github.com/airbytehq/airbyte/pull/17131) | Allow nullable columns to be used as cursor | -| 1.0.10 | 2022-09-14 | [15668](https://github.com/airbytehq/airbyte/pull/15668) | Wrap logs in AirbyteLogMessage | -| 1.0.9 | 2022-09-13 | [16657](https://github.com/airbytehq/airbyte/pull/16657) | Improve CDC record queueing performance | -| 1.0.8 | 2022-09-08 | [16202](https://github.com/airbytehq/airbyte/pull/16202) | Adds error messaging factory to UI | -| 1.0.7 | 2022-08-30 | [16114](https://github.com/airbytehq/airbyte/pull/16114) | Prevent traffic going on an unsecured channel in strict-encryption version of source postgres | -| 1.0.6 | 2022-08-30 | [16138](https://github.com/airbytehq/airbyte/pull/16138) | Remove unnecessary logging | -| 1.0.5 | 2022-08-25 | [15993](https://github.com/airbytehq/airbyte/pull/15993) | Add support for connection over SSL in CDC mode | -| 1.0.4 | 2022-08-23 | [15877](https://github.com/airbytehq/airbyte/pull/15877) | Fix temporal data type bug which was causing failure in CDC mode | -| 1.0.3 | 2022-08-18 | [14356](https://github.com/airbytehq/airbyte/pull/14356) | DB Sources: only show a table can sync incrementally if at least one column can be used as a cursor field | -| 1.0.2 | 2022-08-11 | [15538](https://github.com/airbytehq/airbyte/pull/15538) | Allow additional properties in db stream state | -| 1.0.1 | 2022-08-10 | [15496](https://github.com/airbytehq/airbyte/pull/15496) | Fix state emission in incremental sync | -| | 2022-08-10 | [15481](https://github.com/airbytehq/airbyte/pull/15481) | Fix data handling from WAL logs in CDC mode | -| 1.0.0 | 2022-08-05 | [15380](https://github.com/airbytehq/airbyte/pull/15380) | Change connector label to generally_available (requires [upgrading](https://docs.airbyte.com/operator-guides/upgrading-airbyte/) your Airbyte platform to `v0.40.0-alpha`) | -| 0.4.44 | 2022-08-05 | [15342](https://github.com/airbytehq/airbyte/pull/15342) | Adjust titles and descriptions in spec.json | -| 0.4.43 | 2022-08-03 | [15226](https://github.com/airbytehq/airbyte/pull/15226) | Make connectionTimeoutMs configurable through JDBC url parameters | -| 0.4.42 | 2022-08-03 | [15273](https://github.com/airbytehq/airbyte/pull/15273) | Fix a bug in `0.4.36` and correctly parse the CDC initial record waiting time | -| 0.4.41 | 2022-08-03 | [15077](https://github.com/airbytehq/airbyte/pull/15077) | Sync data from beginning if the LSN is no longer valid in CDC | -| | 2022-08-03 | [14903](https://github.com/airbytehq/airbyte/pull/14903) | Emit state messages more frequently (⛔ this version has a bug; use `1.0.1` instead) | -| 0.4.40 | 2022-08-03 | [15187](https://github.com/airbytehq/airbyte/pull/15187) | Add support for BCE dates/timestamps | -| | 2022-08-03 | [14534](https://github.com/airbytehq/airbyte/pull/14534) | Align regular and CDC integration tests and data mappers | -| 0.4.39 | 2022-08-02 | [14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings | -| 0.4.38 | 2022-07-26 | [14362](https://github.com/airbytehq/airbyte/pull/14362) | Integral columns are now discovered as int64 fields. | -| 0.4.37 | 2022-07-22 | [14714](https://github.com/airbytehq/airbyte/pull/14714) | Clarified error message when invalid cursor column selected | -| 0.4.36 | 2022-07-21 | [14451](https://github.com/airbytehq/airbyte/pull/14451) | Make initial CDC waiting time configurable (⛔ this version has a bug and will not work; use `0.4.42` instead) | -| 0.4.35 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | -| 0.4.34 | 2022-07-17 | [13840](https://github.com/airbytehq/airbyte/pull/13840) | Added the ability to connect using different SSL modes and SSL certificates. | -| 0.4.33 | 2022-07-14 | [14586](https://github.com/airbytehq/airbyte/pull/14586) | Validate source JDBC url parameters | -| 0.4.32 | 2022-07-07 | [14694](https://github.com/airbytehq/airbyte/pull/14694) | Force to produce LEGACY state if the use stream capable feature flag is set to false | -| 0.4.31 | 2022-07-07 | [14447](https://github.com/airbytehq/airbyte/pull/14447) | Under CDC mode, retrieve only those tables included in the publications | -| 0.4.30 | 2022-06-30 | [14251](https://github.com/airbytehq/airbyte/pull/14251) | Use more simple and comprehensive query to get selectable tables | -| 0.4.29 | 2022-06-29 | [14265](https://github.com/airbytehq/airbyte/pull/14265) | Upgrade postgresql JDBC version to 42.3.5 | -| 0.4.28 | 2022-06-23 | [14077](https://github.com/airbytehq/airbyte/pull/14077) | Use the new state management | -| 0.4.26 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | -| 0.4.25 | 2022-06-15 | [13823](https://github.com/airbytehq/airbyte/pull/13823) | Publish adaptive postgres source that enforces ssl on cloud + Debezium version upgrade to 1.9.2 from 1.4.2 | -| 0.4.24 | 2022-06-14 | [13549](https://github.com/airbytehq/airbyte/pull/13549) | Fixed truncated precision if the value of microseconds or seconds is 0 | -| 0.4.23 | 2022-06-13 | [13655](https://github.com/airbytehq/airbyte/pull/13745) | Fixed handling datetime cursors when upgrading from older versions of the connector | -| 0.4.22 | 2022-06-09 | [13655](https://github.com/airbytehq/airbyte/pull/13655) | Fixed bug with unsupported date-time datatypes during incremental sync | -| 0.4.21 | 2022-06-06 | [13435](https://github.com/airbytehq/airbyte/pull/13435) | Adjust JDBC fetch size based on max memory and max row size | -| 0.4.20 | 2022-06-02 | [13367](https://github.com/airbytehq/airbyte/pull/13367) | Added convertion hstore to json format | -| 0.4.19 | 2022-05-25 | [13166](https://github.com/airbytehq/airbyte/pull/13166) | Added timezone awareness and handle BC dates | -| 0.4.18 | 2022-05-25 | [13083](https://github.com/airbytehq/airbyte/pull/13083) | Add support for tsquey type | -| 0.4.17 | 2022-05-19 | [13016](https://github.com/airbytehq/airbyte/pull/13016) | CDC modify schema to allow null values | -| 0.4.16 | 2022-05-14 | [12840](https://github.com/airbytehq/airbyte/pull/12840) | Added custom JDBC parameters field | -| 0.4.15 | 2022-05-13 | [12834](https://github.com/airbytehq/airbyte/pull/12834) | Fix the bug that the connector returns empty catalog for Azure Postgres database | -| 0.4.14 | 2022-05-08 | [12689](https://github.com/airbytehq/airbyte/pull/12689) | Add table retrieval according to role-based `SELECT` privilege | -| 0.4.13 | 2022-05-05 | [10230](https://github.com/airbytehq/airbyte/pull/10230) | Explicitly set null value for field in json | -| 0.4.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | -| 0.4.11 | 2022-04-11 | [11729](https://github.com/airbytehq/airbyte/pull/11729) | Bump mina-sshd from 2.7.0 to 2.8.0 | -| 0.4.10 | 2022-04-08 | [11798](https://github.com/airbytehq/airbyte/pull/11798) | Fixed roles for fetching materialized view processing | -| 0.4.8 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats | -| 0.4.7 | 2022-02-18 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Updated timestamp transformation with microseconds | -| 0.4.6 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | (unpublished) Add `-XX:+ExitOnOutOfMemoryError` JVM option | -| 0.4.5 | 2022-02-08 | [10173](https://github.com/airbytehq/airbyte/pull/10173) | Improved discovering tables in case if user does not have permissions to any table | -| 0.4.4 | 2022-01-26 | [9807](https://github.com/airbytehq/airbyte/pull/9807) | Update connector fields title/description | -| 0.4.3 | 2022-01-24 | [9554](https://github.com/airbytehq/airbyte/pull/9554) | Allow handling of java sql date in CDC | -| 0.4.2 | 2022-01-13 | [9360](https://github.com/airbytehq/airbyte/pull/9360) | Added schema selection | -| 0.4.1 | 2022-01-05 | [9116](https://github.com/airbytehq/airbyte/pull/9116) | Added materialized views processing | -| 0.4.0 | 2021-12-13 | [8726](https://github.com/airbytehq/airbyte/pull/8726) | Support all Postgres types | -| 0.3.17 | 2021-12-01 | [8371](https://github.com/airbytehq/airbyte/pull/8371) | Fixed incorrect handling "\n" in ssh key | -| 0.3.16 | 2021-11-28 | [7995](https://github.com/airbytehq/airbyte/pull/7995) | Fixed money type with amount > 1000 | -| 0.3.15 | 2021-11-26 | [8066](https://github.com/airbytehq/airbyte/pull/8266) | Fixed the case, when Views are not listed during schema discovery | -| 0.3.14 | 2021-11-17 | [8010](https://github.com/airbytehq/airbyte/pull/8010) | Added checking of privileges before table internal discovery | -| 0.3.13 | 2021-10-26 | [7339](https://github.com/airbytehq/airbyte/pull/7339) | Support or improve support for Interval, Money, Date, various geometric data types, inventory_items, and others | -| 0.3.12 | 2021-09-30 | [6585](https://github.com/airbytehq/airbyte/pull/6585) | Improved SSH Tunnel key generation steps | -| 0.3.11 | 2021-09-02 | [5742](https://github.com/airbytehq/airbyte/pull/5742) | Add SSH Tunnel support | -| 0.3.9 | 2021-08-17 | [5304](https://github.com/airbytehq/airbyte/pull/5304) | Fix CDC OOM issue | -| 0.3.8 | 2021-08-13 | [4699](https://github.com/airbytehq/airbyte/pull/4699) | Added json config validator | -| 0.3.4 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add `AIRBYTE_ENTRYPOINT` for Kubernetes support | -| 0.3.3 | 2021-06-08 | [3960](https://github.com/airbytehq/airbyte/pull/3960) | Add method field in specification parameters | -| 0.3.2 | 2021-05-26 | [3179](https://github.com/airbytehq/airbyte/pull/3179) | Remove `isCDC` logging | -| 0.3.1 | 2021-04-21 | [2878](https://github.com/airbytehq/airbyte/pull/2878) | Set defined cursor for CDC | -| 0.3.0 | 2021-04-21 | [2990](https://github.com/airbytehq/airbyte/pull/2990) | Support namespaces | -| 0.2.7 | 2021-04-16 | [2923](https://github.com/airbytehq/airbyte/pull/2923) | SSL spec as optional | -| 0.2.6 | 2021-04-16 | [2757](https://github.com/airbytehq/airbyte/pull/2757) | Support SSL connection | -| 0.2.5 | 2021-04-12 | [2859](https://github.com/airbytehq/airbyte/pull/2859) | CDC bugfix | -| 0.2.4 | 2021-04-09 | [2548](https://github.com/airbytehq/airbyte/pull/2548) | Support CDC | -| 0.2.3 | 2021-03-28 | [2600](https://github.com/airbytehq/airbyte/pull/2600) | Add NCHAR and NVCHAR support to DB and cursor type casting | -| 0.2.2 | 2021-03-26 | [2460](https://github.com/airbytehq/airbyte/pull/2460) | Destination supports destination sync mode | -| 0.2.1 | 2021-03-18 | [2488](https://github.com/airbytehq/airbyte/pull/2488) | Sources support primary keys | -| 0.2.0 | 2021-03-09 | [2238](https://github.com/airbytehq/airbyte/pull/2238) | Protocol allows future/unknown properties | -| 0.1.13 | 2021-02-02 | [1887](https://github.com/airbytehq/airbyte/pull/1887) | Migrate AbstractJdbcSource to use iterators | -| 0.1.12 | 2021-01-25 | [1746](https://github.com/airbytehq/airbyte/pull/1746) | Fix NPE in State Decorator | -| 0.1.11 | 2021-01-25 | [1765](https://github.com/airbytehq/airbyte/pull/1765) | Add field titles to specification | -| 0.1.10 | 2021-01-19 | [1724](https://github.com/airbytehq/airbyte/pull/1724) | Fix JdbcSource handling of tables with same names in different schemas | -| 0.1.9 | 2021-01-14 | [1655](https://github.com/airbytehq/airbyte/pull/1655) | Fix JdbcSource OOM | -| 0.1.8 | 2021-01-13 | [1588](https://github.com/airbytehq/airbyte/pull/1588) | Handle invalid numeric values in JDBC source | -| 0.1.7 | 2021-01-08 | [1307](https://github.com/airbytehq/airbyte/pull/1307) | Migrate Postgres and MySql to use new JdbcSource | -| 0.1.6 | 2020-12-09 | [1172](https://github.com/airbytehq/airbyte/pull/1172) | Support incremental sync | -| 0.1.5 | 2020-11-30 | [1038](https://github.com/airbytehq/airbyte/pull/1038) | Change JDBC sources to discover more than standard schemas | -| 0.1.4 | 2020-11-30 | [1046](https://github.com/airbytehq/airbyte/pull/1046) | Add connectors using an index YAML file | +| Version | Date | Pull Request | Subject | +|:--------|:-----------|:----------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 1.0.35 | 2023-01-04 | [20469](https://github.com/airbytehq/airbyte/pull/20469) | Introduce feature to make LSN commit behaviour configurable. | +| 1.0.34 | 2022-12-13 | [20378](https://github.com/airbytehq/airbyte/pull/20378) | Improve descriptions | +| 1.0.33 | 2022-12-12 | [18959](https://github.com/airbytehq/airbyte/pull/18959) | CDC : Don't timeout if snapshot is not complete. | +| 1.0.32 | 2022-12-12 | [20192](https://github.com/airbytehq/airbyte/pull/20192) | Only throw a warning if cursor column contains null values. | +| 1.0.31 | 2022-12-02 | [19889](https://github.com/airbytehq/airbyte/pull/19889) | Check before each sync and stop if an incremental sync cursor column contains a null value. | +| | 2022-12-02 | [19985](https://github.com/airbytehq/airbyte/pull/19985) | Reenable incorrectly-disabled `wal2json` CDC plugin | +| 1.0.30 | 2022-11-29 | [19024](https://github.com/airbytehq/airbyte/pull/19024) | Skip tables from schema where user do not have Usage permission during discovery. | +| 1.0.29 | 2022-11-29 | [19623](https://github.com/airbytehq/airbyte/pull/19623) | Mark PSQLException related to using replica that is configured as a hot standby server as config error. | +| 1.0.28 | 2022-11-28 | [19514](https://github.com/airbytehq/airbyte/pull/19514) | Adjust batch selection memory limits databases. | +| 1.0.27 | 2022-11-28 | [16990](https://github.com/airbytehq/airbyte/pull/16990) | Handle arrays data types | +| 1.0.26 | 2022-11-18 | [19551](https://github.com/airbytehq/airbyte/pull/19551) | Fixes bug with ssl modes | +| 1.0.25 | 2022-11-16 | [19004](https://github.com/airbytehq/airbyte/pull/19004) | Use Debezium heartbeats to improve CDC replication of large databases. | +| 1.0.24 | 2022-11-07 | [19291](https://github.com/airbytehq/airbyte/pull/19291) | Default timeout is reduced from 1 min to 10sec | +| 1.0.23 | 2022-11-07 | [19025](https://github.com/airbytehq/airbyte/pull/19025) | Stop enforce SSL if ssl mode is disabled | +| 1.0.22 | 2022-10-31 | [18538](https://github.com/airbytehq/airbyte/pull/18538) | Encode database name | +| 1.0.21 | 2022-10-25 | [18256](https://github.com/airbytehq/airbyte/pull/18256) | Disable allow and prefer ssl modes in CDC mode | +| 1.0.20 | 2022-10-25 | [18383](https://github.com/airbytehq/airbyte/pull/18383) | Better SSH error handling + messages | +| 1.0.19 | 2022-10-21 | [18263](https://github.com/airbytehq/airbyte/pull/18263) | Fixes bug introduced in [15833](https://github.com/airbytehq/airbyte/pull/15833) and adds better error messaging for SSH tunnel in Destinations | +| 1.0.18 | 2022-10-19 | [18087](https://github.com/airbytehq/airbyte/pull/18087) | Better error messaging for configuration errors (SSH configs, choosing an invalid cursor) | +| 1.0.17 | 2022-10-17 | [18041](https://github.com/airbytehq/airbyte/pull/18041) | Fixes bug introduced 2022-09-12 with SshTunnel, handles iterator exception properly | +| 1.0.16 | 2022-10-13 | [15535](https://github.com/airbytehq/airbyte/pull/16238) | Update incremental query to avoid data missing when new data is inserted at the same time as a sync starts under non-CDC incremental mode | +| 1.0.15 | 2022-10-11 | [17782](https://github.com/airbytehq/airbyte/pull/17782) | Handle 24:00:00 value for Time column | +| 1.0.14 | 2022-10-03 | [17515](https://github.com/airbytehq/airbyte/pull/17515) | Fix an issue preventing connection using client certificate | +| 1.0.13 | 2022-10-01 | [17459](https://github.com/airbytehq/airbyte/pull/17459) | Upgrade debezium version to 1.9.6 from 1.9.2 | +| 1.0.12 | 2022-09-27 | [17299](https://github.com/airbytehq/airbyte/pull/17299) | Improve error handling for strict-encrypt postgres source | +| 1.0.11 | 2022-09-26 | [17131](https://github.com/airbytehq/airbyte/pull/17131) | Allow nullable columns to be used as cursor | +| 1.0.10 | 2022-09-14 | [15668](https://github.com/airbytehq/airbyte/pull/15668) | Wrap logs in AirbyteLogMessage | +| 1.0.9 | 2022-09-13 | [16657](https://github.com/airbytehq/airbyte/pull/16657) | Improve CDC record queueing performance | +| 1.0.8 | 2022-09-08 | [16202](https://github.com/airbytehq/airbyte/pull/16202) | Adds error messaging factory to UI | +| 1.0.7 | 2022-08-30 | [16114](https://github.com/airbytehq/airbyte/pull/16114) | Prevent traffic going on an unsecured channel in strict-encryption version of source postgres | +| 1.0.6 | 2022-08-30 | [16138](https://github.com/airbytehq/airbyte/pull/16138) | Remove unnecessary logging | +| 1.0.5 | 2022-08-25 | [15993](https://github.com/airbytehq/airbyte/pull/15993) | Add support for connection over SSL in CDC mode | +| 1.0.4 | 2022-08-23 | [15877](https://github.com/airbytehq/airbyte/pull/15877) | Fix temporal data type bug which was causing failure in CDC mode | +| 1.0.3 | 2022-08-18 | [14356](https://github.com/airbytehq/airbyte/pull/14356) | DB Sources: only show a table can sync incrementally if at least one column can be used as a cursor field | +| 1.0.2 | 2022-08-11 | [15538](https://github.com/airbytehq/airbyte/pull/15538) | Allow additional properties in db stream state | +| 1.0.1 | 2022-08-10 | [15496](https://github.com/airbytehq/airbyte/pull/15496) | Fix state emission in incremental sync | +| | 2022-08-10 | [15481](https://github.com/airbytehq/airbyte/pull/15481) | Fix data handling from WAL logs in CDC mode | +| 1.0.0 | 2022-08-05 | [15380](https://github.com/airbytehq/airbyte/pull/15380) | Change connector label to generally_available (requires [upgrading](https://docs.airbyte.com/operator-guides/upgrading-airbyte/) your Airbyte platform to `v0.40.0-alpha`) | +| 0.4.44 | 2022-08-05 | [15342](https://github.com/airbytehq/airbyte/pull/15342) | Adjust titles and descriptions in spec.json | +| 0.4.43 | 2022-08-03 | [15226](https://github.com/airbytehq/airbyte/pull/15226) | Make connectionTimeoutMs configurable through JDBC url parameters | +| 0.4.42 | 2022-08-03 | [15273](https://github.com/airbytehq/airbyte/pull/15273) | Fix a bug in `0.4.36` and correctly parse the CDC initial record waiting time | +| 0.4.41 | 2022-08-03 | [15077](https://github.com/airbytehq/airbyte/pull/15077) | Sync data from beginning if the LSN is no longer valid in CDC | +| | 2022-08-03 | [14903](https://github.com/airbytehq/airbyte/pull/14903) | Emit state messages more frequently (⛔ this version has a bug; use `1.0.1` instead) | +| 0.4.40 | 2022-08-03 | [15187](https://github.com/airbytehq/airbyte/pull/15187) | Add support for BCE dates/timestamps | +| | 2022-08-03 | [14534](https://github.com/airbytehq/airbyte/pull/14534) | Align regular and CDC integration tests and data mappers | +| 0.4.39 | 2022-08-02 | [14801](https://github.com/airbytehq/airbyte/pull/14801) | Fix multiple log bindings | +| 0.4.38 | 2022-07-26 | [14362](https://github.com/airbytehq/airbyte/pull/14362) | Integral columns are now discovered as int64 fields. | +| 0.4.37 | 2022-07-22 | [14714](https://github.com/airbytehq/airbyte/pull/14714) | Clarified error message when invalid cursor column selected | +| 0.4.36 | 2022-07-21 | [14451](https://github.com/airbytehq/airbyte/pull/14451) | Make initial CDC waiting time configurable (⛔ this version has a bug and will not work; use `0.4.42` instead) | +| 0.4.35 | 2022-07-14 | [14574](https://github.com/airbytehq/airbyte/pull/14574) | Removed additionalProperties:false from JDBC source connectors | +| 0.4.34 | 2022-07-17 | [13840](https://github.com/airbytehq/airbyte/pull/13840) | Added the ability to connect using different SSL modes and SSL certificates. | +| 0.4.33 | 2022-07-14 | [14586](https://github.com/airbytehq/airbyte/pull/14586) | Validate source JDBC url parameters | +| 0.4.32 | 2022-07-07 | [14694](https://github.com/airbytehq/airbyte/pull/14694) | Force to produce LEGACY state if the use stream capable feature flag is set to false | +| 0.4.31 | 2022-07-07 | [14447](https://github.com/airbytehq/airbyte/pull/14447) | Under CDC mode, retrieve only those tables included in the publications | +| 0.4.30 | 2022-06-30 | [14251](https://github.com/airbytehq/airbyte/pull/14251) | Use more simple and comprehensive query to get selectable tables | +| 0.4.29 | 2022-06-29 | [14265](https://github.com/airbytehq/airbyte/pull/14265) | Upgrade postgresql JDBC version to 42.3.5 | +| 0.4.28 | 2022-06-23 | [14077](https://github.com/airbytehq/airbyte/pull/14077) | Use the new state management | +| 0.4.26 | 2022-06-17 | [13864](https://github.com/airbytehq/airbyte/pull/13864) | Updated stacktrace format for any trace message errors | +| 0.4.25 | 2022-06-15 | [13823](https://github.com/airbytehq/airbyte/pull/13823) | Publish adaptive postgres source that enforces ssl on cloud + Debezium version upgrade to 1.9.2 from 1.4.2 | +| 0.4.24 | 2022-06-14 | [13549](https://github.com/airbytehq/airbyte/pull/13549) | Fixed truncated precision if the value of microseconds or seconds is 0 | +| 0.4.23 | 2022-06-13 | [13655](https://github.com/airbytehq/airbyte/pull/13745) | Fixed handling datetime cursors when upgrading from older versions of the connector | +| 0.4.22 | 2022-06-09 | [13655](https://github.com/airbytehq/airbyte/pull/13655) | Fixed bug with unsupported date-time datatypes during incremental sync | +| 0.4.21 | 2022-06-06 | [13435](https://github.com/airbytehq/airbyte/pull/13435) | Adjust JDBC fetch size based on max memory and max row size | +| 0.4.20 | 2022-06-02 | [13367](https://github.com/airbytehq/airbyte/pull/13367) | Added convertion hstore to json format | +| 0.4.19 | 2022-05-25 | [13166](https://github.com/airbytehq/airbyte/pull/13166) | Added timezone awareness and handle BC dates | +| 0.4.18 | 2022-05-25 | [13083](https://github.com/airbytehq/airbyte/pull/13083) | Add support for tsquey type | +| 0.4.17 | 2022-05-19 | [13016](https://github.com/airbytehq/airbyte/pull/13016) | CDC modify schema to allow null values | +| 0.4.16 | 2022-05-14 | [12840](https://github.com/airbytehq/airbyte/pull/12840) | Added custom JDBC parameters field | +| 0.4.15 | 2022-05-13 | [12834](https://github.com/airbytehq/airbyte/pull/12834) | Fix the bug that the connector returns empty catalog for Azure Postgres database | +| 0.4.14 | 2022-05-08 | [12689](https://github.com/airbytehq/airbyte/pull/12689) | Add table retrieval according to role-based `SELECT` privilege | +| 0.4.13 | 2022-05-05 | [10230](https://github.com/airbytehq/airbyte/pull/10230) | Explicitly set null value for field in json | +| 0.4.12 | 2022-04-29 | [12480](https://github.com/airbytehq/airbyte/pull/12480) | Query tables with adaptive fetch size to optimize JDBC memory consumption | +| 0.4.11 | 2022-04-11 | [11729](https://github.com/airbytehq/airbyte/pull/11729) | Bump mina-sshd from 2.7.0 to 2.8.0 | +| 0.4.10 | 2022-04-08 | [11798](https://github.com/airbytehq/airbyte/pull/11798) | Fixed roles for fetching materialized view processing | +| 0.4.8 | 2022-02-21 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Fixed cursor for old connectors that use non-microsecond format. Now connectors work with both formats | +| 0.4.7 | 2022-02-18 | [10242](https://github.com/airbytehq/airbyte/pull/10242) | Updated timestamp transformation with microseconds | +| 0.4.6 | 2022-02-14 | [10256](https://github.com/airbytehq/airbyte/pull/10256) | (unpublished) Add `-XX:+ExitOnOutOfMemoryError` JVM option | +| 0.4.5 | 2022-02-08 | [10173](https://github.com/airbytehq/airbyte/pull/10173) | Improved discovering tables in case if user does not have permissions to any table | +| 0.4.4 | 2022-01-26 | [9807](https://github.com/airbytehq/airbyte/pull/9807) | Update connector fields title/description | +| 0.4.3 | 2022-01-24 | [9554](https://github.com/airbytehq/airbyte/pull/9554) | Allow handling of java sql date in CDC | +| 0.4.2 | 2022-01-13 | [9360](https://github.com/airbytehq/airbyte/pull/9360) | Added schema selection | +| 0.4.1 | 2022-01-05 | [9116](https://github.com/airbytehq/airbyte/pull/9116) | Added materialized views processing | +| 0.4.0 | 2021-12-13 | [8726](https://github.com/airbytehq/airbyte/pull/8726) | Support all Postgres types | +| 0.3.17 | 2021-12-01 | [8371](https://github.com/airbytehq/airbyte/pull/8371) | Fixed incorrect handling "\n" in ssh key | +| 0.3.16 | 2021-11-28 | [7995](https://github.com/airbytehq/airbyte/pull/7995) | Fixed money type with amount > 1000 | +| 0.3.15 | 2021-11-26 | [8066](https://github.com/airbytehq/airbyte/pull/8266) | Fixed the case, when Views are not listed during schema discovery | +| 0.3.14 | 2021-11-17 | [8010](https://github.com/airbytehq/airbyte/pull/8010) | Added checking of privileges before table internal discovery | +| 0.3.13 | 2021-10-26 | [7339](https://github.com/airbytehq/airbyte/pull/7339) | Support or improve support for Interval, Money, Date, various geometric data types, inventory_items, and others | +| 0.3.12 | 2021-09-30 | [6585](https://github.com/airbytehq/airbyte/pull/6585) | Improved SSH Tunnel key generation steps | +| 0.3.11 | 2021-09-02 | [5742](https://github.com/airbytehq/airbyte/pull/5742) | Add SSH Tunnel support | +| 0.3.9 | 2021-08-17 | [5304](https://github.com/airbytehq/airbyte/pull/5304) | Fix CDC OOM issue | +| 0.3.8 | 2021-08-13 | [4699](https://github.com/airbytehq/airbyte/pull/4699) | Added json config validator | +| 0.3.4 | 2021-06-09 | [3973](https://github.com/airbytehq/airbyte/pull/3973) | Add `AIRBYTE_ENTRYPOINT` for Kubernetes support | +| 0.3.3 | 2021-06-08 | [3960](https://github.com/airbytehq/airbyte/pull/3960) | Add method field in specification parameters | +| 0.3.2 | 2021-05-26 | [3179](https://github.com/airbytehq/airbyte/pull/3179) | Remove `isCDC` logging | +| 0.3.1 | 2021-04-21 | [2878](https://github.com/airbytehq/airbyte/pull/2878) | Set defined cursor for CDC | +| 0.3.0 | 2021-04-21 | [2990](https://github.com/airbytehq/airbyte/pull/2990) | Support namespaces | +| 0.2.7 | 2021-04-16 | [2923](https://github.com/airbytehq/airbyte/pull/2923) | SSL spec as optional | +| 0.2.6 | 2021-04-16 | [2757](https://github.com/airbytehq/airbyte/pull/2757) | Support SSL connection | +| 0.2.5 | 2021-04-12 | [2859](https://github.com/airbytehq/airbyte/pull/2859) | CDC bugfix | +| 0.2.4 | 2021-04-09 | [2548](https://github.com/airbytehq/airbyte/pull/2548) | Support CDC | +| 0.2.3 | 2021-03-28 | [2600](https://github.com/airbytehq/airbyte/pull/2600) | Add NCHAR and NVCHAR support to DB and cursor type casting | +| 0.2.2 | 2021-03-26 | [2460](https://github.com/airbytehq/airbyte/pull/2460) | Destination supports destination sync mode | +| 0.2.1 | 2021-03-18 | [2488](https://github.com/airbytehq/airbyte/pull/2488) | Sources support primary keys | +| 0.2.0 | 2021-03-09 | [2238](https://github.com/airbytehq/airbyte/pull/2238) | Protocol allows future/unknown properties | +| 0.1.13 | 2021-02-02 | [1887](https://github.com/airbytehq/airbyte/pull/1887) | Migrate AbstractJdbcSource to use iterators | +| 0.1.12 | 2021-01-25 | [1746](https://github.com/airbytehq/airbyte/pull/1746) | Fix NPE in State Decorator | +| 0.1.11 | 2021-01-25 | [1765](https://github.com/airbytehq/airbyte/pull/1765) | Add field titles to specification | +| 0.1.10 | 2021-01-19 | [1724](https://github.com/airbytehq/airbyte/pull/1724) | Fix JdbcSource handling of tables with same names in different schemas | +| 0.1.9 | 2021-01-14 | [1655](https://github.com/airbytehq/airbyte/pull/1655) | Fix JdbcSource OOM | +| 0.1.8 | 2021-01-13 | [1588](https://github.com/airbytehq/airbyte/pull/1588) | Handle invalid numeric values in JDBC source | +| 0.1.7 | 2021-01-08 | [1307](https://github.com/airbytehq/airbyte/pull/1307) | Migrate Postgres and MySql to use new JdbcSource | +| 0.1.6 | 2020-12-09 | [1172](https://github.com/airbytehq/airbyte/pull/1172) | Support incremental sync | +| 0.1.5 | 2020-11-30 | [1038](https://github.com/airbytehq/airbyte/pull/1038) | Change JDBC sources to discover more than standard schemas | +| 0.1.4 | 2020-11-30 | [1046](https://github.com/airbytehq/airbyte/pull/1046) | Add connectors using an index YAML file | From 330b9f1ed1bf906c8a2fd5217cd59d608f3a365a Mon Sep 17 00:00:00 2001 From: Octavia Squidington III Date: Wed, 4 Jan 2023 06:15:19 +0000 Subject: [PATCH 14/14] auto-bump connector version --- .../main/resources/seed/source_definitions.yaml | 2 +- .../src/main/resources/seed/source_specs.yaml | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml index 276afe14ffcc..3696f8b092d1 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -1258,7 +1258,7 @@ - name: Postgres sourceDefinitionId: decd338e-5647-4c0b-adf4-da0e75f5a750 dockerRepository: airbyte/source-postgres - dockerImageTag: 1.0.34 + dockerImageTag: 1.0.35 documentationUrl: https://docs.airbyte.com/integrations/sources/postgres icon: postgresql.svg sourceType: database diff --git a/airbyte-config/init/src/main/resources/seed/source_specs.yaml b/airbyte-config/init/src/main/resources/seed/source_specs.yaml index b9c3688da03f..deb83e0fc27c 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -11364,7 +11364,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-postgres:1.0.34" +- dockerImage: "airbyte/source-postgres:1.0.35" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/postgres" connectionSpecification: @@ -11592,6 +11592,7 @@ - "method" - "replication_slot" - "publication" + additionalProperties: true properties: method: type: "string" @@ -11636,6 +11637,19 @@ order: 5 min: 120 max: 1200 + lsn_commit_behaviour: + type: "string" + title: "LSN commit behaviour" + description: "Determines when Airbtye should flush the LSN of processed\ + \ WAL logs in the source database. `After loading Data in the destination`\ + \ is default. If `While reading Data` is selected, in case of a\ + \ downstream failure (while loading data into the destination),\ + \ next sync would result in a full sync." + enum: + - "While reading Data" + - "After loading Data in the destination" + default: "After loading Data in the destination" + order: 6 tunnel_method: type: "object" title: "SSH Tunnel Method"