This is an automated email from the ASF dual-hosted git repository. martijnvisser pushed a commit to branch v3.0 in repository https://gitbox.apache.org/repos/asf/flink-connector-jdbc.git
commit 0f3d2045cac530e33986ed742bd99b934b3375df Author: Martijn Visser <martijnvis...@apache.org> AuthorDate: Mon Sep 12 15:49:35 2022 +0200 Revert "[FLINK-19869][connectors/jdbc] Add support for postgres UUID type" This reverts commit eb4bead716230f0a47173cd14eb422a77d3e45e0. --- .../jdbc/converter/AbstractJdbcRowConverter.java | 2 +- .../internal/converter/PostgresRowConverter.java | 23 ------ .../converter/PostgresRowConverterTest.java | 92 ---------------------- 3 files changed, 1 insertion(+), 116 deletions(-) diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java b/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java index 32dc016..1a19d12 100644 --- a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java +++ b/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/converter/AbstractJdbcRowConverter.java @@ -173,7 +173,7 @@ public abstract class AbstractJdbcRowConverter implements JdbcRowConverter { : TimestampData.fromTimestamp((Timestamp) val); case CHAR: case VARCHAR: - return val -> StringData.fromString(val.toString()); + return val -> StringData.fromString((String) val); case BINARY: case VARBINARY: return val -> val; diff --git a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverter.java b/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverter.java index c498f81..265476a 100644 --- a/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverter.java +++ b/flink-connector-jdbc/src/main/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverter.java @@ -29,8 +29,6 @@ import org.apache.flink.table.types.logical.utils.LogicalTypeUtils; import org.postgresql.jdbc.PgArray; import java.lang.reflect.Array; -import java.util.UUID; -import java.util.regex.Pattern; /** * Runtime converter that responsible to convert between JDBC object and Flink internal object for @@ -39,8 +37,6 @@ import java.util.regex.Pattern; public class PostgresRowConverter extends AbstractJdbcRowConverter { private static final long serialVersionUID = 1L; - private static final Pattern UUID_REGEX_PATTERN = - Pattern.compile("^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$"); @Override public String converterName() { @@ -63,25 +59,6 @@ public class PostgresRowConverter extends AbstractJdbcRowConverter { } } - @Override - protected JdbcSerializationConverter createExternalConverter(LogicalType type) { - switch (type.getTypeRoot()) { - case CHAR: - case VARCHAR: - return (val, index, statement) -> { - String valString = val.getString(index).toString(); - - if (UUID_REGEX_PATTERN.matcher(valString).matches()) { - statement.setObject(index, UUID.fromString(valString)); - } else { - statement.setString(index, valString); - } - }; - } - - return super.createExternalConverter(type); - } - @Override protected JdbcSerializationConverter createNullableExternalConverter(LogicalType type) { LogicalTypeRoot root = type.getTypeRoot(); diff --git a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverterTest.java b/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverterTest.java deleted file mode 100644 index a1b2137..0000000 --- a/flink-connector-jdbc/src/test/java/org/apache/flink/connector/jdbc/internal/converter/PostgresRowConverterTest.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.flink.connector.jdbc.internal.converter; - -import org.apache.flink.connector.jdbc.converter.JdbcRowConverter; -import org.apache.flink.connector.jdbc.statement.FieldNamedPreparedStatement; -import org.apache.flink.table.data.GenericRowData; -import org.apache.flink.table.data.RowData; -import org.apache.flink.table.data.StringData; -import org.apache.flink.table.types.logical.RowType; -import org.apache.flink.table.types.logical.VarCharType; - -import org.junit.Test; -import org.mockito.Mockito; - -import java.sql.ResultSet; -import java.util.UUID; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.verify; - -/** Test for {@link PostgresRowConverter}. */ -public class PostgresRowConverterTest { - @Test - public void testInternalConverterHandlesUUIDs() throws Exception { - // arrange - RowType rowType = RowType.of(new VarCharType(), new VarCharType()); - JdbcRowConverter rowConverter = - new PostgresRowConverter(rowType) { - - private static final long serialVersionUID = 1L; - - @Override - public String converterName() { - return "test"; - } - }; - - UUID uuid = UUID.randomUUID(); - String notUUID = "not-a-uuid"; - - ResultSet resultSet = Mockito.mock(ResultSet.class); - Mockito.when(resultSet.getObject(1)).thenReturn(uuid); - Mockito.when(resultSet.getObject(2)).thenReturn(notUUID); - - // act - RowData res = rowConverter.toInternal(resultSet); - - // assert - assertThat(res.getString(0).toString()).isEqualTo(uuid.toString()); - assertThat(res.getString(1).toString()).isEqualTo(notUUID); - } - - @Test - public void testExternalConverterHandlesUUIDs() throws Exception { - // arrange - RowType rowType = RowType.of(new VarCharType(), new VarCharType()); - JdbcRowConverter rowConverter = new PostgresRowConverter(rowType); - - UUID uuid = UUID.randomUUID(); - String notUUID = "not-a-uuid"; - - RowData rowData = - GenericRowData.of( - StringData.fromString(uuid.toString()), StringData.fromString(notUUID)); - - FieldNamedPreparedStatement ps = Mockito.mock(FieldNamedPreparedStatement.class); - - // act - rowConverter.toExternal(rowData, ps); - - // assert - verify(ps).setObject(0, uuid); - verify(ps).setString(1, notUUID); - } -}