This is an automated email from the ASF dual-hosted git repository.
zhaojinchao pushed a commit to branch 5.5.0-release
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/5.5.0-release by this push:
new 7254edca930 Fix table meta data not update when use refresh table
metadata (#30913) (#30914)
7254edca930 is described below
commit 7254edca93086aa0bbc7148ee7c308078f821a56
Author: zhaojinchao <[email protected]>
AuthorDate: Tue Apr 16 16:14:57 2024 +0800
Fix table meta data not update when use refresh table metadata (#30913)
(#30914)
---
.../apache/shardingsphere/mode/manager/ContextManager.java | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index ba07398303c..699054e8be5 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -137,11 +137,13 @@ public final class ContextManager implements
AutoCloseable {
MetaDataBasedPersistService persistService =
metaDataContexts.get().getPersistService();
if (force) {
metaDataContexts.set(reloadedMetaDataContexts);
- database.getSchemas().forEach((schemaName, schema) ->
persistService.getDatabaseMetaDataService().persistByAlterConfiguration(database.getName(),
schemaName, schema));
+
metaDataContexts.get().getMetaData().getDatabase(database.getName()).getSchemas()
+ .forEach((schemaName, schema) ->
persistService.getDatabaseMetaDataService().persistByAlterConfiguration(database.getName(),
schemaName, schema));
} else {
deletedSchemaNames(database.getName(),
reloadedMetaDataContexts.getMetaData().getDatabase(database.getName()),
database);
metaDataContexts.set(reloadedMetaDataContexts);
- database.getSchemas().forEach((schemaName, schema) ->
persistService.getDatabaseMetaDataService().compareAndPersist(database.getName(),
schemaName, schema));
+
metaDataContexts.get().getMetaData().getDatabase(database.getName()).getSchemas()
+ .forEach((schemaName, schema) ->
persistService.getDatabaseMetaDataService().compareAndPersist(database.getName(),
schemaName, schema));
}
} catch (final SQLException ex) {
log.error("Refresh database meta data: {} failed",
database.getName(), ex);
@@ -156,9 +158,10 @@ public final class ContextManager implements AutoCloseable
{
public void refreshTableMetaData(final ShardingSphereDatabase database) {
try {
MetaDataContexts reloadedMetaDataContexts =
createMetaDataContexts(database);
- deletedSchemaNames(database.getName(), database, database);
+ deletedSchemaNames(database.getName(),
reloadedMetaDataContexts.getMetaData().getDatabase(database.getName()),
database);
metaDataContexts.set(reloadedMetaDataContexts);
- database.getSchemas().forEach((schemaName, schema) ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().compareAndPersist(database.getName(),
schemaName, schema));
+
metaDataContexts.get().getMetaData().getDatabase(database.getName()).getSchemas()
+ .forEach((schemaName, schema) ->
metaDataContexts.get().getPersistService().getDatabaseMetaDataService().compareAndPersist(database.getName(),
schemaName, schema));
} catch (final SQLException ex) {
log.error("Refresh table meta data: {} failed",
database.getName(), ex);
}