This is an automated email from the ASF dual-hosted git repository.

wanghailin pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/seatunnel.git


The following commit(s) were added to refs/heads/dev by this push:
     new 657fe69b26 [Improve][Connector-v2] Support mysql 8.1/8.2/8.3 for jdbc 
(#7530)
657fe69b26 is described below

commit 657fe69b26751fd9ae7adc112be4d3a41bad2820
Author: dailai <dai...@chinatelecom.cn>
AuthorDate: Sat Aug 31 01:11:01 2024 +0800

    [Improve][Connector-v2] Support mysql 8.1/8.2/8.3 for jdbc (#7530)
---
 docs/en/connector-v2/sink/Mysql.md                 |  2 +-
 docs/en/connector-v2/source/Mysql.md               |  2 +-
 .../jdbc/internal/dialect/mysql/MySqlVersion.java  | 37 +++++++-------
 .../internal/dialect/mysql/MysqlVersionTest.java   | 59 ++++++++++++++++++++++
 4 files changed, 79 insertions(+), 21 deletions(-)

diff --git a/docs/en/connector-v2/sink/Mysql.md 
b/docs/en/connector-v2/sink/Mysql.md
index 1b579aadd9..6151394b80 100644
--- a/docs/en/connector-v2/sink/Mysql.md
+++ b/docs/en/connector-v2/sink/Mysql.md
@@ -4,7 +4,7 @@
 
 ## Support Mysql Version
 
-- 5.5/5.6/5.7/8.0/8.4
+- 5.5/5.6/5.7/8.0/8.1/8.2/8.3/8.4
 
 ## Support Those Engines
 
diff --git a/docs/en/connector-v2/source/Mysql.md 
b/docs/en/connector-v2/source/Mysql.md
index 0d6835f41e..57f40ac7b1 100644
--- a/docs/en/connector-v2/source/Mysql.md
+++ b/docs/en/connector-v2/source/Mysql.md
@@ -8,7 +8,7 @@ Read external data source data through JDBC.
 
 ## Support Mysql Version
 
-- 5.5/5.6/5.7/8.0/8.4
+- 5.5/5.6/5.7/8.0/8.1/8.2/8.3/8.4
 
 ## Support Those Engines
 
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlVersion.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlVersion.java
index 97a37c0621..8646d0d7e5 100644
--- 
a/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlVersion.java
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/main/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MySqlVersion.java
@@ -18,28 +18,27 @@
 package org.apache.seatunnel.connectors.seatunnel.jdbc.internal.dialect.mysql;
 
 public enum MySqlVersion {
-    V_5_5,
-    V_5_6,
-    V_5_7,
-    V_8,
-    V_8_4;
+    V_5_5("5.5"),
+    V_5_6("5.6"),
+    V_5_7("5.7"),
+    V_8("8.0"),
+    V_8_1("8.1"),
+    V_8_2("8.2"),
+    V_8_3("8.3"),
+    V_8_4("8.4");
+
+    private final String versionPrefix;
+
+    MySqlVersion(String versionPrefix) {
+        this.versionPrefix = versionPrefix;
+    }
 
     public static MySqlVersion parse(String version) {
         if (version != null) {
-            if (version.startsWith("5.5")) {
-                return V_5_5;
-            }
-            if (version.startsWith("5.6")) {
-                return V_5_6;
-            }
-            if (version.startsWith("5.7")) {
-                return V_5_7;
-            }
-            if (version.startsWith("8.0")) {
-                return V_8;
-            }
-            if (version.startsWith("8.4")) {
-                return V_8_4;
+            for (MySqlVersion mySqlVersion : values()) {
+                if (version.startsWith(mySqlVersion.versionPrefix)) {
+                    return mySqlVersion;
+                }
             }
         }
         throw new UnsupportedOperationException("Unsupported MySQL version: " 
+ version);
diff --git 
a/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MysqlVersionTest.java
 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MysqlVersionTest.java
new file mode 100644
index 0000000000..cec0211892
--- /dev/null
+++ 
b/seatunnel-connectors-v2/connector-jdbc/src/test/java/org/apache/seatunnel/connectors/seatunnel/jdbc/internal/dialect/mysql/MysqlVersionTest.java
@@ -0,0 +1,59 @@
+/*
+ * 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.seatunnel.connectors.seatunnel.jdbc.internal.dialect.mysql;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class MysqlVersionTest {
+
+    @Test
+    public void testMysqlVersionParse() {
+        Assertions.assertEquals(MySqlVersion.V_5_5, 
MySqlVersion.parse("5.5.0"));
+        Assertions.assertEquals(MySqlVersion.V_5_5, 
MySqlVersion.parse("5.5.1"));
+        Assertions.assertEquals(MySqlVersion.V_5_5, 
MySqlVersion.parse("5.5.12"));
+
+        Assertions.assertEquals(MySqlVersion.V_5_6, 
MySqlVersion.parse("5.6.0"));
+        Assertions.assertEquals(MySqlVersion.V_5_6, 
MySqlVersion.parse("5.6.1"));
+        Assertions.assertEquals(MySqlVersion.V_5_6, 
MySqlVersion.parse("5.6.12"));
+
+        Assertions.assertEquals(MySqlVersion.V_5_7, 
MySqlVersion.parse("5.7.0"));
+        Assertions.assertEquals(MySqlVersion.V_5_7, 
MySqlVersion.parse("5.7.1"));
+        Assertions.assertEquals(MySqlVersion.V_5_7, 
MySqlVersion.parse("5.7.12"));
+
+        Assertions.assertEquals(MySqlVersion.V_8, MySqlVersion.parse("8.0.0"));
+        Assertions.assertEquals(MySqlVersion.V_8, MySqlVersion.parse("8.0.1"));
+        Assertions.assertEquals(MySqlVersion.V_8, 
MySqlVersion.parse("8.0.12"));
+
+        Assertions.assertEquals(MySqlVersion.V_8_1, 
MySqlVersion.parse("8.1.0"));
+        Assertions.assertEquals(MySqlVersion.V_8_1, 
MySqlVersion.parse("8.1.4"));
+        Assertions.assertEquals(MySqlVersion.V_8_1, 
MySqlVersion.parse("8.1.14"));
+
+        Assertions.assertEquals(MySqlVersion.V_8_2, 
MySqlVersion.parse("8.2.0"));
+        Assertions.assertEquals(MySqlVersion.V_8_2, 
MySqlVersion.parse("8.2.4"));
+        Assertions.assertEquals(MySqlVersion.V_8_2, 
MySqlVersion.parse("8.2.14"));
+
+        Assertions.assertEquals(MySqlVersion.V_8_3, 
MySqlVersion.parse("8.3.0"));
+        Assertions.assertEquals(MySqlVersion.V_8_3, 
MySqlVersion.parse("8.3.4"));
+        Assertions.assertEquals(MySqlVersion.V_8_3, 
MySqlVersion.parse("8.3.14"));
+
+        Assertions.assertEquals(MySqlVersion.V_8_4, 
MySqlVersion.parse("8.4.0"));
+        Assertions.assertEquals(MySqlVersion.V_8_4, 
MySqlVersion.parse("8.4.4"));
+        Assertions.assertEquals(MySqlVersion.V_8_4, 
MySqlVersion.parse("8.4.14"));
+    }
+}

Reply via email to