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