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

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new e9921d7a076 branch-2.1: [fix](external catalog) Fixed non-master FE 
log replay during refresh (#46373)
e9921d7a076 is described below

commit e9921d7a07606944fd5d798d866cc8fdb39c4d3e
Author: zy-kkk <zhongy...@gmail.com>
AuthorDate: Fri Jan 3 22:03:30 2025 +0800

    branch-2.1: [fix](external catalog) Fixed non-master FE log replay during 
refresh (#46373)
    
    cherry-pick #46369
---
 .../java/org/apache/doris/datasource/ExternalCatalog.java     |  2 +-
 .../java/org/apache/doris/datasource/ExternalDatabase.java    |  2 +-
 .../external_table_p0/lower_case/test_conflict_name.groovy    | 10 ++++++++--
 .../lower_case/test_lower_case_meta_include.groovy            | 10 ++++++++--
 .../lower_case/test_lower_case_meta_show_and_select.groovy    | 10 ++++++++--
 ...wer_case_meta_with_lower_table_conf_show_and_select.groovy | 11 ++++++++---
 .../external_table_p0/lower_case/test_lower_case_mtmv.groovy  | 10 ++++++++--
 .../lower_case/test_meta_cache_select_without_refresh.groovy  | 10 ++++++++--
 .../lower_case/test_meta_names_mapping.groovy                 | 10 ++++++++--
 .../lower_case/test_timing_refresh_catalog.groovy             | 10 ++++++++--
 .../suites/external_table_p0/lower_case/upgrade/load.groovy   |  8 ++++++--
 11 files changed, 72 insertions(+), 21 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
index 843cd9ef2fb..f9cd27baa81 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalCatalog.java
@@ -718,7 +718,7 @@ public abstract class ExternalCatalog
 
     public void replayInitCatalog(InitCatalogLog log) {
         // If the remote name is missing during upgrade, all databases in the 
Map will be reinitialized.
-        if (log.getRemoteDbNames() == null || 
log.getRemoteDbNames().isEmpty()) {
+        if (log.getCreateCount() > 0 && (log.getRemoteDbNames() == null || 
log.getRemoteDbNames().isEmpty())) {
             dbNameToId = Maps.newConcurrentMap();
             idToDb = Maps.newConcurrentMap();
             lastUpdateTime = log.getLastUpdateTime();
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java
index e7eb3949eae..cbacf563c32 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/ExternalDatabase.java
@@ -191,7 +191,7 @@ public abstract class ExternalDatabase<T extends 
ExternalTable>
 
     public void replayInitDb(InitDatabaseLog log, ExternalCatalog catalog) {
         // If the remote name is missing during upgrade, all tables in the Map 
will be reinitialized.
-        if (log.getRemoteTableNames() == null || 
log.getRemoteTableNames().isEmpty()) {
+        if (log.getCreateCount() > 0 && (log.getRemoteTableNames() == null || 
log.getRemoteTableNames().isEmpty())) {
             tableNameToId = Maps.newConcurrentMap();
             idToTbl = Maps.newConcurrentMap();
             lastUpdateTime = log.getLastUpdateTime();
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_conflict_name.groovy 
b/regression-test/suites/external_table_p0/lower_case/test_conflict_name.groovy
index 6187d47b645..43d6a68c1ad 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_conflict_name.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_conflict_name.groovy
@@ -18,12 +18,16 @@
 suite("test_conflict_name", "p0,external,doris,meta_names_mapping") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_conflict_name_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     sql """drop database if exists internal.external_conflict_name; """
     sql """drop database if exists internal.EXTERNAL_CONFLICT_NAME; """
     sql """create database if not exists internal.external_conflict_name; """
@@ -91,4 +95,6 @@ suite("test_conflict_name", 
"p0,external,doris,meta_names_mapping") {
 
     sql """drop database if exists internal.external_conflict_name; """
     sql """drop database if exists internal.EXTERNAL_CONFLICT_NAME; """
+
+    try_sql """drop user ${jdbcUser}"""
 }
\ No newline at end of file
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_include.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_include.groovy
index 854eb06a8e2..cd48678f25c 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_include.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_include.groovy
@@ -18,12 +18,16 @@
 suite("test_lower_case_meta_include", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_lower_include_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     String mapping_db = """
     {
         "databases": [
@@ -155,4 +159,6 @@ suite("test_lower_case_meta_include", 
"p0,external,doris,external_docker,externa
     sql """drop catalog if exists test_lower_case_exclude """
     sql """drop database if exists internal.external_INCLUDE; """
     sql """drop database if exists internal.external_EXCLUDE; """
+
+    try_sql """drop user ${jdbcUser}"""
 }
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_show_and_select.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_show_and_select.groovy
index d4efd141c2d..7b61216e949 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_show_and_select.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_show_and_select.groovy
@@ -18,12 +18,16 @@
 suite("test_lower_case_meta_show_and_select", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_lower_without_conf_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     sql """drop database if exists internal.external_test_lower; """
     sql """drop database if exists internal.external_test_UPPER; """
     sql """create database if not exists internal.external_test_lower; """
@@ -251,4 +255,6 @@ suite("test_lower_case_meta_show_and_select", 
"p0,external,doris,external_docker
 
     sql """drop database if exists internal.external_test_lower; """
     sql """drop database if exists internal.external_test_UPPER; """
+
+    try_sql """drop user ${jdbcUser}"""
 }
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_with_lower_table_conf_show_and_select.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_with_lower_table_conf_show_and_select.groovy
index 4f6efc829c3..b310a5bd614 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_with_lower_table_conf_show_and_select.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_meta_with_lower_table_conf_show_and_select.groovy
@@ -18,14 +18,17 @@
 suite("test_lower_case_meta_with_lower_table_conf_show_and_select", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_lower_with_conf"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     sql """drop database if exists internal.external_test_lower_with_conf; """
-    sql """drop database if exists internal.external_test_UPPER_with_conf; """
     sql """create database if not exists 
internal.external_test_lower_with_conf; """
     sql """create table if not exists 
internal.external_test_lower_with_conf.lower_with_conf
          (id int, name varchar(20))
@@ -699,4 +702,6 @@ 
suite("test_lower_case_meta_with_lower_table_conf_show_and_select", "p0,external
     sql """drop catalog if exists test_cache_true_lower_true_with_conf0 """
 
     sql """drop database if exists internal.external_test_lower_with_conf; """
+
+    try_sql """drop user ${jdbcUser}"""
 }
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_mtmv.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_mtmv.groovy
index 40322a22afe..f72b3c9e68d 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_lower_case_mtmv.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_lower_case_mtmv.groovy
@@ -18,12 +18,16 @@
 suite("test_lower_case_mtmv", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_lower_case_mtmv_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     sql """drop database if exists internal.EXTERNAL_LOWER_MTMV; """
     sql """create database if not exists internal.EXTERNAL_LOWER_MTMV;"""
     sql """create table if not exists internal.EXTERNAL_LOWER_MTMV.TABLE_TEST
@@ -61,4 +65,6 @@ suite("test_lower_case_mtmv", 
"p0,external,doris,external_docker,external_docker
 
     sql """drop catalog if exists test_lower_case_mtmv """
     sql """drop database if exists internal.EXTERNAL_LOWER_MTMV """
+
+    try_sql """drop user ${jdbcUser}"""
 }
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_meta_cache_select_without_refresh.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_meta_cache_select_without_refresh.groovy
index e8351784212..4a58fcd65a1 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_meta_cache_select_without_refresh.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_meta_cache_select_without_refresh.groovy
@@ -18,12 +18,16 @@
 suite("test_meta_cache_select_without_refresh", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_meta_cache_select_without_refresh_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     sql """ drop database if exists 
internal.external_lower_select_without_refresh; """
     sql """create database if not exists 
internal.external_lower_select_without_refresh;"""
 
@@ -89,4 +93,6 @@ suite("test_meta_cache_select_without_refresh", 
"p0,external,doris,external_dock
     sql """drop catalog if exists 
test_meta_cache_lower_true_select_without_refresh """
     sql """drop catalog if exists 
test_meta_cache_lower_false_select_without_refresh """
     sql """drop database if exists 
internal.external_lower_select_without_refresh; """
+
+    try_sql """drop user ${jdbcUser}"""
 }
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_meta_names_mapping.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_meta_names_mapping.groovy
index 1cf48b17c87..b58077295b3 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_meta_names_mapping.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_meta_names_mapping.groovy
@@ -18,12 +18,16 @@
 suite("test_meta_names_mapping", "p0,external,doris,meta_names_mapping") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_meta_names_mapping_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     String validMetaNamesMapping = """
     {
         "databases": [
@@ -286,4 +290,6 @@ suite("test_meta_names_mapping", 
"p0,external,doris,meta_names_mapping") {
 
     sql """drop database if exists internal.external_meta_names_mapping; """
     sql """drop database if exists internal.EXTERNAL_META_NAMES_MAPPING; """
+
+    try_sql """drop user ${jdbcUser}"""
 }
\ No newline at end of file
diff --git 
a/regression-test/suites/external_table_p0/lower_case/test_timing_refresh_catalog.groovy
 
b/regression-test/suites/external_table_p0/lower_case/test_timing_refresh_catalog.groovy
index 19d7e2db180..a95da3b5d67 100644
--- 
a/regression-test/suites/external_table_p0/lower_case/test_timing_refresh_catalog.groovy
+++ 
b/regression-test/suites/external_table_p0/lower_case/test_timing_refresh_catalog.groovy
@@ -18,12 +18,16 @@
 suite("test_timing_refresh_catalog", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_timing_refresh_catalog_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     String mapping = """
     {
         "databases": [
@@ -158,4 +162,6 @@ suite("test_timing_refresh_catalog", 
"p0,external,doris,external_docker,external
     sql """drop catalog if exists test_timing_refresh_catalog1 """
     sql """drop catalog if exists test_timing_refresh_catalog2 """
     sql """drop database if exists internal.external_timing_refresh_catalog """
+
+    try_sql """drop user ${jdbcUser}"""
 }
\ No newline at end of file
diff --git 
a/regression-test/suites/external_table_p0/lower_case/upgrade/load.groovy 
b/regression-test/suites/external_table_p0/lower_case/upgrade/load.groovy
index 0ea89d4012d..ef03f97d0e2 100644
--- a/regression-test/suites/external_table_p0/lower_case/upgrade/load.groovy
+++ b/regression-test/suites/external_table_p0/lower_case/upgrade/load.groovy
@@ -18,12 +18,16 @@
 suite("test_upgrade_lower_case_catalog_prepare", 
"p0,external,doris,external_docker,external_docker_doris") {
 
     String jdbcUrl = context.config.jdbcUrl
-    String jdbcUser = context.config.jdbcUser
-    String jdbcPassword = context.config.jdbcPassword
+    String jdbcUser = "test_upgrade_lower_case_catalog_user"
+    String jdbcPassword = "C123_567p"
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-j-8.3.0.jar";
 
+    try_sql """drop user ${jdbcUser}"""
+    sql """create user ${jdbcUser} identified by '${jdbcPassword}'"""
+    sql """grant all on *.*.* to ${jdbcUser}"""
+
     sql """drop database if exists internal.upgrade_lower_case_catalog_lower; 
"""
     sql """drop database if exists internal.upgrade_lower_case_catalog_UPPER; 
"""
     sql """create database if not exists 
internal.upgrade_lower_case_catalog_lower; """


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to