From 3e5f3101a4db72ae2dff450d6af6f2eeae3b66a6 Mon Sep 17 00:00:00 2001 From: linghengqian Date: Fri, 10 Jan 2025 23:06:50 +0800 Subject: [PATCH] Add GraalVM Reachability Metadata and corresponding nativeTest for Firebird --- RELEASE-NOTES.md | 1 + .../graalvm-native-image/_index.cn.md | 2 + .../graalvm-native-image/_index.en.md | 2 + .../unsupported/p6spy/_index.cn.md | 2 +- .../unsupported/p6spy/_index.en.md | 2 +- .../optional-plugins/seata-at/_index.cn.md | 2 +- .../optional-plugins/seata-at/_index.en.md | 2 +- infra/database/type/firebird/pom.xml | 7 + .../FirebirdConnectionPropertiesParser.java | 21 +- ...irebirdConnectionPropertiesParserTest.java | 23 +- .../reflect-config.json | 124 ++-- .../resource-config.json | 609 +++++++++--------- .../reflect-config.json | 10 + .../jaybird/5.0.6.java8/reflect-config.json | 108 ++++ .../jaybird/5.0.6.java8/resource-config.json | 50 ++ .../jta/5.12.7.Final/reflect-config.json | 25 + .../jta/5.12.7.Final/resource-config.json | 3 + pom.xml | 7 + test/native/pom.xml | 6 + .../natived/commons/TestShardingService.java | 17 +- .../commons/proxy/ProxyTestingServer.java | 8 +- .../commons/repository/AddressRepository.java | 36 +- .../repository/OrderItemRepository.java | 42 +- .../commons/repository/OrderRepository.java | 44 +- .../jdbc/databases/ClickHouseTest.java | 22 +- .../natived/jdbc/databases/FirebirdTest.java | 152 +++++ .../natived/jdbc/databases/MySQLTest.java | 14 +- .../natived/jdbc/databases/OpenGaussTest.java | 18 +- .../natived/jdbc/databases/PostgresTest.java | 13 +- .../natived/jdbc/databases/SQLServerTest.java | 13 +- .../jdbc/databases/hive/AcidTableTest.java | 12 +- .../jdbc/databases/hive/IcebergTest.java | 12 +- .../hive/StandaloneMetastoreTest.java | 12 +- .../hive/ZookeeperServiceDiscoveryTest.java | 12 +- .../natived/jdbc/features/EncryptTest.java | 26 +- .../test/natived/jdbc/features/MaskTest.java | 26 +- .../jdbc/features/ReadWriteSplittingTest.java | 26 +- .../natived/jdbc/features/ShadowTest.java | 26 +- .../natived/jdbc/features/ShardingTest.java | 16 +- .../natived/jdbc/modes/cluster/EtcdTest.java | 13 +- .../jdbc/modes/cluster/ZookeeperTest.java | 13 +- .../jdbc/transactions/base/SeataTest.java | 8 +- .../jdbc/transactions/xa/AtomikosTest.java | 16 +- .../jdbc/transactions/xa/NarayanaTest.java | 16 +- .../natived/proxy/databases/MySQLTest.java | 2 +- .../natived/proxy/databases/PostgresTest.java | 2 +- .../proxy/transactions/base/SeataTest.java | 16 +- .../reflect-config.json | 8 + .../yaml/jdbc/databases/firebird.yaml | 69 ++ 49 files changed, 1254 insertions(+), 462 deletions(-) create mode 100644 infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/reflect-config.json create mode 100644 infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/resource-config.json create mode 100644 test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/FirebirdTest.java create mode 100644 test/native/src/test/resources/test-native/yaml/jdbc/databases/firebird.yaml diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 940404707d6b4..9394cc2854c04 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -55,6 +55,7 @@ 1. Agent: Simplify the use of Agent's Docker Image - [#33356](https://github.com/apache/shardingsphere/pull/33356) 1. Mode: Support modifying Hikari-CP configurations via props in standalone mode [#34185](https://github.com/apache/shardingsphere/pull/34185) 1. Encrypt: Support insert statement rewrite use quote [#34259](https://github.com/apache/shardingsphere/pull/34259) +1. Proxy Native: Add GraalVM Reachability Metadata and corresponding nativeTest for Firebird - [#34307](https://github.com/apache/shardingsphere/pull/34307) ### Bug Fixes diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md index ed2a75dbc6937..f18270218c9f5 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.cn.md @@ -322,6 +322,8 @@ Args=--initialize-at-run-time=\ io.grpc.netty.shaded.io.netty.util.AttributeKey ``` +ShardingSphere 的单元测试仅使用 Maven 模块 `io.github.linghengqian:hive-server2-jdbc-driver-thin` 来在 GraalVM Native Image 下验证可用性。 + 8. 由于 https://github.com/oracle/graal/issues/7979 的影响, 对应 `com.oracle.database.jdbc:ojdbc8` Maven 模块的 Oracle JDBC Driver 无法在 GraalVM Native Image 下使用。 diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md index e0bd4a94c10a3..8ebe31f5e4248 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/graalvm-native-image/_index.en.md @@ -336,6 +336,8 @@ Args=--initialize-at-run-time=\ io.grpc.netty.shaded.io.netty.util.AttributeKey ``` +ShardingSphere's unit test only uses the Maven module `io.github.linghengqian:hive-server2-jdbc-driver-thin` to verify the availability under GraalVM Native Image. + 8. Due to https://github.com/oracle/graal/issues/7979 , the Oracle JDBC Driver corresponding to the `com.oracle.database.jdbc:ojdbc8` Maven module cannot be used under GraalVM Native Image. diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md index dd5418d15faee..5c7f25a593a25 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.cn.md @@ -143,7 +143,7 @@ public class ExampleUtils { Statement statement = connection.createStatement()) { statement.execute("INSERT INTO t_order (user_id, order_type, address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')"); statement.executeQuery("SELECT * FROM t_order"); - statement.execute("alter table t_order delete where order_id=1"); + statement.execute("DELETE FROM t_order WHERE order_id=1"); } } } diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.en.md index ab5b29894ba74..7b07f7dd23825 100644 --- a/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.en.md +++ b/docs/document/content/user-manual/shardingsphere-jdbc/unsupported/p6spy/_index.en.md @@ -145,7 +145,7 @@ public class ExampleUtils { Statement statement = connection.createStatement()) { statement.execute("INSERT INTO t_order (user_id, order_type, address_id, status) VALUES (1, 1, 1, 'INSERT_TEST')"); statement.executeQuery("SELECT * FROM t_order"); - statement.execute("alter table t_order delete where order_id=1"); + statement.execute("DELETE FROM t_order WHERE order_id=1"); } } } diff --git a/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.cn.md b/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.cn.md index 425f0f0472d78..1212ce88be69f 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.cn.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.cn.md @@ -40,7 +40,7 @@ sdk install java 23-open sdk use java 23-open sdk install maven 3.9.9 sdk use maven 3.9.9 -mvn clean dependency:get -Dartifact=org.apache.seata:seata-all:2.2.0 +mvn dependency:get -Dartifact=org.apache.seata:seata-all:2.2.0 mvn -f ~/.m2/repository/org/apache/seata/seata-all/2.2.0/seata-all-2.2.0.pom dependency:tree | grep -v ':provided' | grep -v ':runtime' ``` diff --git a/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md b/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md index cac93bf05dc93..6ce1b049de189 100644 --- a/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md +++ b/docs/document/content/user-manual/shardingsphere-proxy/optional-plugins/seata-at/_index.en.md @@ -41,7 +41,7 @@ sdk install java 23-open sdk use java 23-open sdk install maven 3.9.9 sdk use maven 3.9.9 -mvn clean dependency:get -Dartifact=org.apache.seata:seata-all:2.2.0 +mvn dependency:get -Dartifact=org.apache.seata:seata-all:2.2.0 mvn -f ~/.m2/repository/org/apache/seata/seata-all/2.2.0/seata-all-2.2.0.pom dependency:tree | grep -v ':provided' | grep -v ':runtime' ``` diff --git a/infra/database/type/firebird/pom.xml b/infra/database/type/firebird/pom.xml index 95ef8db8741b5..c32065c71186a 100644 --- a/infra/database/type/firebird/pom.xml +++ b/infra/database/type/firebird/pom.xml @@ -33,6 +33,13 @@ ${project.version} + + org.firebirdsql.jdbc + jaybird + provided + true + + org.apache.shardingsphere shardingsphere-test-util diff --git a/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java b/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java index 0f803ebd0e64c..7d7392c8ef805 100644 --- a/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java +++ b/infra/database/type/firebird/src/main/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParser.java @@ -17,11 +17,14 @@ package org.apache.shardingsphere.infra.database.firebird.connector; +import lombok.SneakyThrows; import org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties; import org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser; import org.apache.shardingsphere.infra.database.core.connector.StandardConnectionProperties; -import org.apache.shardingsphere.infra.database.core.connector.url.JdbcUrl; -import org.apache.shardingsphere.infra.database.core.connector.url.StandardJdbcUrlParser; +import org.firebirdsql.gds.impl.DbAttachInfo; +import org.firebirdsql.gds.impl.GDSFactory; +import org.firebirdsql.gds.impl.GDSType; +import org.firebirdsql.jdbc.FBDriver; import java.util.Properties; @@ -30,12 +33,18 @@ */ public final class FirebirdConnectionPropertiesParser implements ConnectionPropertiesParser { - private static final int DEFAULT_PORT = 3050; - + @SneakyThrows(Exception.class) @Override public ConnectionProperties parse(final String url, final String username, final String catalog) { - JdbcUrl jdbcUrl = new StandardJdbcUrlParser().parse(url); - return new StandardConnectionProperties(jdbcUrl.getHostname(), jdbcUrl.getPort(DEFAULT_PORT), jdbcUrl.getDatabase(), null, jdbcUrl.getQueryProperties(), new Properties()); + GDSType type = GDSFactory.getTypeForProtocol(url); + String databaseURL = GDSFactory.getDatabasePath(type, url); + DbAttachInfo dbAttachInfo = DbAttachInfo.parseConnectString(databaseURL); + String attachObjectName = dbAttachInfo.getAttachObjectName(); + String databaseName = attachObjectName.contains("?") ? attachObjectName.split("\\?")[0] : attachObjectName; + Properties queryProperties = new Properties(); + queryProperties.putAll(FBDriver.normalizeProperties(url, new Properties())); + return new StandardConnectionProperties(dbAttachInfo.getServerName(), dbAttachInfo.getPortNumber(), + databaseName, null, queryProperties, new Properties()); } @Override diff --git a/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java b/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java index a980af1367ca9..604f617f8aa32 100644 --- a/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java +++ b/infra/database/type/firebird/src/test/java/org/apache/shardingsphere/infra/database/firebird/connector/FirebirdConnectionPropertiesParserTest.java @@ -19,10 +19,10 @@ import org.apache.shardingsphere.infra.database.core.connector.ConnectionProperties; import org.apache.shardingsphere.infra.database.core.connector.ConnectionPropertiesParser; -import org.apache.shardingsphere.infra.database.core.exception.UnrecognizedDatabaseURLException; import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; +import org.apache.shardingsphere.test.util.PropertiesBuilder; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.params.ParameterizedTest; @@ -30,11 +30,13 @@ import org.junit.jupiter.params.provider.ArgumentsProvider; import org.junit.jupiter.params.provider.ArgumentsSource; +import java.sql.SQLNonTransientConnectionException; import java.util.Properties; import java.util.stream.Stream; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertThrows; class FirebirdConnectionPropertiesParserTest { @@ -54,14 +56,29 @@ void assertNewConstructor(final String name, final String url, final String host @Test void assertNewConstructorFailure() { - assertThrows(UnrecognizedDatabaseURLException.class, () -> parser.parse("jdbc:firebirdsql:xxxxxxxx", null, null)); + assertDoesNotThrow(() -> parser.parse("jdbc:firebirdsql:xxxxxxxx", null, null)); + assertThrows(SQLNonTransientConnectionException.class, () -> parser.parse("jdbc:firebirdsql://localhost:c:/data/db/test.fdb", null, null)); } private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider { @Override public Stream provideArguments(final ExtensionContext extensionContext) { - return Stream.of(Arguments.of("simple", "jdbc:firebirdsql://127.0.0.1/foo_ds", "127.0.0.1", 3050, "foo_ds", null, new Properties())); + return Stream.of( + Arguments.of("simple_first", "jdbc:firebirdsql://127.0.0.1/foo_ds", "127.0.0.1", 3050, "foo_ds", null, new Properties()), + Arguments.of("simple_second", "jdbc:firebird://localhost:32783//var/lib/firebird/data/demo_ds_2.fdb", + "localhost", 32783, "/var/lib/firebird/data/demo_ds_2.fdb", null, new Properties()), + Arguments.of("simple_third", "jdbc:firebirdsql://localhost/database?socket_buffer_size=32767", "localhost", 3050, "database", null, PropertiesBuilder.build( + new PropertiesBuilder.Property("socketBufferSize", "32767"))), + Arguments.of("complex", + "jdbc:firebirdsql://localhost/database?socket_buffer_size=32767" + + "&TRANSACTION_REPEATABLE_READ=concurrency,write,no_wait&columnLabelForName&soTimeout=1000&nonStandard2=value2", + "localhost", 3050, "database", null, PropertiesBuilder.build( + new PropertiesBuilder.Property("socketBufferSize", "32767"), + new PropertiesBuilder.Property("TRANSACTION_REPEATABLE_READ", "concurrency,write,no_wait"), + new PropertiesBuilder.Property("columnLabelForName", ""), + new PropertiesBuilder.Property("soTimeout", "1000"), + new PropertiesBuilder.Property("nonStandard2", "value2")))); } } } diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json index e8521a96632b4..e1a82b1d05369 100644 --- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/reflect-config.json @@ -28,7 +28,7 @@ "name":"[Lcom.github.dockerjava.api.model.VolumesFrom;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007fe4e3e13858"}, + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007f89ffdf76d0"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { @@ -72,15 +72,15 @@ "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.manager.SchemaMetaDataManager"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.manager.SchemaMetaDataManager"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.version.MetaDataVersionPersistService"}, "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;" }, { @@ -357,27 +357,27 @@ "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"java.lang.Object", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"java.lang.Object", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"java.lang.Object", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.metadata.table.TableRowDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, "name":"java.lang.Object", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableRowDataPersistService"}, "name":"java.lang.Object", "allDeclaredFields":true }, @@ -749,11 +749,6 @@ "queryAllPublicConstructors":true, "methods":[{"name":"","parameterTypes":[] }, {"name":"add","parameterTypes":["long"] }, {"name":"sum","parameterTypes":[] }] }, -{ - "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.command.CommandExecutorTask"}, - "name":"java.util.concurrent.atomic.Striped64$Cell", - "fields":[{"name":"value"}] -}, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"}, "name":"java.util.function.DoubleFunction", @@ -875,7 +870,7 @@ "name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.authority.yaml.config.YamlAuthorityRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getAuthenticators","parameterTypes":[] }, {"name":"getDefaultAuthenticator","parameterTypes":[] }, {"name":"getPrivilege","parameterTypes":[] }, {"name":"getUsers","parameterTypes":[] }] @@ -958,12 +953,12 @@ "name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.broadcast.yaml.config.YamlBroadcastRuleConfiguration", "allDeclaredFields":true }, @@ -1313,7 +1308,7 @@ "name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.globalclock.yaml.config.YamlGlobalClockRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getProvider","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }, {"name":"isEnabled","parameterTypes":[] }] @@ -1345,13 +1340,13 @@ "methods":[{"name":"","parameterTypes":[] }, {"name":"setProps","parameterTypes":["java.util.Properties"] }, {"name":"setType","parameterTypes":["java.lang.String"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration", "allDeclaredFields":true, "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration", "allDeclaredFields":true, "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }] @@ -1693,6 +1688,11 @@ "condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"}, "name":"org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaDataBuilder" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.ComputeNodeOnlineHandler"}, + "name":"org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData", + "methods":[{"name":"","parameterTypes":[] }] +}, { "condition":{"typeReachable":"org.apache.shardingsphere.mode.persist.service.unified.ComputeNodePersistService"}, "name":"org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData", @@ -1809,7 +1809,7 @@ "methods":[{"name":"","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.metadata.table.TableRowDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableRowDataPersistService"}, "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData", "allDeclaredFields":true, "methods":[{"name":"","parameterTypes":[] }, {"name":"getRows","parameterTypes":[] }, {"name":"getUniqueKey","parameterTypes":[] }, {"name":"setRows","parameterTypes":["java.util.List"] }, {"name":"setUniqueKey","parameterTypes":["java.lang.String"] }] @@ -1821,12 +1821,12 @@ "methods":[{"name":"","parameterTypes":[] }, {"name":"setCaseSensitive","parameterTypes":["boolean"] }, {"name":"setDataType","parameterTypes":["int"] }, {"name":"setGenerated","parameterTypes":["boolean"] }, {"name":"setName","parameterTypes":["java.lang.String"] }, {"name":"setPrimaryKey","parameterTypes":["boolean"] }, {"name":"setUnsigned","parameterTypes":["boolean"] }, {"name":"setVisible","parameterTypes":["boolean"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereColumn", "methods":[{"name":"setNullable","parameterTypes":["boolean"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereColumn", "allDeclaredFields":true, "methods":[{"name":"","parameterTypes":[] }, {"name":"setCaseSensitive","parameterTypes":["boolean"] }, {"name":"setDataType","parameterTypes":["int"] }, {"name":"setGenerated","parameterTypes":["boolean"] }, {"name":"setName","parameterTypes":["java.lang.String"] }, {"name":"setNullable","parameterTypes":["boolean"] }, {"name":"setPrimaryKey","parameterTypes":["boolean"] }, {"name":"setUnsigned","parameterTypes":["boolean"] }, {"name":"setVisible","parameterTypes":["boolean"] }] @@ -1851,12 +1851,12 @@ "methods":[{"name":"","parameterTypes":[] }, {"name":"setName","parameterTypes":["java.lang.String"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndex", "methods":[{"name":"setColumns","parameterTypes":["java.util.Collection"] }, {"name":"setUnique","parameterTypes":["boolean"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereIndex", "allDeclaredFields":true, "methods":[{"name":"","parameterTypes":[] }, {"name":"setName","parameterTypes":["java.lang.String"] }, {"name":"setUnique","parameterTypes":["boolean"] }] @@ -1881,12 +1881,12 @@ "methods":[{"name":"","parameterTypes":[] }, {"name":"setColumns","parameterTypes":["java.util.Map"] }, {"name":"setIndexes","parameterTypes":["java.util.Map"] }, {"name":"setName","parameterTypes":["java.lang.String"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable", "methods":[{"name":"setType","parameterTypes":["org.apache.shardingsphere.infra.database.core.metadata.database.enums.TableType"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.metadata.table.TableMetaDataPersistService"}, "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable", "allDeclaredFields":true, "methods":[{"name":"","parameterTypes":[] }, {"name":"getColumns","parameterTypes":[] }, {"name":"getConstraints","parameterTypes":[] }, {"name":"getIndexes","parameterTypes":[] }, {"name":"getName","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }, {"name":"setColumns","parameterTypes":["java.util.Map"] }, {"name":"setIndexes","parameterTypes":["java.util.Map"] }, {"name":"setName","parameterTypes":["java.lang.String"] }, {"name":"setType","parameterTypes":["org.apache.shardingsphere.infra.database.core.metadata.database.enums.TableType"] }] @@ -1921,7 +1921,7 @@ "name":"org.apache.shardingsphere.logging.yaml.config.YamlLoggingRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.logging.yaml.config.YamlLoggingRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getAppenders","parameterTypes":[] }, {"name":"getLoggers","parameterTypes":[] }] @@ -2278,7 +2278,7 @@ "name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.parser.yaml.config.YamlSQLParserRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getParseTreeCache","parameterTypes":[] }, {"name":"getSqlStatementCache","parameterTypes":[] }] @@ -2452,12 +2452,12 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.eventbus.EventBusContext"}, - "name":"org.apache.shardingsphere.readwritesplitting.cluster.ReadwriteSplittingQualifiedDataSourceDeletedSubscriber", + "name":"org.apache.shardingsphere.readwritesplitting.deliver.ReadwriteSplittingQualifiedDataSourceChangedSubscriber", "queryAllDeclaredMethods":true }, { "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"}, - "name":"org.apache.shardingsphere.readwritesplitting.cluster.ReadwriteSplittingQualifiedDataSourceDeletedSubscriber" + "name":"org.apache.shardingsphere.readwritesplitting.deliver.ReadwriteSplittingQualifiedDataSourceChangedSubscriber" }, { "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"}, @@ -2994,12 +2994,12 @@ "name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.YamlShardingRuleConfiguration", "allDeclaredFields":true }, @@ -3030,13 +3030,13 @@ "methods":[{"name":"","parameterTypes":[] }, {"name":"setActualDataNodes","parameterTypes":["java.lang.String"] }, {"name":"setKeyGenerateStrategy","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getActualDataNodes","parameterTypes":[] }, {"name":"getAuditStrategy","parameterTypes":[] }, {"name":"getDatabaseStrategy","parameterTypes":[] }, {"name":"getKeyGenerateStrategy","parameterTypes":[] }, {"name":"getLogicTable","parameterTypes":[] }, {"name":"getTableStrategy","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getActualDataNodes","parameterTypes":[] }, {"name":"getAuditStrategy","parameterTypes":[] }, {"name":"getDatabaseStrategy","parameterTypes":[] }, {"name":"getKeyGenerateStrategy","parameterTypes":[] }, {"name":"getLogicTable","parameterTypes":[] }, {"name":"getTableStrategy","parameterTypes":[] }] @@ -3100,13 +3100,13 @@ "methods":[{"name":"","parameterTypes":[] }, {"name":"setStandard","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration"] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration", "allDeclaredFields":true, "methods":[{"name":"getComplex","parameterTypes":[] }, {"name":"getHint","parameterTypes":[] }, {"name":"getNone","parameterTypes":[] }, {"name":"getStandard","parameterTypes":[] }] }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration", "allDeclaredFields":true, "methods":[{"name":"getComplex","parameterTypes":[] }, {"name":"getHint","parameterTypes":[] }, {"name":"getNone","parameterTypes":[] }, {"name":"getStandard","parameterTypes":[] }] @@ -3222,12 +3222,12 @@ "name":"org.apache.shardingsphere.single.yaml.config.YamlSingleRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.MetaDataPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, "name":"org.apache.shardingsphere.single.yaml.config.YamlSingleRuleConfiguration", "allDeclaredFields":true }, { - "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService"}, "name":"org.apache.shardingsphere.single.yaml.config.YamlSingleRuleConfiguration", "allDeclaredFields":true }, @@ -3255,11 +3255,31 @@ "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheBuilder"}, "name":"org.apache.shardingsphere.sql.parser.core.database.cache.ParseTreeCacheLoader" }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, + "name":"org.apache.shardingsphere.sql.parser.firebird.parser.FirebirdLexer", + "methods":[{"name":"","parameterTypes":["org.antlr.v4.runtime.CharStream"] }] +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, + "name":"org.apache.shardingsphere.sql.parser.firebird.parser.FirebirdParser", + "methods":[{"name":"","parameterTypes":["org.antlr.v4.runtime.TokenStream"] }] +}, { "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory"}, "name":"org.apache.shardingsphere.sql.parser.firebird.visitor.statement.FirebirdStatementVisitorFacade", "methods":[{"name":"","parameterTypes":[] }] }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, + "name":"org.apache.shardingsphere.sql.parser.firebird.visitor.statement.type.FirebirdDDLStatementVisitor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, + "name":"org.apache.shardingsphere.sql.parser.firebird.visitor.statement.type.FirebirdDMLStatementVisitor", + "methods":[{"name":"","parameterTypes":[] }] +}, { "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.core.database.visitor.SQLStatementVisitorFactory"}, "name":"org.apache.shardingsphere.sql.parser.hive.visitor.statement.HiveStatementVisitorFacade", @@ -3420,6 +3440,26 @@ "name":"org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseSelectStatement", "methods":[{"name":"","parameterTypes":[] }] }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, + "name":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdCreateTableStatement", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"}, + "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdInsertStatement", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"}, + "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdSelectStatement", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"}, + "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdSelectStatement", + "methods":[{"name":"","parameterTypes":[] }] +}, { "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"}, "name":"org.apache.shardingsphere.sql.parser.statement.hive.dml.HiveInsertStatement", @@ -3615,7 +3655,7 @@ "name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getExecutionPlanCache","parameterTypes":[] }, {"name":"isAllQueryUseSQLFederation","parameterTypes":[] }, {"name":"isSqlFederationEnabled","parameterTypes":[] }] @@ -3654,7 +3694,7 @@ "name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.sqltranslator.yaml.config.YamlSQLTranslatorRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }, {"name":"isUseOriginalSQLWhenTranslatingFailed","parameterTypes":[] }] @@ -3734,7 +3774,7 @@ "name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.config.global.GlobalRulePersistService"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.service.config.global.GlobalRulePersistService"}, "name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfiguration", "allDeclaredFields":true, "methods":[{"name":"getDefaultType","parameterTypes":[] }, {"name":"getProps","parameterTypes":[] }, {"name":"getProviderType","parameterTypes":[] }] diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json index 756f9bba40450..96684f366e77a 100644 --- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json @@ -91,7 +91,7 @@ "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager"}, "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007fe4e3cc4218"}, + "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007f89ffca2b10"}, "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"}, @@ -484,910 +484,910 @@ "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager"}, "pattern":"\\Qschema/common/shardingsphere/sharding_table_statistics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/administrable_role_authorizations.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/applicable_roles.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/character_sets.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/check_constraints.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/collation_character_set_applicability.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/collations.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/column_privileges.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/column_statistics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/columns.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/columns_extensions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/enabled_roles.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/engines.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/events.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/files.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/global_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/global_variables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_buffer_page.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_buffer_page_lru.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_buffer_pool_stats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cached_indexes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cmp.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cmp_per_index.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cmp_per_index_reset.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cmp_reset.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cmpmem.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_cmpmem_reset.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_columns.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_datafiles.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_fields.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_foreign.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_foreign_cols.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_ft_being_deleted.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_ft_config.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_ft_default_stopword.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_ft_deleted.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_ft_index_cache.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_ft_index_table.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_indexes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_lock_waits.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_locks.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_metrics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_session_temp_tablespaces.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_columns.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_datafiles.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_fields.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_foreign.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_foreign_cols.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_indexes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_tables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_tablespaces.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_tablestats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_sys_virtual.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_tables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_tablespaces.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_tablespaces_brief.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_tablestats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_temp_table_info.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_trx.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/innodb_virtual.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/key_column_usage.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/keywords.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/optimizer_trace.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/parameters.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/partitions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/plugins.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/processlist.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/profiling.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/referential_constraints.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/resource_groups.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/role_column_grants.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/role_routine_grants.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/role_table_grants.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/routines.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/schema_privileges.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/schemata.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/schemata_extensions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/session_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/session_variables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/st_geometry_columns.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/st_spatial_reference_systems.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/st_units_of_measure.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/statistics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/table_constraints.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/table_constraints_extensions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/table_privileges.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/tables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/tables_extensions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/tablespaces.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/tablespaces_extensions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/triggers.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/user_attributes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/user_privileges.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/view_routine_usage.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/view_table_usage.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/information_schema/views.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/columns_priv.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/component.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/db.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/default_roles.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/engine_cost.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/event.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/func.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/general_log.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/global_grants.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/gtid_executed.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/help_category.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/help_keyword.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/help_relation.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/help_topic.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/innodb_index_stats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/innodb_table_stats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/ndb_binlog_index.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/password_history.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/plugin.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/proc.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/procs_priv.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/proxies_priv.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/replication_asynchronous_connection_failover.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/replication_asynchronous_connection_failover_managed.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/replication_group_configuration_version.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/replication_group_member_actions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/role_edges.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/server_cost.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/servers.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/slave_master_info.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/slave_relay_log_info.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/slave_worker_info.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/slow_log.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/tables_priv.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/time_zone.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/time_zone_leap_second.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/time_zone_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/time_zone_transition.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/time_zone_transition_type.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/mysql/user.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/accounts.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/binary_log_transaction_compression_stats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/cond_instances.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/data_lock_waits.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/data_locks.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/error_log.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_errors_summary_by_account_by_error.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_errors_summary_by_host_by_error.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_errors_summary_by_thread_by_error.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_errors_summary_by_user_by_error.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_errors_summary_global_by_error.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_current.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_history.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_history_long.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_summary_by_account_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_summary_by_host_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_summary_by_thread_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_summary_by_user_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_stages_summary_global_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_current.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_histogram_by_digest.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_histogram_global.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_history.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_history_long.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_by_account_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_by_digest.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_by_host_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_by_program.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_by_thread_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_by_user_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_statements_summary_global_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_current.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_history.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_history_long.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_summary_by_account_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_summary_by_host_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_summary_by_thread_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_summary_by_user_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_transactions_summary_global_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_current.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_history.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_history_long.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_summary_by_account_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_summary_by_host_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_summary_by_instance.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_summary_by_thread_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_summary_by_user_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/events_waits_summary_global_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/file_instances.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/file_summary_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/file_summary_by_instance.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/global_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/global_variables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/host_cache.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/hosts.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/innodb_redo_log_files.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/keyring_component_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/keyring_keys.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/log_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/memory_summary_by_account_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/memory_summary_by_host_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/memory_summary_by_thread_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/memory_summary_by_user_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/memory_summary_global_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/metadata_locks.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/mutex_instances.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/objects_summary_global_by_type.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/performance_timers.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/persisted_variables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/prepared_statements_instances.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/processlist.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_applier_configuration.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_applier_filters.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_applier_global_filters.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_applier_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_applier_status_by_coordinator.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_applier_status_by_worker.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_asynchronous_connection_failover.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_asynchronous_connection_failover_managed.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_connection_configuration.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_connection_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_group_member_stats.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/replication_group_members.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/rwlock_instances.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/session_account_connect_attrs.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/session_connect_attrs.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/session_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/session_variables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_actors.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_consumers.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_instruments.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_meters.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_metrics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_objects.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_threads.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/setup_timers.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/socket_instances.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/socket_summary_by_event_name.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/socket_summary_by_instance.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/status_by_account.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/status_by_host.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/status_by_thread.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/status_by_user.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/table_handles.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/table_io_waits_summary_by_index_usage.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/table_io_waits_summary_by_table.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/table_lock_waits_summary_by_table.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/threads.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/tls_channel_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/user_defined_functions.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/user_variables_by_thread.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/users.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/variables_by_thread.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/performance_schema/variables_info.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/host_summary.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/host_summary_by_file_io.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/host_summary_by_file_io_type.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/host_summary_by_stages.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/host_summary_by_statement_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/host_summary_by_statement_type.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/innodb_buffer_stats_by_schema.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/innodb_buffer_stats_by_table.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/innodb_lock_waits.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/io_by_thread_by_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/io_global_by_file_by_bytes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/io_global_by_file_by_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/io_global_by_wait_by_bytes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/io_global_by_wait_by_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/latest_file_io.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/memory_by_host_by_current_bytes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/memory_by_thread_by_current_bytes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/memory_by_user_by_current_bytes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/memory_global_by_current_bytes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/memory_global_total.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/metrics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/processlist.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/ps_check_lost_instrumentation.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_auto_increment_columns.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_index_statistics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_object_overview.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_redundant_indexes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_table_lock_waits.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_table_statistics.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_table_statistics_with_buffer.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_tables_with_full_table_scans.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/schema_unused_indexes.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/session.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/session_ssl_status.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/statement_analysis.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/statements_with_errors_or_warnings.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/statements_with_full_table_scans.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/statements_with_runtimes_in_95th_percentile.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/statements_with_sorting.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/statements_with_temp_tables.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/sys_config.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/user_summary.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/user_summary_by_file_io.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/user_summary_by_file_io_type.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/user_summary_by_stages.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/user_summary_by_statement_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/user_summary_by_statement_type.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/version.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/wait_classes_global_by_avg_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/wait_classes_global_by_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/waits_by_host_by_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/waits_by_user_by_latency.yaml\\E" }, { - "condition":{"typeReachable":"org.apache.shardingsphere.metadata.factory.ExternalMetaDataFactory"}, + "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.factory.ExternalMetaDataFactory"}, "pattern":"\\Qschema/mysql/sys/waits_global_by_latency.yaml\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager"}, @@ -2034,6 +2034,9 @@ }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.url.classpath.ClassPathURLLoader"}, "pattern":"\\Qtest-native/yaml/jdbc/databases/clickhouse.yaml\\E" + }, { + "condition":{"typeReachable":"org.apache.shardingsphere.infra.url.classpath.ClassPathURLLoader"}, + "pattern":"\\Qtest-native/yaml/jdbc/databases/firebird.yaml\\E" }, { "condition":{"typeReachable":"org.apache.shardingsphere.infra.url.classpath.ClassPathURLLoader"}, "pattern":"\\Qtest-native/yaml/jdbc/databases/hive/acid.yaml\\E" diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json index 72041f3fbdaac..30a9b1d379af2 100644 --- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json @@ -357,6 +357,16 @@ "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerDropTableStatement", "methods":[{"name":"","parameterTypes":[] }] }, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdDeleteStatement"}, + "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdDeleteStatement", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdDropTableStatement"}, + "name":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdDropTableStatement", + "methods":[{"name":"","parameterTypes":[] }] +}, { "condition":{"typeReachable":"sun.security.provider.SecureRandom"}, "name":"sun.security.provider.SecureRandom", diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/reflect-config.json new file mode 100644 index 0000000000000..b5aa76a4056f9 --- /dev/null +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/reflect-config.json @@ -0,0 +1,108 @@ +[ +{ + "condition":{"typeReachable":"org.firebirdsql.encodings.EncodingFactory"}, + "name":"org.firebirdsql.encodings.DefaultEncodingSet" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.impl.GDSFactory"}, + "name":"org.firebirdsql.gds.impl.jni.EmbeddedGDSFactoryPlugin" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.impl.GDSFactory"}, + "name":"org.firebirdsql.gds.impl.jni.NativeGDSFactoryPlugin" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.impl.GDSFactory"}, + "name":"org.firebirdsql.gds.impl.oo.OOGDSFactoryPlugin" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.impl.GDSFactory"}, + "name":"org.firebirdsql.gds.impl.wire.WireGDSFactoryPlugin" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "name":"org.firebirdsql.gds.ng.wire.auth.legacy.LegacyAuthenticationPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "name":"org.firebirdsql.gds.ng.wire.auth.srp.Srp224AuthenticationPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "name":"org.firebirdsql.gds.ng.wire.auth.srp.Srp256AuthenticationPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "name":"org.firebirdsql.gds.ng.wire.auth.srp.Srp384AuthenticationPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "name":"org.firebirdsql.gds.ng.wire.auth.srp.Srp512AuthenticationPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "name":"org.firebirdsql.gds.ng.wire.auth.srp.SrpAuthenticationPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.version13.V13WireOperations"}, + "name":"org.firebirdsql.gds.ng.wire.crypt.arc4.Arc4EncryptionPluginSpi", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.version13.V13WireOperations"}, + "name":"org.firebirdsql.gds.ng.wire.crypt.chacha.ChaChaEncryptionPluginSpi" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version10.Version10Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version11.Version11Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version12.Version12Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version13.Version13Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version15.Version15Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version16.Version16Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "name":"org.firebirdsql.gds.ng.wire.version18.Version18Descriptor" +}, +{ + "condition":{"typeReachable":"org.firebirdsql.jaybird.props.internal.UnregisteredDpbDefiner"}, + "name":"org.firebirdsql.jaybird.fb.constants.DpbItems", + "allPublicFields":true +}, +{ + "condition":{"typeReachable":"org.firebirdsql.jaybird.props.internal.UnregisteredDpbDefiner"}, + "name":"org.firebirdsql.jaybird.fb.constants.SpbItems", + "allPublicFields":true +}, +{ + "condition":{"typeReachable":"org.firebirdsql.jaybird.xca.FBManagedConnection"}, + "name":"org.firebirdsql.jaybird.xca.FBManagedConnection", + "fields":[{"name":"connectionHandle"}, {"name":"unnotifiedWarnings"}] +}, +{ + "condition":{"typeReachable":"org.firebirdsql.jaybird.xca.FBManagedConnectionFactory"}, + "name":"org.firebirdsql.jdbc.FBConnection", + "methods":[{"name":"","parameterTypes":["org.firebirdsql.jaybird.xca.FBManagedConnection"] }] +}, +{ + "condition":{"typeReachable":"org.firebirdsql.jdbc.FBConnection"}, + "name":"org.firebirdsql.jdbc.FBConnection", + "fields":[{"name":"savepointCounter"}] +} +] diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/resource-config.json new file mode 100644 index 0000000000000..3ab2a84b73ee6 --- /dev/null +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.firebirdsql.jdbc/jaybird/5.0.6.java8/resource-config.json @@ -0,0 +1,50 @@ +{ + "resources":{ + "includes":[{ + "condition":{"typeReachable":"org.firebirdsql.encodings.EncodingFactory"}, + "pattern":"\\QMETA-INF/services/org.firebirdsql.encodings.EncodingSet\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.impl.GDSFactory"}, + "pattern":"\\QMETA-INF/services/org.firebirdsql.gds.impl.GDSFactoryPlugin\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.ProtocolCollection"}, + "pattern":"\\QMETA-INF/services/org.firebirdsql.gds.ng.wire.ProtocolDescriptor\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.ng.wire.auth.ClientAuthBlock"}, + "pattern":"\\QMETA-INF/services/org.firebirdsql.gds.ng.wire.auth.AuthenticationPluginSpi\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.jaybird.props.internal.ConnectionPropertyRegistry"}, + "pattern":"\\QMETA-INF/services/org.firebirdsql.jaybird.props.spi.ConnectionPropertyDefinerSpi\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.MessageLoader"}, + "pattern":"\\Qisc_error_msg.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.MessageLoader"}, + "pattern":"\\Qisc_error_sqlstates.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.jaybird.Version"}, + "pattern":"\\Qorg/firebirdsql/jaybird/version.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.jaybird.Version"}, + "pattern":"\\Qorg/firebirdsql/jaybird/version_zh.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.jaybird.Version"}, + "pattern":"\\Qorg/firebirdsql/jaybird/version_zh_CN.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.jaybird.Version"}, + "pattern":"\\Qorg/firebirdsql/jaybird/version_zh_Hans.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.jaybird.Version"}, + "pattern":"\\Qorg/firebirdsql/jaybird/version_zh_Hans_CN.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.MessageLoader"}, + "pattern":"\\Qorg/firebirdsql/jaybird_error_msg.properties\\E" + }, { + "condition":{"typeReachable":"org.firebirdsql.gds.MessageLoader"}, + "pattern":"\\Qorg/firebirdsql/jaybird_error_sqlstates.properties\\E" + }]}, + "bundles":[{ + "name":"org.firebirdsql.jaybird.version", + "locales":["zh-CN", "en"] + }] +} diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/reflect-config.json index b374ae64797e4..867b5aaa68e1e 100644 --- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/reflect-config.json +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/reflect-config.json @@ -60,6 +60,11 @@ "queryAllPublicConstructors":true, "methods":[{"name":"","parameterTypes":["com.arjuna.ats.arjuna.common.ObjectStoreEnvironmentBean"] }] }, +{ + "condition":{"typeReachable":"com.arjuna.ats.internal.arjuna.recovery.TransactionStatusManagerItem"}, + "name":"com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore", + "queryAllPublicConstructors":true +}, { "condition":{"typeReachable":"com.arjuna.ats.arjuna.common.CoreEnvironmentBean"}, "name":"com.arjuna.ats.internal.arjuna.utils.SocketProcessId", @@ -120,5 +125,25 @@ { "condition":{"typeReachable":"com.arjuna.common.logging.commonLogger"}, "name":"com.arjuna.common.logging.commonI18NLogger_$logger_zh_CN" +}, +{ + "condition":{"typeReachable":"com.arjuna.common.util.propertyservice.PropertiesFactory"}, + "name":"com.arjuna.common.util.propertyservice.PropertiesFactory", + "fields":[{"name":"delegatePropertiesFactory"}] +}, +{ + "condition":{"typeReachable":"com.arjuna.common.internal.util.propertyservice.BeanPopulator"}, + "name":"com.arjuna.common.internal.util.propertyservice.BeanPopulator", + "fields":[{"name":"beanInstances"}] +}, +{ + "condition":{"typeReachable":"com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule"}, + "name":"com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule", + "fields":[{"name":"_recoveryStore"}] +}, +{ + "condition":{"typeReachable":"com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule"}, + "name":"com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule", + "fields":[{"name":"registeredXARecoveryModule"}] } ] diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/resource-config.json index efecca767fd07..99bf6b410ec93 100644 --- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/resource-config.json +++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.jboss.narayana.jta/jta/5.12.7.Final/resource-config.json @@ -3,6 +3,9 @@ "includes":[{ "condition":{"typeReachable":"com.arjuna.common.util.ConfigurationInfo"}, "pattern":"\\QConfigurationInfo.properties\\E" + }, { + "condition":{"typeReachable":"com.arjuna.common.logging.commonLogger"}, + "pattern":"\\QMETA-INF/services/org.jboss.logging.LoggerProvider\\E" }, { "condition":{"typeReachable":"com.arjuna.common.util.propertyservice.AbstractPropertiesFactory"}, "pattern":"\\Qdefault-jbossts-properties.xml\\E" diff --git a/pom.xml b/pom.xml index 8851b93a3b2be..47dfbde8720d5 100644 --- a/pom.xml +++ b/pom.xml @@ -132,6 +132,7 @@ 1.6.0 3.3.6 0.288.1 + 5.0.6.java8 4.0.3 @@ -489,6 +490,12 @@ ${presto.version} test + + org.firebirdsql.jdbc + jaybird + ${jaybird.version} + test + com.zaxxer diff --git a/test/native/pom.xml b/test/native/pom.xml index ae1954a51d30a..653c4d152aa18 100644 --- a/test/native/pom.xml +++ b/test/native/pom.xml @@ -194,6 +194,7 @@ org.apache.hadoop hadoop-mapreduce-client-core ${hadoop.version} + test * @@ -201,6 +202,11 @@ + + org.firebirdsql.jdbc + jaybird + test + org.testcontainers junit-jupiter diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/TestShardingService.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/TestShardingService.java index 117329f802897..552484ede967d 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/TestShardingService.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/TestShardingService.java @@ -196,8 +196,19 @@ public void deleteDataInClickHouse(final Collection orderIds) throws SQLEx * @throws SQLException An exception that provides information on a database access error or other errors. */ public void cleanEnvironment() throws SQLException { - orderRepository.dropTable(); - orderItemRepository.dropTable(); - addressRepository.dropTable(); + orderRepository.dropTableInMySQL(); + orderItemRepository.dropTableInMySQL(); + addressRepository.dropTableInMySQL(); + } + + /** + * Clean environment in Firebird. + * + * @throws SQLException An exception that provides information on a database access error or other errors. + */ + public void cleanEnvironmentInFirebird() throws SQLException { + orderRepository.dropTableInFirebird(); + orderItemRepository.dropTableInFirebird(); + addressRepository.dropTableInFirebird(); } } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java index 806e08a8db52b..bd254511bc2e5 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/proxy/ProxyTestingServer.java @@ -20,6 +20,7 @@ import lombok.Getter; import org.apache.curator.test.InstanceSpec; import org.apache.shardingsphere.proxy.Bootstrap; +import org.apache.shardingsphere.proxy.backend.context.ProxyContext; import java.io.IOException; import java.sql.SQLException; @@ -29,6 +30,8 @@ * This class is designed to start ShardingSphere Proxy directly in the current process, * whether it is HotSpot VM or GraalVM Native Image, * so this class intentionally uses fewer than a few dozen JVM parameters. + * It is necessary to avoid creating multiple ShardingSphere Proxy instances in parallel in Junit5 unit tests. + * Currently, Junit5 unit tests are all executed serially. */ @Getter public final class ProxyTestingServer { @@ -53,9 +56,10 @@ public ProxyTestingServer(final String configAbsolutePath) { } /** - * Force close ShardingSphere Proxy. + * Force close ShardingSphere Proxy. See {@link org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy#close}. */ public void close() { - completableFuture.cancel(true); + completableFuture.cancel(false); + ProxyContext.getInstance().getContextManager().close(); } } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/AddressRepository.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/AddressRepository.java index 1774289c577ce..3535ee7f65083 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/AddressRepository.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/AddressRepository.java @@ -71,11 +71,27 @@ public void createTableInSQLServer() throws SQLException { } /** - * drop table t_address. + * create table t_address in Firebird. + * Cannot use `create table if not exists` for Docker Image `ghcr.io/fdcastel/firebird:5.0.1`, + * see FirebirdSQL/firebird#8062. * * @throws SQLException SQL exception */ - public void dropTable() throws SQLException { + public void createTableInFirebird() throws SQLException { + String sql = "CREATE TABLE t_address (address_id BIGINT NOT NULL PRIMARY KEY, address_name VARCHAR(100) NOT NULL)"; + try ( + Connection connection = dataSource.getConnection(); + Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + + /** + * drop table t_address in MySQL. + * + * @throws SQLException SQL exception + */ + public void dropTableInMySQL() throws SQLException { String sql = "DROP TABLE IF EXISTS t_address"; try ( Connection connection = dataSource.getConnection(); @@ -84,6 +100,22 @@ public void dropTable() throws SQLException { } } + /** + * drop table in Firebird. + * Docker Image `ghcr.io/fdcastel/firebird:5.0.1` does not work with `DROP TABLE IF EXISTS`. + * See FirebirdSQL/firebird#4203 . + * + * @throws SQLException SQL exception + */ + public void dropTableInFirebird() throws SQLException { + String sql = "DROP TABLE t_address"; + try ( + Connection connection = dataSource.getConnection(); + Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + /** * truncate table t_address. * diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderItemRepository.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderItemRepository.java index bcd26777467dd..038f283250fb8 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderItemRepository.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderItemRepository.java @@ -103,11 +103,33 @@ public void createTableInSQLServer() throws SQLException { } /** - * drop table. + * create table in Firebird. + * Cannot use `create table if not exists` for Docker Image `ghcr.io/fdcastel/firebird:5.0.1`, + * see FirebirdSQL/firebird#8062. * * @throws SQLException SQL exception */ - public void dropTable() throws SQLException { + public void createTableInFirebird() throws SQLException { + String sql = "CREATE TABLE t_order_item \n" + + "(order_item_id BIGINT generated by default as identity PRIMARY KEY,\n" + + "order_id BIGINT NOT NULL,\n" + + "user_id INT NOT NULL,\n" + + "phone VARCHAR(50),\n" + + "status VARCHAR(50)\n" + + ")"; + try ( + Connection connection = dataSource.getConnection(); + Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + + /** + * drop table in MySQL. + * + * @throws SQLException SQL exception + */ + public void dropTableInMySQL() throws SQLException { String sql = "DROP TABLE IF EXISTS t_order_item"; try ( Connection connection = dataSource.getConnection(); @@ -116,6 +138,22 @@ public void dropTable() throws SQLException { } } + /** + * drop table in Firebird. + * Docker Image `ghcr.io/fdcastel/firebird:5.0.1` does not work with `DROP TABLE IF EXISTS`. + * See FirebirdSQL/firebird#4203 . + * + * @throws SQLException SQL exception + */ + public void dropTableInFirebird() throws SQLException { + String sql = "DROP TABLE t_order_item"; + try ( + Connection connection = dataSource.getConnection(); + Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + /** * truncate table. * diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderRepository.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderRepository.java index 6176137dee95c..8472f5673a32b 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderRepository.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/repository/OrderRepository.java @@ -78,7 +78,7 @@ public void createTableIfNotExistsInPostgres() throws SQLException { } /** - * create table in MS SQL Server. `order_item_id` is not set to `IDENTITY(1,1)` to simplify the unit test. + * create table in MS SQL Server. `order_id` is not set to `IDENTITY(1,1)` to simplify the unit test. * This also ignored the default schema of the `dbo`. * * @throws SQLException SQL exception @@ -100,12 +100,34 @@ public void createTableInSQLServer() throws SQLException { } /** - * drop table. + * create table in Firebird. + * Cannot use `create table if not exists` for Docker Image `ghcr.io/fdcastel/firebird:5.0.1`, + * see FirebirdSQL/firebird#8062. + * + * @throws SQLException SQL exception + */ + public void createTableInFirebird() throws SQLException { + String sql = "CREATE TABLE t_order\n" + + "(order_id BIGINT generated by default as identity PRIMARY KEY,\n" + + "order_type INT,\n" + + "user_id INT NOT NULL,\n" + + "address_id BIGINT NOT NULL,\n" + + "status VARCHAR(50)\n" + + ")"; + try ( + Connection connection = dataSource.getConnection(); + Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + + /** + * drop table in MySQL. * TODO There is a bug in this function in shadow's unit test and requires additional fixes. * * @throws SQLException SQL exception */ - public void dropTable() throws SQLException { + public void dropTableInMySQL() throws SQLException { String sql = "DROP TABLE IF EXISTS t_order"; try ( Connection connection = dataSource.getConnection(); @@ -114,6 +136,22 @@ public void dropTable() throws SQLException { } } + /** + * drop table in Firebird. + * Docker Image `ghcr.io/fdcastel/firebird:5.0.1` does not work with `DROP TABLE IF EXISTS`. + * See FirebirdSQL/firebird#4203 . + * + * @throws SQLException SQL exception + */ + public void dropTableInFirebird() throws SQLException { + String sql = "DROP TABLE t_order"; + try ( + Connection connection = dataSource.getConnection(); + Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + /** * truncate table. * diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java index 1b4863d203624..02c7b01dc37d7 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/ClickHouseTest.java @@ -19,6 +19,10 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.curator.framework.CuratorFramework; +import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.retry.ExponentialBackoffRetry; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -62,6 +66,7 @@ class ClickHouseTest { MountableFile.forHostPath(Paths.get("src/test/resources/test-native/xml/keeper_config.xml").toAbsolutePath()), "/etc/clickhouse-keeper/keeper_config.xml") .withNetwork(NETWORK) + .withExposedPorts(9181) .withNetworkAliases("clickhouse-keeper-01"); @Container @@ -75,6 +80,8 @@ class ClickHouseTest { private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.database.clickhouse."; + private static DataSource logicDataSource; + private String jdbcUrlPrefix; @BeforeAll @@ -85,7 +92,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } NETWORK.close(); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); @@ -95,8 +105,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:ch://localhost:" + CONTAINER.getMappedPort(8123) + "/"; - DataSource dataSource = createDataSource(); - TestShardingService testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + TestShardingService testShardingService = new TestShardingService(logicDataSource); testShardingService.processSuccessInClickHouse(); } @@ -108,7 +118,13 @@ private Connection openConnection(final String databaseName) throws SQLException } private DataSource createDataSource() throws SQLException { + String connectionString = CLICKHOUSE_KEEPER_CONTAINER.getHost() + ":" + CLICKHOUSE_KEEPER_CONTAINER.getMappedPort(9181); Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptions().until(() -> { + try ( + CuratorFramework client = CuratorFrameworkFactory.builder().connectString(connectionString) + .retryPolicy(new ExponentialBackoffRetry(1000, 3)).build()) { + client.start(); + } openConnection("default").close(); return true; }); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/FirebirdTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/FirebirdTest.java new file mode 100644 index 0000000000000..a11af06729590 --- /dev/null +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/FirebirdTest.java @@ -0,0 +1,152 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.shardingsphere.test.natived.jdbc.databases; + +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; +import org.apache.shardingsphere.test.natived.commons.TestShardingService; +import org.awaitility.Awaitility; +import org.firebirdsql.management.FBManager; +import org.firebirdsql.management.PageSizeConstants; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledInNativeImage; +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.time.Duration; +import java.util.Properties; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; + +@EnabledInNativeImage +@Testcontainers +class FirebirdTest { + + private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.database.firebird."; + + private static final String PASSWORD = "masterkey"; + + @SuppressWarnings("resource") + @Container + private static final GenericContainer CONTAINER = new GenericContainer<>("ghcr.io/fdcastel/firebird:5.0.1") + .withEnv("FIREBIRD_ROOT_PASSWORD", PASSWORD) + .withEnv("FIREBIRD_USER", "alice") + .withEnv("FIREBIRD_PASSWORD", PASSWORD) + .withEnv("FIREBIRD_DATABASE", "mirror.fdb") + .withEnv("FIREBIRD_DATABASE_DEFAULT_CHARSET", "UTF8") + .withExposedPorts(3050); + + private static DataSource logicDataSource; + + private String jdbcUrlPrefix; + + private TestShardingService testShardingService; + + @BeforeAll + static void beforeAll() { + assertThat(System.getProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"), is(nullValue())); + assertThat(System.getProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"), is(nullValue())); + assertThat(System.getProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"), is(nullValue())); + } + + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); + System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); + System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"); + } + + @Test + void assertShardingInLocalTransactions() throws Exception { + jdbcUrlPrefix = "jdbc:firebird://localhost:" + CONTAINER.getMappedPort(3050) + "//var/lib/firebird/data/"; + logicDataSource = createDataSource(); + testShardingService = new TestShardingService(logicDataSource); + initEnvironment(); + testShardingService.processSuccess(); + testShardingService.cleanEnvironmentInFirebird(); + } + + /** + * Docker Image `ghcr.io/fdcastel/firebird:5.0.1` cannot use `TRUNCATE TABLE`. + * See FirebirdSQL/firebird#2892. + * + * @throws SQLException SQL Exception + */ + private void initEnvironment() throws SQLException { + testShardingService.getOrderRepository().createTableInFirebird(); + testShardingService.getOrderItemRepository().createTableInFirebird(); + testShardingService.getAddressRepository().createTableInFirebird(); + } + + private Connection openConnection() throws SQLException { + Properties props = new Properties(); + props.setProperty("user", "alice"); + props.setProperty("password", PASSWORD); + return DriverManager.getConnection(jdbcUrlPrefix + "mirror.fdb", props); + } + + /** + * Due to FirebirdSQL/jaybird#629, + * the SQL statement `Create Database` cannot be executed on the Firebird JDBC driver. + * Unit testing requires the use of {@link org.firebirdsql.management.FBManager}. + * + * @return Data Source + * @throws Exception Exception + * @see org.firebirdsql.management.FBManager + */ + @SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection"}) + private DataSource createDataSource() throws Exception { + Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptions().until(() -> { + openConnection().close(); + return true; + }); + try (FBManager fbManager = new FBManager()) { + fbManager.setServer("localhost"); + fbManager.setUserName("alice"); + fbManager.setPassword(PASSWORD); + fbManager.setFileName("/var/lib/firebird/data/mirror.fdb"); + fbManager.setPageSize(PageSizeConstants.SIZE_16K); + fbManager.setDefaultCharacterSet("UTF8"); + fbManager.setPort(CONTAINER.getMappedPort(3050)); + fbManager.start(); + fbManager.createDatabase("/var/lib/firebird/data/demo_ds_0.fdb", "alice", PASSWORD); + fbManager.createDatabase("/var/lib/firebird/data/demo_ds_1.fdb", "alice", PASSWORD); + fbManager.createDatabase("/var/lib/firebird/data/demo_ds_2.fdb", "alice", PASSWORD); + } + HikariConfig config = new HikariConfig(); + config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); + config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/firebird.yaml?placeholder-type=system_props"); + System.setProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0.fdb"); + System.setProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1.fdb"); + System.setProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2.fdb"); + return new HikariDataSource(config); + } +} diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java index 55e49ad0cebe7..ae9ac7c332d68 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/MySQLTest.java @@ -20,6 +20,7 @@ import com.mysql.cj.jdbc.exceptions.CommunicationsException; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -56,10 +57,12 @@ class MySQLTest { @SuppressWarnings("resource") @Container - public static final GenericContainer CONTAINER = new GenericContainer<>("mysql:9.1.0-oraclelinux9") + private static final GenericContainer CONTAINER = new GenericContainer<>("mysql:9.1.0-oraclelinux9") .withEnv("MYSQL_ROOT_PASSWORD", PASSWORD) .withExposedPorts(3306); + private static DataSource logicDataSource; + private String jdbcUrlPrefix; private TestShardingService testShardingService; @@ -72,7 +75,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"); @@ -81,8 +87,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:mysql://localhost:" + CONTAINER.getMappedPort(3306) + "/"; - DataSource dataSource = createDataSource(); - testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java index 81e0396a8932f..6cc3554654835 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/OpenGaussTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -49,12 +50,18 @@ class OpenGaussTest { private static final String PASSWORD = "Enmo@123"; + /** + * Unable to use Docker Image `enmotech/opengauss` under WSL. + * Background comes from enmotech/enmotech-docker-opengauss#52. + */ @SuppressWarnings("resource") @Container - public static final GenericContainer CONTAINER = new GenericContainer<>("enmotech/opengauss-lite:5.1.0") + private static final GenericContainer CONTAINER = new GenericContainer<>("enmotech/opengauss-lite:5.1.0") .withEnv("GS_PASSWORD", PASSWORD) .withExposedPorts(5432); + private static DataSource logicDataSource; + private String jdbcUrlPrefix; private TestShardingService testShardingService; @@ -67,7 +74,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"); @@ -76,8 +86,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:opengauss://localhost:" + CONTAINER.getMappedPort(5432) + "/"; - DataSource dataSource = createDataSource(); - testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java index 623235e4fc5f4..1387a871310fc 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/PostgresTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; @@ -26,15 +27,21 @@ import org.testcontainers.jdbc.ContainerDatabaseDriver; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; @EnabledInNativeImage class PostgresTest { + private static DataSource logicDataSource; + private TestShardingService testShardingService; @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } ContainerDatabaseDriver.killContainers(); } @@ -43,8 +50,8 @@ void assertShardingInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/postgresql.yaml"); - DataSource dataSource = new HikariDataSource(config); - testShardingService = new TestShardingService(dataSource); + logicDataSource = new HikariDataSource(config); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/SQLServerTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/SQLServerTest.java index 44fe6b3c3ca2a..69af11d971a85 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/SQLServerTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/SQLServerTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; @@ -26,15 +27,21 @@ import org.testcontainers.jdbc.ContainerDatabaseDriver; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; @EnabledInNativeImage class SQLServerTest { + private static DataSource logicDataSource; + private TestShardingService testShardingService; @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } ContainerDatabaseDriver.killContainers(); } @@ -43,8 +50,8 @@ void assertShardingInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/sqlserver.yaml"); - DataSource dataSource = new HikariDataSource(config); - testShardingService = new TestShardingService(dataSource); + logicDataSource = new HikariDataSource(config); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/AcidTableTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/AcidTableTest.java index 2afb1dadab52a..f14995569dd18 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/AcidTableTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/AcidTableTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -58,6 +59,8 @@ class AcidTableTest { // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path. private static final String ABSOLUTE_PATH = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-acid.sql").toAbsolutePath().toString(); + private static DataSource logicDataSource; + private String jdbcUrlPrefix; @BeforeAll @@ -68,7 +71,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"); @@ -77,8 +83,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:hive2://localhost:" + CONTAINER.getMappedPort(10000) + "/"; - DataSource dataSource = createDataSource(); - TestShardingService testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + TestShardingService testShardingService = new TestShardingService(logicDataSource); testShardingService.processSuccessInHive(); } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/IcebergTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/IcebergTest.java index c63851367dfa3..8de9d9746b202 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/IcebergTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/IcebergTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -58,6 +59,8 @@ class IcebergTest { // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path. private static final String ABSOLUTE_PATH = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql").toAbsolutePath().toString(); + private static DataSource logicDataSource; + private String jdbcUrlPrefix; @BeforeAll @@ -68,7 +71,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url"); @@ -77,8 +83,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:hive2://localhost:" + CONTAINER.getMappedPort(10000) + "/"; - DataSource dataSource = createDataSource(); - TestShardingService testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + TestShardingService testShardingService = new TestShardingService(logicDataSource); testShardingService.processSuccessInHive(); } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/StandaloneMetastoreTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/StandaloneMetastoreTest.java index 3b9afd28e15a8..ba30361075b2d 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/StandaloneMetastoreTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/StandaloneMetastoreTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -69,6 +70,8 @@ class StandaloneMetastoreTest { // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path. private static final String ABSOLUTE_PATH = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql").toAbsolutePath().toString(); + private static DataSource logicDataSource; + private String jdbcUrlPrefix; @BeforeAll @@ -79,7 +82,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } NETWORK.close(); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); @@ -89,8 +95,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:hive2://localhost:" + HS2_CONTAINER.getMappedPort(10000) + "/"; - DataSource dataSource = createDataSource(); - TestShardingService testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + TestShardingService testShardingService = new TestShardingService(logicDataSource); testShardingService.processSuccessInHive(); } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java index 8123ef8a8a0c3..d1f40b772b997 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/databases/hive/ZookeeperServiceDiscoveryTest.java @@ -23,6 +23,7 @@ import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.test.InstanceSpec; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -85,6 +86,8 @@ class ZookeeperServiceDiscoveryTest { // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path. private static final String ABSOLUTE_PATH = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql").toAbsolutePath().toString(); + private static DataSource logicDataSource; + private final String jdbcUrlSuffix = ";serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2"; private String jdbcUrlPrefix; @@ -97,7 +100,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } NETWORK.close(); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url"); System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url"); @@ -107,8 +113,8 @@ static void afterAll() { @Test void assertShardingInLocalTransactions() throws SQLException { jdbcUrlPrefix = "jdbc:hive2://" + ZOOKEEPER_CONTAINER.getHost() + ":" + ZOOKEEPER_CONTAINER.getMappedPort(2181) + "/"; - DataSource dataSource = createDataSource(); - TestShardingService testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(); + TestShardingService testShardingService = new TestShardingService(logicDataSource); testShardingService.processSuccessInHive(); HS2_1_CONTAINER.stop(); int randomPortSecond = InstanceSpec.getRandomPort(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java index 24e7b9aa402d7..6e5c687c211fe 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/EncryptTest.java @@ -19,15 +19,18 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.entity.Address; import org.apache.shardingsphere.test.natived.commons.entity.Order; import org.apache.shardingsphere.test.natived.commons.entity.OrderItem; import org.apache.shardingsphere.test.natived.commons.repository.AddressRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderItemRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderRepository; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; @@ -40,21 +43,30 @@ class EncryptTest { + private static DataSource logicDataSource; + private OrderRepository orderRepository; private OrderItemRepository orderItemRepository; private AddressRepository addressRepository; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertEncryptInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/features/encrypt.yaml"); - DataSource dataSource = new HikariDataSource(config); - orderRepository = new OrderRepository(dataSource); - orderItemRepository = new OrderItemRepository(dataSource); - addressRepository = new AddressRepository(dataSource); + logicDataSource = new HikariDataSource(config); + orderRepository = new OrderRepository(logicDataSource); + orderItemRepository = new OrderItemRepository(logicDataSource); + addressRepository = new AddressRepository(logicDataSource); initEnvironment(); processSuccess(); cleanEnvironment(); @@ -115,8 +127,8 @@ private void deleteData(final Collection orderIds) throws SQLException { } private void cleanEnvironment() throws SQLException { - orderRepository.dropTable(); - orderItemRepository.dropTable(); - addressRepository.dropTable(); + orderRepository.dropTableInMySQL(); + orderItemRepository.dropTableInMySQL(); + addressRepository.dropTableInMySQL(); } } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java index 02b31f1e1f8eb..8bc7dd7d55d7b 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/MaskTest.java @@ -19,15 +19,18 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.entity.Address; import org.apache.shardingsphere.test.natived.commons.entity.Order; import org.apache.shardingsphere.test.natived.commons.entity.OrderItem; import org.apache.shardingsphere.test.natived.commons.repository.AddressRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderItemRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderRepository; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; @@ -41,21 +44,30 @@ class MaskTest { + private static DataSource logicDataSource; + private OrderRepository orderRepository; private OrderItemRepository orderItemRepository; private AddressRepository addressRepository; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertMaskInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/features/mask.yaml"); - DataSource dataSource = new HikariDataSource(config); - orderRepository = new OrderRepository(dataSource); - orderItemRepository = new OrderItemRepository(dataSource); - addressRepository = new AddressRepository(dataSource); + logicDataSource = new HikariDataSource(config); + orderRepository = new OrderRepository(logicDataSource); + orderItemRepository = new OrderItemRepository(logicDataSource); + addressRepository = new AddressRepository(logicDataSource); initEnvironment(); processSuccess(); cleanEnvironment(); @@ -116,8 +128,8 @@ private void deleteData(final Collection orderIds) throws SQLException { } private void cleanEnvironment() throws SQLException { - orderRepository.dropTable(); - orderItemRepository.dropTable(); - addressRepository.dropTable(); + orderRepository.dropTableInMySQL(); + orderItemRepository.dropTableInMySQL(); + addressRepository.dropTableInMySQL(); } } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java index 1eeef99debe54..fdf20986476f8 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ReadWriteSplittingTest.java @@ -19,6 +19,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.entity.Address; import org.apache.shardingsphere.test.natived.commons.entity.Order; import org.apache.shardingsphere.test.natived.commons.entity.OrderItem; @@ -26,9 +27,11 @@ import org.apache.shardingsphere.test.natived.commons.repository.OrderItemRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderRepository; import org.h2.jdbc.JdbcSQLSyntaxErrorException; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collection; @@ -37,21 +40,30 @@ class ReadWriteSplittingTest { + private static DataSource logicDataSource; + private OrderRepository orderRepository; private OrderItemRepository orderItemRepository; private AddressRepository addressRepository; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertReadWriteSplittingInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/features/readwrite-splitting.yaml"); - DataSource dataSource = new HikariDataSource(config); - orderRepository = new OrderRepository(dataSource); - orderItemRepository = new OrderItemRepository(dataSource); - addressRepository = new AddressRepository(dataSource); + logicDataSource = new HikariDataSource(config); + orderRepository = new OrderRepository(logicDataSource); + orderItemRepository = new OrderItemRepository(logicDataSource); + addressRepository = new AddressRepository(logicDataSource); initEnvironment(); processSuccess(); cleanEnvironment(); @@ -113,8 +125,8 @@ private void printData() throws SQLException { } private void cleanEnvironment() throws SQLException { - orderRepository.dropTable(); - orderItemRepository.dropTable(); - addressRepository.dropTable(); + orderRepository.dropTableInMySQL(); + orderItemRepository.dropTableInMySQL(); + addressRepository.dropTableInMySQL(); } } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java index 6f2fe443950a3..389e7a95d56c4 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShadowTest.java @@ -19,15 +19,18 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.entity.Address; import org.apache.shardingsphere.test.natived.commons.entity.Order; import org.apache.shardingsphere.test.natived.commons.entity.OrderItem; import org.apache.shardingsphere.test.natived.commons.repository.AddressRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderItemRepository; import org.apache.shardingsphere.test.natived.commons.repository.OrderRepository; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; @@ -41,21 +44,30 @@ class ShadowTest { + private static DataSource logicDataSource; + private OrderRepository orderRepository; private OrderItemRepository orderItemRepository; private AddressRepository addressRepository; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertShadowInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/features/shadow.yaml"); - DataSource dataSource = new HikariDataSource(config); - orderRepository = new OrderRepository(dataSource); - orderItemRepository = new OrderItemRepository(dataSource); - addressRepository = new AddressRepository(dataSource); + logicDataSource = new HikariDataSource(config); + orderRepository = new OrderRepository(logicDataSource); + orderItemRepository = new OrderItemRepository(logicDataSource); + addressRepository = new AddressRepository(logicDataSource); initEnvironment(); processSuccess(); cleanEnvironment(); @@ -144,8 +156,8 @@ private Collection selectAll() throws SQLException { private void cleanEnvironment() throws SQLException { orderRepository.dropTableShadow(); - orderRepository.dropTable(); - orderItemRepository.dropTable(); - addressRepository.dropTable(); + orderRepository.dropTableInMySQL(); + orderItemRepository.dropTableInMySQL(); + addressRepository.dropTableInMySQL(); } } diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java index 1219280cc4e9d..f01331ac9f14d 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/features/ShardingTest.java @@ -19,23 +19,35 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; class ShardingTest { + private static DataSource logicDataSource; + private TestShardingService testShardingService; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertShardingInLocalTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/features/sharding.yaml"); - DataSource dataSource = new HikariDataSource(config); - testShardingService = new TestShardingService(dataSource); + logicDataSource = new HikariDataSource(config); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java index 1c27d7edf0799..055742a8c5eca 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/EtcdTest.java @@ -20,6 +20,7 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import io.etcd.jetcd.test.EtcdClusterExtension; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -30,6 +31,7 @@ import javax.sql.DataSource; import java.net.URI; +import java.sql.Connection; import java.sql.SQLException; import java.time.Duration; import java.util.List; @@ -49,6 +51,8 @@ class EtcdTest { private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.mode.cluster.etcd."; + private static DataSource logicDataSource; + private TestShardingService testShardingService; @BeforeAll @@ -57,14 +61,17 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "server-lists"); } @Test void assertShardingInLocalTransactions() throws SQLException { - DataSource dataSource = createDataSource(CLUSTER.clientEndpoints()); - testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(CLUSTER.clientEndpoints()); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java index 607a26b48470e..ef7e6c1a53d63 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/modes/cluster/ZookeeperTest.java @@ -23,6 +23,7 @@ import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.test.TestingServer; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; @@ -31,6 +32,7 @@ import org.junit.jupiter.api.condition.EnabledInNativeImage; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; import java.time.Duration; import java.util.concurrent.TimeUnit; @@ -44,6 +46,8 @@ class ZookeeperTest { private static final String SYSTEM_PROP_KEY_PREFIX = "fixture.test-native.yaml.mode.cluster.zookeeper."; + private static DataSource logicDataSource; + private TestShardingService testShardingService; @BeforeAll @@ -52,7 +56,10 @@ static void beforeAll() { } @AfterAll - static void afterAll() { + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "server-lists"); } @@ -60,8 +67,8 @@ static void afterAll() { void assertShardingInLocalTransactions() throws Exception { try (TestingServer testingServer = new TestingServer()) { String connectString = testingServer.getConnectString(); - DataSource dataSource = createDataSource(connectString); - testShardingService = new TestShardingService(dataSource); + logicDataSource = createDataSource(connectString); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java index 33b8965aa7bde..dd5b725de71ab 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/base/SeataTest.java @@ -46,7 +46,7 @@ class SeataTest { @SuppressWarnings("resource") @Container - public static final GenericContainer CONTAINER = new GenericContainer<>("apache/seata-server:2.2.0") + private static final GenericContainer CONTAINER = new GenericContainer<>("apache/seata-server:2.2.0") .withExposedPorts(7091, 8091) .waitingFor(Wait.forHttp("/health") .forPort(7091) @@ -64,12 +64,6 @@ static void beforeAll() { assertThat(System.getProperty(SERVICE_DEFAULT_GROUP_LIST_KEY), is(nullValue())); } - /** - * TODO Need to investigate why {@link org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager#close()} is not called. - * The manual call {@link org.apache.shardingsphere.mode.manager.ContextManager#close()} is not intuitive. - * - * @throws SQLException SQL exception - */ @AfterAll static void afterAll() throws SQLException { try (Connection connection = logicDataSource.getConnection()) { diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java index 1cd74aca7d675..814ca02fd5781 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/AtomikosTest.java @@ -19,23 +19,35 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; class AtomikosTest { + private static DataSource logicDataSource; + private TestShardingService testShardingService; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertShardingInAtomikosTransactions() throws SQLException { HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/transactions/xa/atomikos.yaml"); - DataSource dataSource = new HikariDataSource(config); - testShardingService = new TestShardingService(dataSource); + logicDataSource = new HikariDataSource(config); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java index 4c4df2a177b6d..ce5b7b6fc9980 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/jdbc/transactions/xa/NarayanaTest.java @@ -21,24 +21,36 @@ import com.arjuna.ats.arjuna.common.arjPropertyManager; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; +import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection; import org.apache.shardingsphere.test.natived.commons.TestShardingService; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import javax.sql.DataSource; +import java.sql.Connection; import java.sql.SQLException; class NarayanaTest { + private static DataSource logicDataSource; + private TestShardingService testShardingService; + @AfterAll + static void afterAll() throws SQLException { + try (Connection connection = logicDataSource.getConnection()) { + connection.unwrap(ShardingSphereConnection.class).getContextManager().close(); + } + } + @Test void assertShardingInNarayanaTransactions() throws SQLException, CoreEnvironmentBeanException { arjPropertyManager.getCoreEnvironmentBean().setNodeIdentifier("1"); HikariConfig config = new HikariConfig(); config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver"); config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/transactions/xa/narayana.yaml"); - DataSource dataSource = new HikariDataSource(config); - testShardingService = new TestShardingService(dataSource); + logicDataSource = new HikariDataSource(config); + testShardingService = new TestShardingService(logicDataSource); initEnvironment(); testShardingService.processSuccess(); testShardingService.cleanEnvironment(); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/MySQLTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/MySQLTest.java index ee9c694297296..b6d7f27be3ba6 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/MySQLTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/MySQLTest.java @@ -46,7 +46,7 @@ class MySQLTest { @Container - public static final GenericContainer MYSQL_CONTAINER = new GenericContainer<>("mysql:9.1.0-oraclelinux9") + private static final GenericContainer MYSQL_CONTAINER = new GenericContainer<>("mysql:9.1.0-oraclelinux9") .withEnv("MYSQL_ROOT_PASSWORD", "yourStrongPassword123!") .withExposedPorts(3306); diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/PostgresTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/PostgresTest.java index 0be3680e22380..23f9972230e94 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/PostgresTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/databases/PostgresTest.java @@ -45,7 +45,7 @@ class PostgresTest { @Container - public static final PostgreSQLContainer POSTGRES_CONTAINER = new PostgreSQLContainer<>("postgres:17.2-bookworm"); + private static final PostgreSQLContainer POSTGRES_CONTAINER = new PostgreSQLContainer<>("postgres:17.2-bookworm"); private static ProxyTestingServer proxyTestingServer; diff --git a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java index 52fb2340b4617..a768dd457ba40 100644 --- a/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java +++ b/test/native/src/test/java/org/apache/shardingsphere/test/natived/proxy/transactions/base/SeataTest.java @@ -20,12 +20,8 @@ import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.apache.http.HttpStatus; -import org.apache.seata.config.ConfigurationFactory; -import org.apache.seata.core.rpc.netty.RmNettyRemotingClient; -import org.apache.seata.core.rpc.netty.TmNettyRemotingClient; import org.apache.shardingsphere.test.natived.commons.TestShardingService; import org.apache.shardingsphere.test.natived.commons.proxy.ProxyTestingServer; -import org.apache.shardingsphere.transaction.base.seata.at.SeataTransactionHolder; import org.awaitility.Awaitility; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; @@ -57,12 +53,12 @@ class SeataTest { @Container - public static final GenericContainer CONTAINER = new GenericContainer<>("apache/seata-server:2.2.0") + private static final GenericContainer CONTAINER = new GenericContainer<>("apache/seata-server:2.2.0") .withExposedPorts(7091, 8091) .waitingFor(Wait.forHttp("/health").forPort(7091).forStatusCode(HttpStatus.SC_OK).forResponsePredicate("ok"::equals)); @Container - public static final PostgreSQLContainer POSTGRES_CONTAINER = new PostgreSQLContainer<>("postgres:17.2-bookworm") + private static final PostgreSQLContainer POSTGRES_CONTAINER = new PostgreSQLContainer<>("postgres:17.2-bookworm") .withCopyFileToContainer( MountableFile.forHostPath(Paths.get("src/test/resources/test-native/sh/postgres.sh").toAbsolutePath()), "/docker-entrypoint-initdb.d/postgres.sh"); @@ -90,16 +86,8 @@ static void beforeAll() { }); } - /** - * TODO Facing the same issue with {@code org.apache.shardingsphere.test.natived.jdbc.transactions.base.SeataTest}, - * {@link org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager#close()} was never called. - */ @AfterAll static void afterAll() { - SeataTransactionHolder.clear(); - RmNettyRemotingClient.getInstance().destroy(); - TmNettyRemotingClient.getInstance().destroy(); - ConfigurationFactory.reload(); proxyTestingServer.close(); System.clearProperty(SERVICE_DEFAULT_GROUP_LIST_KEY); } diff --git a/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/reflect-config.json b/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/reflect-config.json index 01332da0b9ac9..996859280ee63 100644 --- a/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/reflect-config.json +++ b/test/native/src/test/resources/META-INF/native-image/shardingsphere-test-native-test-metadata/reflect-config.json @@ -184,5 +184,13 @@ "allDeclaredConstructors": true, "allDeclaredMethods": true, "allPublicMethods": true +}, +{ + "condition":{"typeReachable":"org.apache.shardingsphere.test.natived.jdbc.databases.FirebirdTest"}, + "name":"org.apache.shardingsphere.test.natived.jdbc.databases.FirebirdTest", + "allDeclaredFields": true, + "allDeclaredConstructors": true, + "allDeclaredMethods": true, + "allPublicMethods": true } ] diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/firebird.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/firebird.yaml new file mode 100644 index 0000000000000..9b4a9b636cd30 --- /dev/null +++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/firebird.yaml @@ -0,0 +1,69 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +dataSources: + ds_0: + dataSourceClassName: com.zaxxer.hikari.HikariDataSource + driverClassName: org.firebirdsql.jdbc.FBDriver + jdbcUrl: $${fixture.test-native.yaml.database.firebird.ds0.jdbc-url::} + username: alice + password: masterkey + ds_1: + dataSourceClassName: com.zaxxer.hikari.HikariDataSource + driverClassName: org.firebirdsql.jdbc.FBDriver + jdbcUrl: $${fixture.test-native.yaml.database.firebird.ds1.jdbc-url::} + username: alice + password: masterkey + ds_2: + dataSourceClassName: com.zaxxer.hikari.HikariDataSource + driverClassName: org.firebirdsql.jdbc.FBDriver + jdbcUrl: $${fixture.test-native.yaml.database.firebird.ds2.jdbc-url::} + username: alice + password: masterkey + +rules: +- !SHARDING + tables: + t_order: + actualDataNodes: ds_0.t_order, ds_1.t_order, ds_2.t_order + keyGenerateStrategy: + column: order_id + keyGeneratorName: snowflake + t_order_item: + actualDataNodes: ds_0.t_order_item, ds_1.t_order_item, ds_2.t_order_item + keyGenerateStrategy: + column: order_item_id + keyGeneratorName: snowflake + defaultDatabaseStrategy: + standard: + shardingColumn: user_id + shardingAlgorithmName: inline + shardingAlgorithms: + inline: + type: CLASS_BASED + props: + strategy: STANDARD + algorithmClassName: org.apache.shardingsphere.test.natived.commons.algorithm.ClassBasedInlineShardingAlgorithmFixture + keyGenerators: + snowflake: + type: SNOWFLAKE + auditors: + sharding_key_required_auditor: + type: DML_SHARDING_CONDITIONS +- !BROADCAST + tables: + - t_address