From d2968dcf994bf4b953531c5c51222d1c5d547d0a Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Wed, 20 Mar 2024 23:13:16 +0800 Subject: [PATCH] [fix](jdbc catalog) Fixed the problem that the metadata_refresh_interval_sec properties cannot be set (#32516) --- .../doris/datasource/jdbc/JdbcExternalCatalog.java | 9 +++++---- .../jdbc/test_mysql_jdbc_catalog.groovy | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java index 0edabdaca0..4892a56ca5 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java +++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/jdbc/JdbcExternalCatalog.java @@ -22,6 +22,7 @@ import org.apache.doris.catalog.JdbcResource; import org.apache.doris.catalog.JdbcTable; import org.apache.doris.catalog.TableIf.TableType; import org.apache.doris.common.DdlException; +import org.apache.doris.datasource.CatalogMgr; import org.apache.doris.datasource.CatalogProperty; import org.apache.doris.datasource.ExternalCatalog; import org.apache.doris.datasource.InitCatalogLog; @@ -85,10 +86,10 @@ public class JdbcExternalCatalog extends ExternalCatalog { throw new DdlException("Required property '" + requiredProperty + "' is missing"); } } - - Map propertiesWithoutCheckSum = Maps.newHashMap(catalogProperty.getProperties()); - propertiesWithoutCheckSum.remove(JdbcResource.CHECK_SUM); - JdbcResource.validateProperties(propertiesWithoutCheckSum); + Map propertiesIncludeRequired = Maps.newHashMap(catalogProperty.getProperties()); + propertiesIncludeRequired.remove(JdbcResource.CHECK_SUM); + propertiesIncludeRequired.remove(CatalogMgr.METADATA_REFRESH_INTERVAL_SEC); + JdbcResource.validateProperties(propertiesIncludeRequired); JdbcResource.checkBooleanProperty(JdbcResource.ONLY_SPECIFIED_DATABASE, getOnlySpecifiedDatabase()); JdbcResource.checkBooleanProperty(JdbcResource.LOWER_CASE_META_NAMES, getLowerCaseMetaNames()); 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 d990c12b36..04a3889ff8 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 @@ -601,6 +601,20 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql,external_docker,external_doc ); """ sql """ drop catalog if exists mysql_lower_case_catalog3; """ + + sql """drop catalog if exists mysql_refresh_property;""" + + sql """create catalog if not exists mysql_refresh_property properties( + "type"="jdbc", + "user"="root", + "password"="123456", + "jdbc_url" = "jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false&zeroDateTimeBehavior=convertToNull", + "driver_url" = "${driver_url}", + "driver_class" = "com.mysql.cj.jdbc.Driver", + "metadata_refresh_interval_sec" = "5" + );""" + + sql """drop catalog if exists mysql_refresh_property;""" } }