From 35e8ffb28a1343d7e004c03157dc7fab19c97003 Mon Sep 17 00:00:00 2001 From: Ludovic DEHON Date: Thu, 31 Mar 2022 22:58:58 +0200 Subject: [PATCH] chore(deps): update all java deps --- .github/workflows/main.yml | 2 +- gradle.properties | 2 +- plugin-jdbc-clickhouse/build.gradle | 2 +- .../clickhouse/ClickHouseCellConverter.java | 39 ++++++++++++++++--- .../kestra/plugin/jdbc/clickhouse/Query.java | 2 +- .../jdbc/clickhouse/ClickHouseDriverTest.java | 2 +- .../jdbc/clickhouse/ClickHouseTest.java | 13 ++++--- .../jdbc/oracle/OracleCellConverter.java | 21 ---------- plugin-jdbc-redshift/build.gradle | 2 +- plugin-jdbc-snowflake/build.gradle | 2 +- 10 files changed, 47 insertions(+), 40 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d7904f19..a471823d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,7 +32,7 @@ jobs: # Caches - name: Gradle cache - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: | ~/.gradle/caches diff --git a/gradle.properties b/gradle.properties index 35af9329..8233b935 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ version=0.4.1-SNAPSHOT kestraVersion=0.4.+ -micronautVersion=3.3.4 +micronautVersion=3.4.1 lombokVersion=1.18.22 diff --git a/plugin-jdbc-clickhouse/build.gradle b/plugin-jdbc-clickhouse/build.gradle index d7351509..21142160 100644 --- a/plugin-jdbc-clickhouse/build.gradle +++ b/plugin-jdbc-clickhouse/build.gradle @@ -1,5 +1,5 @@ dependencies { - implementation group: 'ru.yandex.clickhouse', name: 'clickhouse-jdbc', version: '0.3.1' + implementation group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.3.2-patch7' implementation project(':plugin-jdbc') testImplementation project(':plugin-jdbc').sourceSets.test.output diff --git a/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseCellConverter.java b/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseCellConverter.java index 0f54f334..68f29527 100644 --- a/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseCellConverter.java +++ b/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseCellConverter.java @@ -1,16 +1,21 @@ package io.kestra.plugin.jdbc.clickhouse; import io.kestra.plugin.jdbc.AbstractCellConverter; -import ru.yandex.clickhouse.ClickHouseArray; +import java.net.Inet4Address; +import java.net.Inet6Address; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; public class ClickHouseCellConverter extends AbstractCellConverter { private static final Pattern PATTERN = Pattern.compile("DateTime(64)?\\((.*)'(.*)'\\)"); @@ -30,11 +35,6 @@ public Object convertCell(int columnIndex, ResultSet rs, Connection connection) Object columnVal = rs.getObject(columnIndex); String columnTypeName = rs.getMetaData().getColumnTypeName(columnIndex); - if (columnVal instanceof ClickHouseArray) { - ClickHouseArray col = (ClickHouseArray) columnVal; - return col.getArray(); - } - if (columnTypeName.startsWith("DateTime")) { Matcher matcher = PATTERN.matcher(columnTypeName); if (!matcher.find() || matcher.groupCount() < 3) { @@ -50,6 +50,33 @@ public Object convertCell(int columnIndex, ResultSet rs, Connection connection) .withZoneSameInstant(zoneId); } + if (columnTypeName.equals("Int8")) { + Byte col = (Byte) columnVal; + return col.intValue(); + } + + if (columnTypeName.equals("Date")) { + return columnVal; + } + + if (columnTypeName.startsWith("Array(")) { + return columnVal; + } + + if (columnTypeName.startsWith("Tuple(")) { + return columnVal; + } + + if (columnTypeName.equals("IPv4")) { + Inet4Address col = (Inet4Address) columnVal; + return col.toString().substring(1); + } + + if (columnTypeName.equals("IPv6")) { + Inet6Address col = (Inet6Address) columnVal; + return col.toString().substring(1); + } + return super.convert(columnIndex, rs); } } diff --git a/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/Query.java b/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/Query.java index f850cb76..923db250 100644 --- a/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/Query.java +++ b/plugin-jdbc-clickhouse/src/main/java/io/kestra/plugin/jdbc/clickhouse/Query.java @@ -47,7 +47,7 @@ protected AbstractCellConverter getCellConverter(ZoneId zoneId) { @Override protected void registerDriver() throws SQLException { - DriverManager.registerDriver(new ru.yandex.clickhouse.ClickHouseDriver()); + DriverManager.registerDriver(new com.clickhouse.jdbc.ClickHouseDriver()); } @Override diff --git a/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseDriverTest.java b/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseDriverTest.java index d0f57879..136ac21a 100644 --- a/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseDriverTest.java +++ b/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseDriverTest.java @@ -9,6 +9,6 @@ public class ClickHouseDriverTest extends AbstractJdbcDriverTest { @Override protected Class getDriverClass() { - return ru.yandex.clickhouse.ClickHouseDriver.class; + return com.clickhouse.jdbc.ClickHouseDriver.class; } } diff --git a/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseTest.java b/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseTest.java index 8a39e7dd..1cc758aa 100644 --- a/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseTest.java +++ b/plugin-jdbc-clickhouse/src/test/java/io/kestra/plugin/jdbc/clickhouse/ClickHouseTest.java @@ -1,11 +1,11 @@ package io.kestra.plugin.jdbc.clickhouse; import com.google.common.collect.ImmutableMap; -import io.micronaut.test.extensions.junit5.annotation.MicronautTest; -import org.junit.jupiter.api.Test; import io.kestra.core.runners.RunContext; import io.kestra.plugin.jdbc.AbstractJdbcQuery; import io.kestra.plugin.jdbc.AbstractRdbmsTest; +import io.micronaut.test.extensions.junit5.annotation.MicronautTest; +import org.junit.jupiter.api.Test; import java.io.FileNotFoundException; import java.math.BigDecimal; @@ -14,13 +14,14 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; -import java.util.UUID; +import java.util.List; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.*; @MicronautTest public class ClickHouseTest extends AbstractRdbmsTest { + @SuppressWarnings("unchecked") @Test void select() throws Exception { RunContext runContext = runContextFactory.of(ImmutableMap.of()); @@ -50,12 +51,12 @@ void select() throws Exception { assertThat(runOutput.getRow().get("Enum"), is("hello")); assertThat(runOutput.getRow().get("LowCardinality"), is("four")); assertThat(runOutput.getRow().get("Array"), is(new String[]{"a", "b"})); - assertThat(runOutput.getRow().get("Nested.NestedId"), is(new Integer[]{123})); + assertThat(runOutput.getRow().get("Nested.NestedId"), is(new Byte[]{Byte.valueOf("123")})); assertThat(runOutput.getRow().get("Nested.NestedString"), is(new String[]{"four"})); - assertThat(runOutput.getRow().get("Tuple"), is("('a',1)")); + assertThat((List) runOutput.getRow().get("Tuple"), containsInAnyOrder("a", Byte.valueOf("1"))); assertThat(runOutput.getRow().get("Nullable"), is(nullValue())); assertThat(runOutput.getRow().get("Ipv4"), is("116.253.40.133")); - assertThat(runOutput.getRow().get("Ipv6"), is("2a02:aa08:e000:3100::2")); + assertThat(runOutput.getRow().get("Ipv6"), is("2a02:aa08:e000:3100:0:0:0:2")); } @Test diff --git a/plugin-jdbc-oracle/src/main/java/io/kestra/plugin/jdbc/oracle/OracleCellConverter.java b/plugin-jdbc-oracle/src/main/java/io/kestra/plugin/jdbc/oracle/OracleCellConverter.java index caaffa40..c9ddd7f5 100644 --- a/plugin-jdbc-oracle/src/main/java/io/kestra/plugin/jdbc/oracle/OracleCellConverter.java +++ b/plugin-jdbc-oracle/src/main/java/io/kestra/plugin/jdbc/oracle/OracleCellConverter.java @@ -76,27 +76,6 @@ public Object convertCell(int columnIndex, ResultSet rs, Connection connection) return ((Timestamp) data).toLocalDateTime().toLocalDate(); } - -// if (columnVal instanceof ClickHouseArray) { -// ClickHouseArray col = (ClickHouseArray) columnVal; -// return col.getArray(); -// } -// -// if (columnTypeName.startsWith("DateTime")) { -// Matcher matcher = PATTERN.matcher(columnTypeName); -// if (!matcher.find() || matcher.groupCount() < 3) { -// throw new IllegalArgumentException("Invalid Column Type '" + columnTypeName + "'"); -// } -// -// return LocalDateTime -// .parse( -// rs.getString(columnIndex), -// DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S]") -// ) -// .atZone(ZoneId.of(matcher.group(3))) -// .withZoneSameInstant(zoneId); -// } - return super.convert(columnIndex, rs); } diff --git a/plugin-jdbc-redshift/build.gradle b/plugin-jdbc-redshift/build.gradle index 8245f1f4..a88e41e3 100644 --- a/plugin-jdbc-redshift/build.gradle +++ b/plugin-jdbc-redshift/build.gradle @@ -1,5 +1,5 @@ dependencies { - jdbcDriver 'com.amazon.redshift:redshift-jdbc42:2.1.0.4' + jdbcDriver 'com.amazon.redshift:redshift-jdbc42:2.1.0.5' implementation project(':plugin-jdbc') testImplementation project(':plugin-jdbc').sourceSets.test.output diff --git a/plugin-jdbc-snowflake/build.gradle b/plugin-jdbc-snowflake/build.gradle index 78f38742..ff44ba0b 100644 --- a/plugin-jdbc-snowflake/build.gradle +++ b/plugin-jdbc-snowflake/build.gradle @@ -1,5 +1,5 @@ dependencies { - implementation("net.snowflake:snowflake-jdbc:3.13.14") + implementation("net.snowflake:snowflake-jdbc:3.13.16") implementation project(':plugin-jdbc') implementation("javax.xml.bind:jaxb-api:2.3.1")