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 <zhongy...@gmail.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org