This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink-table-store.git
The following commit(s) were added to refs/heads/master by this push:
new 78159c5 [FLINK-27439] Fix ClassNotFoundException when using array
type in table store
78159c5 is described below
commit 78159c5152927b5d336a3ec7ba27fbe920475a3f
Author: tsreaper <[email protected]>
AuthorDate: Thu Apr 28 18:48:20 2022 +0800
[FLINK-27439] Fix ClassNotFoundException when using array type in table
store
This closes #105
---
flink-table-store-codegen/pom.xml | 7 +-
.../flink/table/store/tests/TypeE2eTest.java | 102 +++++++++++++++++++++
flink-table-store-format/pom.xml | 4 +-
3 files changed, 106 insertions(+), 7 deletions(-)
diff --git a/flink-table-store-codegen/pom.xml
b/flink-table-store-codegen/pom.xml
index ab357fc..330ecd0 100644
--- a/flink-table-store-codegen/pom.xml
+++ b/flink-table-store-codegen/pom.xml
@@ -85,11 +85,8 @@ under the License.
<filter>
<artifact>org.apache.flink:flink-table-planner_${scala.binary.version}</artifact>
<includes>
-
<include>org/apache/flink/table/planner/codegen/**</include>
-
<include>org/apache/flink/table/planner/plan/nodes/exec/spec/SortSpec**</include>
-
<include>org/apache/calcite/rex/**</include>
-
<include>org/apache/calcite/rel/**</include>
-
<include>org/apache/calcite/sql/**</include>
+
<include>org/apache/flink/table/planner/**</include>
+
<include>org/apache/calcite/**</include>
<include>scala/**</include>
</includes>
</filter>
diff --git
a/flink-table-store-e2e-tests/src/test/java/org/apache/flink/table/store/tests/TypeE2eTest.java
b/flink-table-store-e2e-tests/src/test/java/org/apache/flink/table/store/tests/TypeE2eTest.java
new file mode 100644
index 0000000..77b0fee
--- /dev/null
+++
b/flink-table-store-e2e-tests/src/test/java/org/apache/flink/table/store/tests/TypeE2eTest.java
@@ -0,0 +1,102 @@
+/*
+ * 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.table.store.tests;
+
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.UUID;
+
+/** Test for currently supported data types. */
+public class TypeE2eTest extends E2eTestBase {
+
+ @Test
+ public void testAllTypes() throws Exception {
+ String schema =
+ String.join(
+ "\n",
+ Arrays.asList(
+ "f0 BOOLEAN,",
+ "f1 TINYINT,",
+ "f2 SMALLINT,",
+ "f3 INT,",
+ "f4 BIGINT,",
+ "f5 FLOAT,",
+ "f6 DOUBLE,",
+ "f7 DECIMAL(5, 3),",
+ "f8 DECIMAL(26, 8),",
+ "f9 CHAR(10),",
+ "f10 VARCHAR(10),",
+ "f11 STRING,",
+ "f12 BYTES,",
+ "f13 DATE,",
+ "f14 TIMESTAMP(3),",
+ "f15 ARRAY<STRING>,",
+ "f16 ROW<a INT, b BIGINT, c STRING>"));
+ String tableStoreDdl =
+ String.join(
+ "\n",
+ Arrays.asList(
+ "CREATE TABLE IF NOT EXISTS table_store(",
+ schema,
+ ") WITH (",
+ " 'bucket' = '1',",
+ " 'path' = '%s'",
+ ");"));
+ tableStoreDdl =
+ String.format(
+ tableStoreDdl,
+ TEST_DATA_DIR + "/" + UUID.randomUUID().toString() +
".store");
+
+ runSql(
+ "INSERT INTO table_store VALUES ("
+ + "true, cast(1 as tinyint), cast(10 as smallint), "
+ + "100, 1000, cast(1.1 as float), 1.11, 12.456, "
+ + "cast('123456789123456789.12345678' as decimal(26,
8)), "
+ + "cast('hi' as char(10)), 'hello', 'table桌子store商店', "
+ + "ENCODE('table桌子store商店', 'UTF-8'), "
+ + "DATE '2022-04-28', TIMESTAMP '2022-04-28
15:35:45.123', "
+ + "ARRAY['hi', 'hello', cast(null as string), 'test'],
(1, 10, '测试')"
+ + "), ("
+ + "cast(null as boolean), cast(null as tinyint),
cast(null as smallint), "
+ + "cast(null as int), cast(null as bigint), cast(null
as float), "
+ + "cast(null as double), cast(null as decimal(5, 3)),
cast(null as decimal(26, 8)), "
+ + "cast(null as char(10)), cast(null as varchar(10)),
cast(null as string), "
+ + "cast(null as bytes), cast(null as date), cast(null
as timestamp(3)), "
+ + "cast(null as array<string>), cast(null as row<a
int, b bigint, c string>)"
+ + ");",
+ tableStoreDdl);
+ runSql(
+ "INSERT INTO result1 SELECT * FROM table_store;",
+ tableStoreDdl,
+ createResultSink("result1", schema));
+ checkResult(
+ "true, 1, 10, 100, 1000, 1.1, 1.11, 12.456,
123456789123456789.12345678, hi, hello, table桌子store商店, [116], 2022-04-28,
2022-04-28T15:35:45.123, [hi, hello, null, test], +I[1, 10, 测试]",
+ "null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null");
+ }
+
+ private void runSql(String sql, String... ddls) throws Exception {
+ runSql(
+ "SET 'execution.runtime-mode' = 'batch';\n"
+ + "SET 'table.dml-sync' = 'true';\n"
+ + String.join("\n", ddls)
+ + "\n"
+ + sql);
+ }
+}
diff --git a/flink-table-store-format/pom.xml b/flink-table-store-format/pom.xml
index aa2ab47..1b582ec 100644
--- a/flink-table-store-format/pom.xml
+++ b/flink-table-store-format/pom.xml
@@ -239,8 +239,8 @@ under the License.
</filters>
<relocations>
<relocation>
- <pattern>org.apache.flink.avro</pattern>
-
<shadedPattern>org.apache.flink.table.store.shaded.org.apache.flink.avro</shadedPattern>
+
<pattern>org.apache.flink.formats.avro</pattern>
+
<shadedPattern>org.apache.flink.table.store.shaded.org.apache.flink.formats.avro</shadedPattern>
</relocation>
<relocation>
<pattern>org.apache.flink.orc</pattern>