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 7c50dd4761a Add more test cases on OpenGaussDatabaseMetaDataTest
(#38130)
7c50dd4761a is described below
commit 7c50dd4761a6eeaaefecd9f233175edb9d74da53
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Feb 22 11:31:55 2026 +0800
Add more test cases on OpenGaussDatabaseMetaDataTest (#38130)
---
.../database/OpenGaussDatabaseMetaDataTest.java | 79 ++++++++++++++++++++--
1 file changed, 74 insertions(+), 5 deletions(-)
diff --git
a/database/connector/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/connector/opengauss/metadata/database/OpenGaussDatabaseMetaDataTest.java
b/database/connector/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/connector/opengauss/metadata/database/OpenGaussDatabaseMetaDataTest.java
index 8a70230b246..1c6ac4f70a5 100644
---
a/database/connector/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/connector/opengauss/metadata/database/OpenGaussDatabaseMetaDataTest.java
+++
b/database/connector/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/connector/opengauss/metadata/database/OpenGaussDatabaseMetaDataTest.java
@@ -17,22 +17,34 @@
package
org.apache.shardingsphere.database.connector.opengauss.metadata.database;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.enums.NullsOrderType;
import
org.apache.shardingsphere.database.connector.core.metadata.database.enums.QuoteCharacter;
import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.DialectDatabaseMetaData;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.IdentifierPatternType;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.schema.DialectSchemaOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.table.DialectDriverQuerySystemCatalogOption;
+import
org.apache.shardingsphere.database.connector.core.metadata.database.metadata.option.transaction.DialectTransactionOption;
import
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
+import
org.apache.shardingsphere.database.connector.opengauss.metadata.database.option.OpenGaussDataTypeOption;
+import
org.apache.shardingsphere.database.connector.opengauss.metadata.database.option.OpenGaussSchemaOption;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.junit.jupiter.api.Test;
+import java.sql.Connection;
import java.util.Optional;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isA;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
class OpenGaussDatabaseMetaDataTest {
- private final DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class,
TypedSPILoader.getService(DatabaseType.class, "openGauss"));
+ private final DatabaseType databaseType =
TypedSPILoader.getService(DatabaseType.class, "openGauss");
+
+ private final DialectDatabaseMetaData dialectDatabaseMetaData =
DatabaseTypedSPILoader.getService(DialectDatabaseMetaData.class, databaseType);
@Test
void assertGetQuoteCharacter() {
@@ -40,12 +52,69 @@ class OpenGaussDatabaseMetaDataTest {
}
@Test
- void assertIsSchemaAvailable() {
-
assertTrue(dialectDatabaseMetaData.getSchemaOption().isSchemaAvailable());
+ void assertGetIdentifierPatternType() {
+ assertThat(dialectDatabaseMetaData.getIdentifierPatternType(),
is(IdentifierPatternType.LOWER_CASE));
+ }
+
+ @Test
+ void assertGetDefaultNullsOrderType() {
+ assertThat(dialectDatabaseMetaData.getDefaultNullsOrderType(),
is(NullsOrderType.HIGH));
+ }
+
+ @Test
+ void assertGetDataTypeOption() {
+ assertThat(dialectDatabaseMetaData.getDataTypeOption(),
isA(OpenGaussDataTypeOption.class));
+ }
+
+ @Test
+ void assertGetDriverQuerySystemCatalogOption() {
+ Optional<DialectDriverQuerySystemCatalogOption> actual =
dialectDatabaseMetaData.getDriverQuerySystemCatalogOption();
+ assertTrue(actual.isPresent());
+ assertTrue(actual.map(each ->
each.isSystemCatalogQueryExpressions("version()")).orElse(false));
+ assertTrue(actual.map(each ->
each.isSystemCatalogQueryExpressions("VERSION()")).orElse(false));
+ assertTrue(actual.map(each ->
each.isSystemTable("PG_DATABASE")).orElse(false));
+ assertTrue(actual.map(each ->
each.isDatabaseDataTable("PG_DATABASE")).orElse(false));
+ assertTrue(actual.map(each ->
each.isTableDataTable("PG_TABLES")).orElse(false));
+ assertTrue(actual.map(each ->
each.isRoleDataTable("PG_ROLES")).orElse(false));
+
assertThat(actual.map(DialectDriverQuerySystemCatalogOption::getDatCompatibility).orElse(""),
is("PG"));
+ }
+
+ @Test
+ void assertGetSchemaOption() {
+ DialectSchemaOption actual = dialectDatabaseMetaData.getSchemaOption();
+ assertThat(actual, isA(OpenGaussSchemaOption.class));
+ assertTrue(actual.isSchemaAvailable());
+ assertThat(actual.getDefaultSchema(), is(Optional.of("public")));
+ assertThat(actual.getDefaultSystemSchema(),
is(Optional.of("pg_catalog")));
+ }
+
+ @Test
+ void assertGetIndexOption() {
+
assertTrue(dialectDatabaseMetaData.getIndexOption().isSchemaUniquenessLevel());
+ }
+
+ @Test
+ void assertGetTransactionOption() {
+ DialectTransactionOption actual =
dialectDatabaseMetaData.getTransactionOption();
+ assertTrue(actual.isSupportGlobalCSN());
+ assertFalse(actual.isDDLNeedImplicitCommit());
+ assertFalse(actual.isSupportAutoCommitInNestedTransaction());
+ assertTrue(actual.isSupportDDLInXATransaction());
+ assertFalse(actual.isSupportMetaDataRefreshInTransaction());
+ assertThat(actual.getDefaultIsolationLevel(),
is(Connection.TRANSACTION_READ_COMMITTED));
+ assertTrue(actual.isReturnRollbackStatementWhenCommitFailed());
+ assertTrue(actual.isAllowCommitAndRollbackOnlyWhenTransactionFailed());
+ assertThat(actual.getXaDriverClassNames().size(), is(1));
+
assertTrue(actual.getXaDriverClassNames().contains("org.opengauss.xa.PGXADataSource"));
+ }
+
+ @Test
+ void assertGetProtocolVersionOption() {
+
assertThat(dialectDatabaseMetaData.getProtocolVersionOption().getDefaultVersion(),
is("9.2.4"));
}
@Test
- void assertGetDefaultSchema() {
-
assertThat(dialectDatabaseMetaData.getSchemaOption().getDefaultSchema(),
is(Optional.of("public")));
+ void assertIsCaseSensitive() {
+ assertTrue(dialectDatabaseMetaData.isCaseSensitive());
}
}