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 dead35a330c Abstract default system schema logic (#35319)
dead35a330c is described below

commit dead35a330cf7b24eaf60d0bc76aff5a9ffd81c6
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Sun May 4 19:54:46 2025 +0800

    Abstract default system schema logic (#35319)
    
    * Abstract default system schema logic
    
    - Move default system schema logic from OpenGaussSchemaOption to 
PostgreSQLSchemaOption
    - Update OpenGaussSchemaOption to delegate schema-related methods to 
PostgreSQLSchemaOption
    - Modify OracleSchemaOption to use DefaultSchemaOption for default schema 
logic
    - Refactor DefaultSchemaOption to implement default system schema method
    - Adjust DialectSchemaOption interface to make default system schema method 
non-default
    
    * Abstract default system schema logic
    
    - Move default system schema logic from OpenGaussSchemaOption to 
PostgreSQLSchemaOption
    - Update OpenGaussSchemaOption to delegate schema-related methods to 
PostgreSQLSchemaOption
    - Modify OracleSchemaOption to use DefaultSchemaOption for default schema 
logic
    - Refactor DefaultSchemaOption to implement default system schema method
    - Adjust DialectSchemaOption interface to make default system schema method 
non-default
---
 .../database/metadata/option/schema/DefaultSchemaOption.java |  5 +++++
 .../database/metadata/option/schema/DialectSchemaOption.java |  4 +---
 .../metadata/database/option/OpenGaussSchemaOption.java      | 12 ++++++------
 .../oracle/metadata/database/option/OracleSchemaOption.java  | 12 ++++++++++--
 .../metadata/database/option/PostgreSQLSchemaOption.java     |  8 ++++----
 5 files changed, 26 insertions(+), 15 deletions(-)

diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DefaultSchemaOption.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DefaultSchemaOption.java
index 621a2a483a1..722323a1380 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DefaultSchemaOption.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DefaultSchemaOption.java
@@ -49,4 +49,9 @@ public final class DefaultSchemaOption implements 
DialectSchemaOption {
     public Optional<String> getDefaultSchema() {
         return Optional.ofNullable(defaultSchema);
     }
+    
+    @Override
+    public Optional<String> getDefaultSystemSchema() {
+        return Optional.empty();
+    }
 }
diff --git 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DialectSchemaOption.java
 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DialectSchemaOption.java
index 153f83d9a5f..b0db804edf6 100644
--- 
a/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DialectSchemaOption.java
+++ 
b/infra/database/core/src/main/java/org/apache/shardingsphere/infra/database/core/metadata/database/metadata/option/schema/DialectSchemaOption.java
@@ -52,7 +52,5 @@ public interface DialectSchemaOption {
      *
      * @return default system schema name
      */
-    default Optional<String> getDefaultSystemSchema() {
-        return Optional.empty();
-    }
+    Optional<String> getDefaultSystemSchema();
 }
diff --git 
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/database/option/OpenGaussSchemaOption.java
 
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/database/option/OpenGaussSchemaOption.java
index 4b743f1d5fb..a424f2f8430 100644
--- 
a/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/database/option/OpenGaussSchemaOption.java
+++ 
b/infra/database/type/opengauss/src/main/java/org/apache/shardingsphere/infra/database/opengauss/metadata/database/option/OpenGaussSchemaOption.java
@@ -17,8 +17,8 @@
 
 package 
org.apache.shardingsphere.infra.database.opengauss.metadata.database.option;
 
-import 
org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.schema.DefaultSchemaOption;
 import 
org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.schema.DialectSchemaOption;
+import 
org.apache.shardingsphere.infra.database.postgresql.metadata.database.option.PostgreSQLSchemaOption;
 
 import java.sql.Connection;
 import java.util.Optional;
@@ -28,25 +28,25 @@ import java.util.Optional;
  */
 public final class OpenGaussSchemaOption implements DialectSchemaOption {
     
-    private final DialectSchemaOption defaultSchemaOption = new 
DefaultSchemaOption(true, "public");
+    private final DialectSchemaOption delegate = new PostgreSQLSchemaOption();
     
     @Override
     public boolean isSchemaAvailable() {
-        return defaultSchemaOption.isSchemaAvailable();
+        return delegate.isSchemaAvailable();
     }
     
     @Override
     public String getSchema(final Connection connection) {
-        return defaultSchemaOption.getSchema(connection);
+        return delegate.getSchema(connection);
     }
     
     @Override
     public Optional<String> getDefaultSchema() {
-        return defaultSchemaOption.getDefaultSchema();
+        return delegate.getDefaultSchema();
     }
     
     @Override
     public Optional<String> getDefaultSystemSchema() {
-        return Optional.of("pg_catalog");
+        return delegate.getDefaultSystemSchema();
     }
 }
diff --git 
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/database/option/OracleSchemaOption.java
 
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/database/option/OracleSchemaOption.java
index 26befec0580..e3bbab379de 100644
--- 
a/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/database/option/OracleSchemaOption.java
+++ 
b/infra/database/type/oracle/src/main/java/org/apache/shardingsphere/infra/database/oracle/metadata/database/option/OracleSchemaOption.java
@@ -17,6 +17,7 @@
 
 package 
org.apache.shardingsphere.infra.database.oracle.metadata.database.option;
 
+import 
org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.schema.DefaultSchemaOption;
 import 
org.apache.shardingsphere.infra.database.core.metadata.database.metadata.option.schema.DialectSchemaOption;
 
 import java.sql.Connection;
@@ -28,9 +29,11 @@ import java.util.Optional;
  */
 public final class OracleSchemaOption implements DialectSchemaOption {
     
+    private final DialectSchemaOption delegate = new DefaultSchemaOption(true, 
null);
+    
     @Override
     public boolean isSchemaAvailable() {
-        return true;
+        return delegate.isSchemaAvailable();
     }
     
     @Override
@@ -44,6 +47,11 @@ public final class OracleSchemaOption implements 
DialectSchemaOption {
     
     @Override
     public Optional<String> getDefaultSchema() {
-        return Optional.empty();
+        return delegate.getDefaultSchema();
+    }
+    
+    @Override
+    public Optional<String> getDefaultSystemSchema() {
+        return delegate.getDefaultSystemSchema();
     }
 }
diff --git 
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/database/option/PostgreSQLSchemaOption.java
 
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/database/option/PostgreSQLSchemaOption.java
index 6bbba13d7cc..b19ef7f2e79 100644
--- 
a/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/database/option/PostgreSQLSchemaOption.java
+++ 
b/infra/database/type/postgresql/src/main/java/org/apache/shardingsphere/infra/database/postgresql/metadata/database/option/PostgreSQLSchemaOption.java
@@ -28,21 +28,21 @@ import java.util.Optional;
  */
 public final class PostgreSQLSchemaOption implements DialectSchemaOption {
     
-    private final DialectSchemaOption defaultSchemaOption = new 
DefaultSchemaOption(true, "public");
+    private final DialectSchemaOption delegate = new DefaultSchemaOption(true, 
"public");
     
     @Override
     public boolean isSchemaAvailable() {
-        return defaultSchemaOption.isSchemaAvailable();
+        return delegate.isSchemaAvailable();
     }
     
     @Override
     public String getSchema(final Connection connection) {
-        return defaultSchemaOption.getSchema(connection);
+        return delegate.getSchema(connection);
     }
     
     @Override
     public Optional<String> getDefaultSchema() {
-        return defaultSchemaOption.getDefaultSchema();
+        return delegate.getDefaultSchema();
     }
     
     @Override

Reply via email to