From a53fb77fc8fdad9bbf1b614a9f4b728646e133ff Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 11:52:46 +0300 Subject: [PATCH 01/10] Postgres Source: fixed truncated precision if the value of the millisecond or second is 0 --- .../main/java/io/airbyte/db/DataTypeUtils.java | 5 +++++ .../AbstractJdbcCompatibleSourceOperations.java | 7 +++++-- .../postgres/PostgresSourceOperations.java | 6 ++++-- .../sources/PostgresSourceDatatypeTest.java | 16 ++++++++-------- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/airbyte-db/lib/src/main/java/io/airbyte/db/DataTypeUtils.java b/airbyte-db/lib/src/main/java/io/airbyte/db/DataTypeUtils.java index d63f91d4700f1..707946df2c6b1 100644 --- a/airbyte-db/lib/src/main/java/io/airbyte/db/DataTypeUtils.java +++ b/airbyte-db/lib/src/main/java/io/airbyte/db/DataTypeUtils.java @@ -25,6 +25,11 @@ public class DataTypeUtils { public static final String DATE_FORMAT_WITH_MILLISECONDS_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; + public static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss.SSSSSS"); + public static final DateTimeFormatter TIMESTAMP_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSS"); + public static final DateTimeFormatter TIMETZ_FORMATTER = DateTimeFormatter.ofPattern("HH:mm:ss.SSSSSSXXX"); + public static final DateTimeFormatter TIMESTAMPTZ_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXX"); + // wrap SimpleDateFormat in a function because SimpleDateFormat is not threadsafe as a static final. public static DateFormat getDateFormat() { return new SimpleDateFormat(DATE_FORMAT_PATTERN); // Quoted "Z" to indicate UTC, no timezone offset; diff --git a/airbyte-db/lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java b/airbyte-db/lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java index abe9115b75c49..ee37c55cb05d4 100644 --- a/airbyte-db/lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java +++ b/airbyte-db/lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java @@ -29,6 +29,9 @@ import java.util.StringJoiner; import javax.xml.bind.DatatypeConverter; +import static io.airbyte.db.DataTypeUtils.TIMESTAMPTZ_FORMATTER; +import static io.airbyte.db.DataTypeUtils.TIMETZ_FORMATTER; + /** * Source operation skeleton for JDBC compatible databases. */ @@ -256,13 +259,13 @@ protected DateTime getDateTimeObject(ResultSet resultSet, int index, protected void putTimeWithTimezone(ObjectNode node, String columnName, ResultSet resultSet, int index) throws SQLException { OffsetTime timetz = getDateTimeObject(resultSet, index, OffsetTime.class); - node.put(columnName, timetz.toString()); + node.put(columnName, timetz.format(TIMETZ_FORMATTER)); } protected void putTimestampWithTimezone(ObjectNode node, String columnName, ResultSet resultSet, int index) throws SQLException { OffsetDateTime timestamptz = getDateTimeObject(resultSet, index, OffsetDateTime.class); LocalDate localDate = timestamptz.toLocalDate(); - node.put(columnName, resolveEra(localDate, timestamptz.toString())); + node.put(columnName, resolveEra(localDate, timestamptz.format(TIMESTAMPTZ_FORMATTER))); } protected String resolveEra(LocalDate date, String value) { diff --git a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSourceOperations.java b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSourceOperations.java index 7610a62f68003..d9e4eb62f007f 100644 --- a/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSourceOperations.java +++ b/airbyte-integrations/connectors/source-postgres/src/main/java/io/airbyte/integrations/source/postgres/PostgresSourceOperations.java @@ -4,6 +4,8 @@ package io.airbyte.integrations.source.postgres; +import static io.airbyte.db.DataTypeUtils.TIMESTAMP_FORMATTER; +import static io.airbyte.db.DataTypeUtils.TIME_FORMATTER; import static io.airbyte.db.jdbc.JdbcConstants.INTERNAL_COLUMN_NAME; import static io.airbyte.db.jdbc.JdbcConstants.INTERNAL_COLUMN_TYPE; import static io.airbyte.db.jdbc.JdbcConstants.INTERNAL_COLUMN_TYPE_NAME; @@ -130,14 +132,14 @@ protected void putDate(ObjectNode node, String columnName, ResultSet resultSet, @Override protected void putTime(ObjectNode node, String columnName, ResultSet resultSet, int index) throws SQLException { LocalTime time = getDateTimeObject(resultSet, index, LocalTime.class); - node.put(columnName, time.toString()); + node.put(columnName, time.format(TIME_FORMATTER)); } @Override protected void putTimestamp(ObjectNode node, String columnName, ResultSet resultSet, int index) throws SQLException { LocalDateTime timestamp = getDateTimeObject(resultSet, index, LocalDateTime.class); LocalDate date = timestamp.toLocalDate(); - node.put(columnName, resolveEra(date, timestamp.toString())); + node.put(columnName, resolveEra(date, timestamp.format(TIMESTAMP_FORMATTER))); } @Override diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java b/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java index f6786aec2dd18..3d0476ee19cc0 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java @@ -448,8 +448,8 @@ protected void initTests() { .fullSourceDataType(fullSourceType) .airbyteType(JsonSchemaType.STRING_TIME_WITHOUT_TIMEZONE) // time column will ignore time zone - .addInsertValues("null", "'13:00:01'", "'13:00:02+8'", "'13:00:03-8'", "'13:00:04Z'", "'13:00:05Z+8'", "'13:00:06Z-8'") - .addExpectedValues(null, "13:00:01", "13:00:02", "13:00:03", "13:00:04", "13:00:05", "13:00:06") + .addInsertValues("null", "'13:00:01'", "'13:00:02+8'", "'13:00:03-8'", "'13:00:04Z'", "'13:00:05.01234Z+8'", "'13:00:00Z-8'") + .addExpectedValues(null, "13:00:01.000000", "13:00:02.000000", "13:00:03.000000", "13:00:04.000000", "13:00:05.012340", "13:00:00.000000") .build()); } @@ -460,10 +460,10 @@ protected void initTests() { .sourceType("timetz") .fullSourceDataType(fullSourceType) .airbyteType(JsonSchemaType.STRING_TIME_WITH_TIMEZONE) - .addInsertValues("null", "'13:00:01'", "'13:00:02+8'", "'13:00:03-8'", "'13:00:04Z'", "'13:00:05Z+8'", "'13:00:06Z-8'") + .addInsertValues("null", "'13:00:01'", "'13:00:00+8'", "'13:00:03-8'", "'13:00:04Z'", "'13:00:05.012345Z+8'", "'13:00:06.00000Z-8'") // A time value without time zone will use the time zone set on the database, which is Z-7, // so 13:00:01 is returned as 13:00:01-07. - .addExpectedValues(null, "13:00:01-07:00", "13:00:02+08:00", "13:00:03-08:00", "13:00:04Z", "13:00:05-08:00", "13:00:06+08:00") + .addExpectedValues(null, "13:00:01.000000-07:00", "13:00:00.000000+08:00", "13:00:03.000000-08:00", "13:00:04.000000Z", "13:00:05.012345-08:00", "13:00:06.000000+08:00") .build()); } @@ -474,8 +474,8 @@ protected void initTests() { .sourceType("timestamp") .fullSourceDataType(fullSourceType) .airbyteType(JsonSchemaType.STRING_TIMESTAMP_WITHOUT_TIMEZONE) - .addInsertValues("TIMESTAMP '2004-10-19 10:23:54'", "TIMESTAMP '2004-10-19 10:23:54.123456'", "null") - .addExpectedValues("2004-10-19T10:23:54", "2004-10-19T10:23:54.123456", null) + .addInsertValues("TIMESTAMP '2004-10-19 10:23:00'", "TIMESTAMP '2004-10-19 10:23:54.123456'", "null") + .addExpectedValues("2004-10-19T10:23:00.000000", "2004-10-19T10:23:54.123456", null) .build()); } @@ -486,9 +486,9 @@ protected void initTests() { .sourceType("timestamptz") .fullSourceDataType(fullSourceType) .airbyteType(JsonSchemaType.STRING_TIMESTAMP_WITH_TIMEZONE) - .addInsertValues("TIMESTAMP '2004-10-19 10:23:54-08'", "TIMESTAMP '2004-10-19 10:23:54.123456-08'", "null") + .addInsertValues("TIMESTAMP '2004-10-19 10:23:00-08'", "TIMESTAMP '2004-10-19 10:23:54.123456-08'", "null") // 2004-10-19T10:23:54Z-8 = 2004-10-19T17:23:54Z - .addExpectedValues("2004-10-19T17:23:54Z", "2004-10-19T17:23:54.123456Z", null) + .addExpectedValues("2004-10-19T17:23:00.000000Z", "2004-10-19T17:23:54.123456Z", null) .build()); } From c9598c82d881b4abbfe1a37509c9f7e6410ef446 Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 13:23:29 +0300 Subject: [PATCH 02/10] check CI with 1.15.3 testcontainer --- airbyte-integrations/connectors/source-postgres/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-postgres/build.gradle b/airbyte-integrations/connectors/source-postgres/build.gradle index de93315dd1344..b0ae205e01b04 100644 --- a/airbyte-integrations/connectors/source-postgres/build.gradle +++ b/airbyte-integrations/connectors/source-postgres/build.gradle @@ -26,7 +26,8 @@ dependencies { testImplementation project(":airbyte-json-validation") testImplementation project(':airbyte-test-utils') - testImplementation libs.testcontainers.postgresql +// testImplementation libs.testcontainers.postgresql + testImplementation group: 'org.testcontainers', name: 'postgresql', version: '1.15.3' integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') performanceTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') From 2c04a0a4adc0b93b94f8b22cf5d87ab485973e38 Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 13:24:39 +0300 Subject: [PATCH 03/10] check CI with 1.15.3 testcontainer --- airbyte-integrations/connectors/source-postgres/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-postgres/build.gradle b/airbyte-integrations/connectors/source-postgres/build.gradle index de93315dd1344..b0ae205e01b04 100644 --- a/airbyte-integrations/connectors/source-postgres/build.gradle +++ b/airbyte-integrations/connectors/source-postgres/build.gradle @@ -26,7 +26,8 @@ dependencies { testImplementation project(":airbyte-json-validation") testImplementation project(':airbyte-test-utils') - testImplementation libs.testcontainers.postgresql +// testImplementation libs.testcontainers.postgresql + testImplementation group: 'org.testcontainers', name: 'postgresql', version: '1.15.3' integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') performanceTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') From 78efaf9f744f23fd32f821989e6545d78fa4f00f Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 13:43:57 +0300 Subject: [PATCH 04/10] returned latest version of testcontainer --- airbyte-integrations/connectors/source-postgres/build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/airbyte-integrations/connectors/source-postgres/build.gradle b/airbyte-integrations/connectors/source-postgres/build.gradle index b0ae205e01b04..de93315dd1344 100644 --- a/airbyte-integrations/connectors/source-postgres/build.gradle +++ b/airbyte-integrations/connectors/source-postgres/build.gradle @@ -26,8 +26,7 @@ dependencies { testImplementation project(":airbyte-json-validation") testImplementation project(':airbyte-test-utils') -// testImplementation libs.testcontainers.postgresql - testImplementation group: 'org.testcontainers', name: 'postgresql', version: '1.15.3' + testImplementation libs.testcontainers.postgresql integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') performanceTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') From 0c468e04ff50c45d586506e61e987c1e3ec9a006 Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 15:07:59 +0300 Subject: [PATCH 05/10] fixed checkstyle --- .../AbstractJdbcCompatibleSourceOperations.java | 6 +++--- .../sources/PostgresSourceDatatypeTest.java | 17 ++++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java index ee37c55cb05d4..ea4910c165185 100644 --- a/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java +++ b/airbyte-db/db-lib/src/main/java/io/airbyte/db/jdbc/AbstractJdbcCompatibleSourceOperations.java @@ -4,6 +4,9 @@ package io.airbyte.db.jdbc; +import static io.airbyte.db.DataTypeUtils.TIMESTAMPTZ_FORMATTER; +import static io.airbyte.db.DataTypeUtils.TIMETZ_FORMATTER; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ArrayNode; @@ -29,9 +32,6 @@ import java.util.StringJoiner; import javax.xml.bind.DatatypeConverter; -import static io.airbyte.db.DataTypeUtils.TIMESTAMPTZ_FORMATTER; -import static io.airbyte.db.DataTypeUtils.TIMETZ_FORMATTER; - /** * Source operation skeleton for JDBC compatible databases. */ diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java b/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java index 3b72cd547ed91..339c8011736d9 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/PostgresSourceDatatypeTest.java @@ -450,7 +450,8 @@ protected void initTests() { .airbyteType(JsonSchemaType.STRING_TIME_WITHOUT_TIMEZONE) // time column will ignore time zone .addInsertValues("null", "'13:00:01'", "'13:00:02+8'", "'13:00:03-8'", "'13:00:04Z'", "'13:00:05.01234Z+8'", "'13:00:00Z-8'") - .addExpectedValues(null, "13:00:01.000000", "13:00:02.000000", "13:00:03.000000", "13:00:04.000000", "13:00:05.012340", "13:00:00.000000") + .addExpectedValues(null, "13:00:01.000000", "13:00:02.000000", "13:00:03.000000", "13:00:04.000000", "13:00:05.012340", + "13:00:00.000000") .build()); } @@ -464,7 +465,8 @@ protected void initTests() { .addInsertValues("null", "'13:00:01'", "'13:00:00+8'", "'13:00:03-8'", "'13:00:04Z'", "'13:00:05.012345Z+8'", "'13:00:06.00000Z-8'") // A time value without time zone will use the time zone set on the database, which is Z-7, // so 13:00:01 is returned as 13:00:01-07. - .addExpectedValues(null, "13:00:01.000000-07:00", "13:00:00.000000+08:00", "13:00:03.000000-08:00", "13:00:04.000000Z", "13:00:05.012345-08:00", "13:00:06.000000+08:00") + .addExpectedValues(null, "13:00:01.000000-07:00", "13:00:00.000000+08:00", "13:00:03.000000-08:00", "13:00:04.000000Z", + "13:00:05.012345-08:00", "13:00:06.000000+08:00") .build()); } @@ -569,11 +571,12 @@ protected void initTests() { .sourceType("hstore") .airbyteType(JsonSchemaType.STRING) .addInsertValues(""" - '"paperback" => "243","publisher" => "postgresqltutorial.com", - "language" => "English","ISBN-13" => "978-1449370000", - "weight" => "11.2 ounces"' - """, null) - .addExpectedValues(""" + '"paperback" => "243","publisher" => "postgresqltutorial.com", + "language" => "English","ISBN-13" => "978-1449370000", + "weight" => "11.2 ounces"' + """, null) + .addExpectedValues( + """ {"ISBN-13":"978-1449370000","weight":"11.2 ounces","paperback":"243","publisher":"postgresqltutorial.com","language":"English"}""", null) .build()); From 682c8ed14c6c4366098d5ae970a4be85cdb55638 Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 15:30:01 +0300 Subject: [PATCH 06/10] fixed checkstyle --- .../integrations/util/HostPortResolver.java | 21 +++++++++++-------- .../CdcPostgresSourceDatatypeTest.java | 11 +++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/HostPortResolver.java b/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/HostPortResolver.java index e2c283422ced2..8dfc9fcef9e90 100644 --- a/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/HostPortResolver.java +++ b/airbyte-integrations/bases/base-java/src/main/java/io/airbyte/integrations/util/HostPortResolver.java @@ -1,3 +1,7 @@ +/* + * Copyright (c) 2022 Airbyte, Inc., all rights reserved. + */ + package io.airbyte.integrations.util; import java.util.Objects; @@ -6,19 +10,18 @@ public class HostPortResolver { public static String resolveHost(GenericContainer container) { - return System.getProperty("os.name").toLowerCase().startsWith("mac") ? - Objects.requireNonNull(container.getContainerInfo() - .getNetworkSettings() - .getNetworks() - .entrySet().stream() - .findFirst() - .get().getValue().getIpAddress()) + return System.getProperty("os.name").toLowerCase().startsWith("mac") ? Objects.requireNonNull(container.getContainerInfo() + .getNetworkSettings() + .getNetworks() + .entrySet().stream() + .findFirst() + .get().getValue().getIpAddress()) : container.getHost(); } public static int resolvePort(GenericContainer container) { - return System.getProperty("os.name").toLowerCase().startsWith("mac") ? (Integer) - container.getExposedPorts().get(0) : container.getFirstMappedPort(); + return System.getProperty("os.name").toLowerCase().startsWith("mac") ? (Integer) container.getExposedPorts().get(0) + : container.getFirstMappedPort(); } } diff --git a/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/CdcPostgresSourceDatatypeTest.java b/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/CdcPostgresSourceDatatypeTest.java index 12c1305d18427..52103a7360766 100644 --- a/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/CdcPostgresSourceDatatypeTest.java +++ b/airbyte-integrations/connectors/source-postgres/src/test-integration/java/io/airbyte/integrations/io/airbyte/integration_tests/sources/CdcPostgresSourceDatatypeTest.java @@ -548,11 +548,12 @@ protected void initTests() { .sourceType("hstore") .airbyteType(JsonSchemaType.STRING) .addInsertValues(""" - '"paperback" => "243","publisher" => "postgresqltutorial.com", - "language" => "English","ISBN-13" => "978-1449370000", - "weight" => "11.2 ounces"' - """, null) - .addExpectedValues(""" + '"paperback" => "243","publisher" => "postgresqltutorial.com", + "language" => "English","ISBN-13" => "978-1449370000", + "weight" => "11.2 ounces"' + """, null) + .addExpectedValues( + """ {"ISBN-13":"978-1449370000","weight":"11.2 ounces","paperback":"243","publisher":"postgresqltutorial.com","language":"English"}""", null) .build()); From 3386418a98d74042def3689a20f4d72300dd66a3 Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 15:37:54 +0300 Subject: [PATCH 07/10] returned latest testcontainer version --- airbyte-integrations/connectors/source-postgres/build.gradle | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/airbyte-integrations/connectors/source-postgres/build.gradle b/airbyte-integrations/connectors/source-postgres/build.gradle index b0ae205e01b04..de93315dd1344 100644 --- a/airbyte-integrations/connectors/source-postgres/build.gradle +++ b/airbyte-integrations/connectors/source-postgres/build.gradle @@ -26,8 +26,7 @@ dependencies { testImplementation project(":airbyte-json-validation") testImplementation project(':airbyte-test-utils') -// testImplementation libs.testcontainers.postgresql - testImplementation group: 'org.testcontainers', name: 'postgresql', version: '1.15.3' + testImplementation libs.testcontainers.postgresql integrationTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') performanceTestJavaImplementation project(':airbyte-integrations:bases:standard-source-test') From 117d7f3079b03b7947421388b8318cc1f8b4b6a8 Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 7 Jun 2022 16:33:39 +0300 Subject: [PATCH 08/10] updated CHANGELOG --- docs/integrations/sources/postgres.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/integrations/sources/postgres.md b/docs/integrations/sources/postgres.md index 764b3f0242055..e01b263d372f4 100644 --- a/docs/integrations/sources/postgres.md +++ b/docs/integrations/sources/postgres.md @@ -275,6 +275,7 @@ According to Postgres [documentation](https://www.postgresql.org/docs/14/datatyp | Version | Date | Pull Request | Subject | |:--------|:-----------|:-------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------| +| 0.4.21 | 2022-06-07 | [13549](https://github.com/airbytehq/airbyte/pull/13549) | Fixed truncated precision if the value of microseconds or seconds is 0 | | 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 | From 3ae112e6f5d9c097336bcce3af66030f592da54c Mon Sep 17 00:00:00 2001 From: vmaltsev Date: Tue, 14 Jun 2022 21:51:44 +0300 Subject: [PATCH 09/10] bump version --- airbyte-integrations/connectors/source-postgres/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/airbyte-integrations/connectors/source-postgres/Dockerfile b/airbyte-integrations/connectors/source-postgres/Dockerfile index f201d4184b74b..8abc38ea5ab0b 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=0.4.23 +LABEL io.airbyte.version=0.4.24 LABEL io.airbyte.name=airbyte/source-postgres From b4efc766407cab775bb11aba22b2719611dbed17 Mon Sep 17 00:00:00 2001 From: Octavia Squidington III Date: Tue, 14 Jun 2022 20:33:20 +0000 Subject: [PATCH 10/10] auto-bump connector version --- .../init/src/main/resources/seed/source_definitions.yaml | 2 +- airbyte-config/init/src/main/resources/seed/source_specs.yaml | 2 +- 2 files changed, 2 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 2006c120444af..517a739d69452 100644 --- a/airbyte-config/init/src/main/resources/seed/source_definitions.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_definitions.yaml @@ -715,7 +715,7 @@ - name: Postgres sourceDefinitionId: decd338e-5647-4c0b-adf4-da0e75f5a750 dockerRepository: airbyte/source-postgres - dockerImageTag: 0.4.23 + dockerImageTag: 0.4.24 documentationUrl: https://docs.airbyte.io/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 e632bae86991a..8a5f8d755248e 100644 --- a/airbyte-config/init/src/main/resources/seed/source_specs.yaml +++ b/airbyte-config/init/src/main/resources/seed/source_specs.yaml @@ -6719,7 +6719,7 @@ supportsNormalization: false supportsDBT: false supported_destination_sync_modes: [] -- dockerImage: "airbyte/source-postgres:0.4.23" +- dockerImage: "airbyte/source-postgres:0.4.24" spec: documentationUrl: "https://docs.airbyte.com/integrations/sources/postgres" connectionSpecification: