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

duanzhengqiang 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 3ab9efb  persist schema tables node when create database (#14138)
3ab9efb is described below

commit 3ab9efb6fbd91b8de5704cb5683ee34a796c44f8
Author: Haoran Meng <[email protected]>
AuthorDate: Fri Dec 17 18:27:17 2021 +0800

    persist schema tables node when create database (#14138)
    
    Co-authored-by: shardingsphere <[email protected]>
---
 .../org/apache/shardingsphere/mode/manager/ContextManager.java   | 2 +-
 .../metadata/persist/service/SchemaMetaDataPersistService.java   | 9 +++++++++
 .../service/SchemaMetaDataMetaDataPersistServiceTest.java        | 6 ++++++
 3 files changed, 16 insertions(+), 1 deletion(-)

diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 659d420..1def3dc 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -128,7 +128,7 @@ public final class ContextManager implements AutoCloseable {
         
metaDataContexts.getOptimizerContext().getFederationMetaData().getSchemas().put(schemaName,
                 
newMetaDataContexts.getOptimizerContext().getFederationMetaData().getSchemas().get(schemaName));
         metaDataContexts.getMetaDataMap().put(schemaName, 
newMetaDataContexts.getMetaData(schemaName));
-        metaDataContexts.getMetaDataPersistService().ifPresent(optional -> 
optional.getSchemaMetaDataService().persist(schemaName, null));
+        metaDataContexts.getMetaDataPersistService().ifPresent(optional -> 
optional.getSchemaMetaDataService().persist(schemaName));
     }
     
     /**
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataPersistService.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataPersistService.java
index 2654730..03ffafd 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataPersistService.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataPersistService.java
@@ -56,6 +56,15 @@ public final class SchemaMetaDataPersistService {
     }
     
     /**
+     * Persist schema tables.
+     * 
+     * @param schemaName schema name
+     */
+    public void persist(final String schemaName) {
+        
repository.persist(SchemaMetaDataNode.getMetaDataTablesPath(schemaName), "");
+    }
+    
+    /**
      * Delete schema.
      *
      * @param schemaName schema name to be deleted
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataMetaDataPersistServiceTest.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataMetaDataPersistServiceTest.java
index 654aa11..2ecb31f 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataMetaDataPersistServiceTest.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/metadata/persist/service/SchemaMetaDataMetaDataPersistServiceTest.java
@@ -65,6 +65,12 @@ public final class SchemaMetaDataMetaDataPersistServiceTest {
     }
     
     @Test
+    public void assertPersistSchemaTables() {
+        new SchemaMetaDataPersistService(repository).persist("foo_db");
+        verify(repository).persist(eq("/metadata/foo_db/tables"), anyString());
+    }
+    
+    @Test
     public void assertDelete() {
         new SchemaMetaDataPersistService(repository).delete("foo_db");
         verify(repository).delete("/metadata/foo_db");

Reply via email to