This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 2c0f33a0100 [fix](jdbc catalog) fix mysql zero date (#26569) (#26837)
2c0f33a0100 is described below
commit 2c0f33a0100f03fb72f3d3faf891f45fc735e630
Author: zy-kkk <[email protected]>
AuthorDate: Mon Nov 13 10:29:21 2023 +0800
[fix](jdbc catalog) fix mysql zero date (#26569) (#26837)
---
docker/thirdparties/docker-compose/mysql/init/03-create-table.sql | 5 +++++
docker/thirdparties/docker-compose/mysql/init/04-insert.sql | 5 +++++
.../org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java | 3 +++
.../data/external_table_p0/jdbc/test_mysql_jdbc_catalog.out | 4 ++++
.../suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy | 2 ++
5 files changed, 19 insertions(+)
diff --git a/docker/thirdparties/docker-compose/mysql/init/03-create-table.sql
b/docker/thirdparties/docker-compose/mysql/init/03-create-table.sql
index 3908f73eabe..4467851606a 100644
--- a/docker/thirdparties/docker-compose/mysql/init/03-create-table.sql
+++ b/docker/thirdparties/docker-compose/mysql/init/03-create-table.sql
@@ -326,3 +326,8 @@ CREATE TABLE show_test_do_not_modify.ex_tb2 (
id int,
count_value varchar(20)
);
+
+CREATE TABLE doris_test.test_zd (
+`id` int(10) unsigned NOT NULL,
+`d_z` date NOT NULL
+);
diff --git a/docker/thirdparties/docker-compose/mysql/init/04-insert.sql
b/docker/thirdparties/docker-compose/mysql/init/04-insert.sql
index bcf14c49275..b19765c769f 100644
--- a/docker/thirdparties/docker-compose/mysql/init/04-insert.sql
+++ b/docker/thirdparties/docker-compose/mysql/init/04-insert.sql
@@ -1154,3 +1154,8 @@ INSERT INTO doris_test.dt_null
VALUES ('2023-06-17 10:00:00'),('0000-00-00 00:00:00');
insert into doris_test.test_key_word values (1, 1), (2, 2);
+
+SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_DATE',''));
+SET SESSION sql_mode=(SELECT REPLACE(@@sql_mode,'NO_ZERO_IN_DATE',''));
+
+insert into doris_test.test_zd (id,d_z) VALUES
(1,'0000-00-00'),(2,'2022-01-01');
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
index cb06722a05d..61ba2a0db47 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/client/JdbcMySQLClient.java
@@ -265,6 +265,9 @@ public class JdbcMySQLClient extends JdbcClient {
case "BIGINT":
return Type.BIGINT;
case "DATE":
+ if (convertDateToNull) {
+ fieldSchema.setAllowNull(true);
+ }
return ScalarType.createDateV2Type();
case "TIMESTAMP":
case "DATETIME": {
diff --git
a/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_catalog.out
b/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_catalog.out
index fffbcabacdf..3645341c995 100644
--- a/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_catalog.out
+++ b/regression-test/data/external_table_p0/jdbc/test_mysql_jdbc_catalog.out
@@ -241,6 +241,10 @@ VIEWS
\N
2023-06-17T10:00
+-- !test_dz --
+1 \N
+2 2022-01-01
+
-- !test_insert1 --
doris1 18
diff --git
a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
index 7677a516328..ab810e6af25 100644
---
a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
+++
b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
@@ -62,6 +62,7 @@ suite("test_mysql_jdbc_catalog",
"p0,external,mysql,external_docker,external_doc
String auto_default_t = "auto_default_t";
String dt = "dt";
String dt_null = "dt_null";
+ String test_zd = "test_zd"
try_sql("DROP USER ${user}")
sql """CREATE USER '${user}' IDENTIFIED BY '${pwd}'"""
@@ -163,6 +164,7 @@ suite("test_mysql_jdbc_catalog",
"p0,external,mysql,external_docker,external_doc
order_qt_auto_default_t """insert into ${auto_default_t}(name)
values('a'); """
order_qt_dt """select * from ${dt}; """
order_qt_dt_null """select * from ${dt_null} order by 1; """
+ order_qt_test_dz """select * from ${test_zd} order by 1; """
// test insert
String uuid1 = UUID.randomUUID().toString();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]