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

zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 7c6470265ad Refactor LoadTableMetaDataFailedException (#35004)
7c6470265ad is described below

commit 7c6470265adc8ac988831b61e07f14be3d3b67b7
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sat Mar 15 22:22:03 2025 +0800

    Refactor LoadTableMetaDataFailedException (#35004)
---
 .../content/user-manual/error-code/sql-error-code.cn.md       |  1 +
 .../content/user-manual/error-code/sql-error-code.en.md       |  1 +
 .../mode/exception/LoadTableMetaDataFailedException.java      | 11 +++++++++--
 .../persist/service/ClusterMetaDataManagerPersistService.java |  8 ++------
 .../service/StandaloneMetaDataManagerPersistService.java      |  4 ++--
 5 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/docs/document/content/user-manual/error-code/sql-error-code.cn.md 
b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
index 6233f6cde07..a8d6e3bc931 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.cn.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.cn.md
@@ -21,6 +21,7 @@ SQL 错误码以标准的 SQL State,Vendor Code 和详细错误信息提供,
 | 10004       | 42S02     | Index '%s' does not exist.                         
                                 |
 | 10005       | 42S01     | Index '%s' already exists.                         
                                 |
 | 10010       | HY000     | Rule and storage meta data mismatched, reason is: 
%s.                               |
+| 10012       | HY000     | Load table meta data failed for database '%s' and 
tables '%s'.                      |
 | 10100       | HY000     | Can not %s storage units '%s'.                     
                                 |
 | 10101       | 42S02     | There is no storage unit in database '%s'.         
                                 |
 | 10102       | 44000     | Storage units '%s' do not exist in database '%s'.  
                                 |
diff --git a/docs/document/content/user-manual/error-code/sql-error-code.en.md 
b/docs/document/content/user-manual/error-code/sql-error-code.en.md
index 0e44d8639a0..2843409c195 100644
--- a/docs/document/content/user-manual/error-code/sql-error-code.en.md
+++ b/docs/document/content/user-manual/error-code/sql-error-code.en.md
@@ -22,6 +22,7 @@ SQL error codes provide by standard `SQL State`, `Vendor 
Code` and `Reason`, whi
 | 10005       | 42S01     | Index '%s' already exists.                         
                                 |
 | 10010       | HY000     | Rule and storage meta data mismatched, reason is: 
%s.                               |
 | 10100       | HY000     | Can not %s storage units '%s'.                     
                                 |
+| 10012       | HY000     | Load table meta data failed for database '%s' and 
tables '%s'.                      |
 | 10101       | 42S02     | There is no storage unit in database '%s'.         
                                 |
 | 10102       | 44000     | Storage units '%s' do not exist in database '%s'.  
                                 |
 | 10103       | 44000     | Storage unit '%s' still used by '%s'.              
                                 |
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/exception/LoadTableMetaDataFailedException.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/exception/LoadTableMetaDataFailedException.java
index 4048c192807..6a128e8d17d 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/exception/LoadTableMetaDataFailedException.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/exception/LoadTableMetaDataFailedException.java
@@ -20,12 +20,19 @@ package org.apache.shardingsphere.mode.exception;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.sqlstate.XOpenSQLState;
 import 
org.apache.shardingsphere.infra.exception.core.external.sql.type.kernel.category.MetaDataSQLException;
 
+import java.sql.SQLException;
+import java.util.Collection;
+
 /**
  * Load table meta data failed exception.
  */
 public final class LoadTableMetaDataFailedException extends 
MetaDataSQLException {
     
-    public LoadTableMetaDataFailedException() {
-        super(XOpenSQLState.GENERAL_ERROR, 12, "Failed to load table meta 
data.");
+    public LoadTableMetaDataFailedException(final String databaseName, final 
SQLException cause) {
+        super(XOpenSQLState.GENERAL_ERROR, 12, cause, "Load table meta data 
failed for database '%s'.", databaseName);
+    }
+    
+    public LoadTableMetaDataFailedException(final String databaseName, final 
Collection<String> needReloadTables, final SQLException cause) {
+        super(XOpenSQLState.GENERAL_ERROR, 12, cause, "Load table meta data 
failed for database '%s' and tables '%s'.", databaseName, String.join(", ", 
needReloadTables));
     }
 }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
index 4703962f29f..86b8e7e15d3 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/service/ClusterMetaDataManagerPersistService.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.mode.manager.cluster.persist.service;
 
 import lombok.SneakyThrows;
-import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
 import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
@@ -58,7 +57,6 @@ import java.util.stream.Collectors;
 /**
  * Cluster meta data manager persist service.
  */
-@Slf4j
 public final class ClusterMetaDataManagerPersistService implements 
MetaDataManagerPersistService {
     
     private final MetaDataContextManager metaDataContextManager;
@@ -192,8 +190,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
                 tables.forEach(each -> 
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().drop(databaseName, 
entry.getKey(), each.getName()));
             }
         } catch (final SQLException ex) {
-            log.error("Reload table meta failed, databaseName:{}", 
databaseName, ex);
-            throw new LoadTableMetaDataFailedException();
+            throw new LoadTableMetaDataFailedException(databaseName, ex);
         }
         
Optional.ofNullable(reloadMetaDataContexts.getStatistics().getDatabaseStatistics(databaseName))
                 .ifPresent(optional -> 
optional.getSchemaStatisticsMap().forEach((schemaName, schemaStatistics) -> 
metaDataPersistFacade.getStatisticsService()
@@ -241,8 +238,7 @@ public final class ClusterMetaDataManagerPersistService 
implements MetaDataManag
                 
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().persist(databaseName,
 entry.getKey(), tables);
             }
         } catch (final SQLException ex) {
-            log.error("Reload table meta failed, databaseName:{}, 
needReloadTables:{}", databaseName, needReloadTables, ex);
-            throw new LoadTableMetaDataFailedException();
+            throw new LoadTableMetaDataFailedException(databaseName, 
needReloadTables, ex);
         }
     }
     
diff --git 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
index 819f6076386..637cf5c89a8 100644
--- 
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
+++ 
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/service/StandaloneMetaDataManagerPersistService.java
@@ -213,7 +213,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
                 tables.forEach(each -> 
metaDataPersistFacade.getDatabaseMetaDataFacade().getTable().drop(databaseName, 
entry.getKey(), each.getName()));
             }
         } catch (final SQLException ex) {
-            throw new LoadTableMetaDataFailedException();
+            throw new LoadTableMetaDataFailedException(databaseName, ex);
         }
     }
     
@@ -278,7 +278,7 @@ public final class StandaloneMetaDataManagerPersistService 
implements MetaDataMa
                 tables.forEach(each -> 
metaDataContextManager.getDatabaseMetaDataManager().alterTable(databaseName, 
entry.getKey(), each));
             }
         } catch (final SQLException ex) {
-            throw new LoadTableMetaDataFailedException();
+            throw new LoadTableMetaDataFailedException(databaseName, 
needReloadTables, ex);
         }
     }
     

Reply via email to