You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by ji...@apache.org on 2025/03/28 06:09:31 UTC

(shardingsphere) branch master updated: Fix the bug that nativeTest under GraalVM Native Image of HiveServer2 cannot run on Windows 11 (#35057)

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

jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new ff59f7a2116 Fix the bug that nativeTest under GraalVM Native Image of HiveServer2 cannot run on Windows 11 (#35057)
ff59f7a2116 is described below

commit ff59f7a21169bbc2339ad8139b5a2fbcb1059642
Author: Ling Hengqian <li...@outlook.com>
AuthorDate: Fri Mar 28 14:09:26 2025 +0800

    Fix the bug that nativeTest under GraalVM Native Image of HiveServer2 cannot run on Windows 11 (#35057)
---
 .../optional-plugins/hiveserver2/_index.cn.md      |    4 +
 .../optional-plugins/hiveserver2/_index.en.md      |    5 +
 .../clickhouse-jdbc/0.6.3/resource-config.json     |    3 +
 .../calcite-core/1.35.0/reflect-config.json        |  780 -----------
 .../calcite-core/1.35.0/resource-config.json       |    8 -
 .../calcite-core/1.38.0/proxy-config.json          |  102 ++
 .../calcite-core/1.38.0/reflect-config.json        | 1355 ++++++++++++++++++++
 .../calcite-core/1.38.0/resource-config.json       |   11 +
 .../hadoop-common/3.3.6/reflect-config.json        |    4 +
 .../jni-config.json                                |   41 -
 .../proxy-config.json                              |    4 +
 .../reflect-config.json                            |  562 +++++---
 .../resource-config.json                           |   55 +-
 .../reflect-config.json                            |  106 +-
 .../resource-config.json                           |    2 +-
 .../natived/jdbc/databases/ClickHouseTest.java     |   12 +-
 .../natived/jdbc/databases/hive/AcidTableTest.java |   77 +-
 .../natived/jdbc/databases/hive/IcebergTest.java   |   61 +-
 .../databases/hive/StandaloneMetastoreTest.java    |   89 +-
 .../hive/ZookeeperServiceDiscoveryTest.java        |  123 +-
 .../test/natived/jdbc/modes/cluster/EtcdTest.java  |    6 +
 .../sql/test-native-databases-hive-acid.sql        |   55 -
 .../sql/test-native-databases-hive-iceberg.sql     |   48 -
 .../test-native/yaml/jdbc/databases/hive/acid.yaml |    4 +-
 .../yaml/jdbc/databases/hive/iceberg.yaml          |    4 +-
 .../yaml/jdbc/databases/hive/standalone-hms.yaml   |    4 +-
 .../test-native/yaml/jdbc/databases/hive/zsd.yaml  |    4 +-
 27 files changed, 2241 insertions(+), 1288 deletions(-)

diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
index 4ec84b5cf42..40f88bd9ae5 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.cn.md
@@ -482,6 +482,10 @@ HiveServer2 并不能保证每一条 `insert` 相关的 DML SQL 都能成功执
 ShardingSphere JDBC DataSource 尚不支持执行 HiveServer2 的 `set`,`create table`,`truncate table` 和 `drop table` 语句。
 用户应考虑为 ShardingSphere 提交包含单元测试的 PR。
 
+#### 使用 `initFile` 参数部分绕开 SQL 限制
+
+受 https://issues.apache.org/jira/browse/HIVE-28835 影响,HiveServer2 JDBC Driver 的`initFile` 参数仅可在 Linux 环境下使用。
+
 以 `set` 为代表的 SQL 语句很容易在 HiveServer2 Client 级别被动态配置。
 即便 ShardingSphere JDBC 不支持在虚拟 DataSource 上执行 HiveServer2 的 `set` 语句,
 用户也可以通过 `initFile` 的 Hive Session 参数来直接为真实 DataSource 执行一系列 SQL。
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
index 66ee9beccbf..0e8c562079c 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/hiveserver2/_index.en.md
@@ -489,6 +489,11 @@ ShardingSphere JDBC DataSource does not yet support executing HiveServer2's `set
 and `drop table` statements.
 Users should consider submitting a PR containing unit tests for ShardingSphere.
 
+#### Use `initFile` parameter to partially bypass SQL restrictions
+
+Affected by https://issues.apache.org/jira/browse/HIVE-28835 , 
+the `initFile` parameter of HiveServer2 JDBC Driver is only available in Linux environment.
+
 SQL statements represented by `set` can be easily configured dynamically at the HiveServer2 Client level.
 Even though ShardingSphere JDBC does not support executing HiveServer2's `set` statement on a virtual DataSource,
 users can directly execute a series of SQLs for the real DataSource through the Hive Session parameter of `initFile`.
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.clickhouse/clickhouse-jdbc/0.6.3/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.clickhouse/clickhouse-jdbc/0.6.3/resource-config.json
index 4e119f34a54..04306e07bcb 100644
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.clickhouse/clickhouse-jdbc/0.6.3/resource-config.json
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/com.clickhouse/clickhouse-jdbc/0.6.3/resource-config.json
@@ -15,6 +15,9 @@
   }, {
     "condition":{"typeReachable":"com.clickhouse.client.internal.jpountz.lz4.LZ4JNI"},
     "pattern":"\\Qcom/clickhouse/client/internal/jpountz/util/linux/amd64/liblz4-java.so\\E"
+  }, {
+    "condition":{"typeReachable":"com.clickhouse.client.internal.jpountz.lz4.LZ4JNI"},
+    "pattern":"\\Qcom/clickhouse/client/internal/jpountz/util/win32/amd64/liblz4-java.so\\E"
   }]},
   "bundles":[]
 }
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.35.0/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.35.0/reflect-config.json
deleted file mode 100644
index bd8b1564304..00000000000
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.35.0/reflect-config.json
+++ /dev/null
@@ -1,780 +0,0 @@
-[
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.DataContext",
-  "methods":[{"name":"get","parameterTypes":["java.lang.String"] }, {"name":"getQueryProvider","parameterTypes":[] }, {"name":"getRootSchema","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.AggregateLambdaFactory",
-  "methods":[{"name":"accumulatorAdder","parameterTypes":[] }, {"name":"accumulatorInitializer","parameterTypes":[] }, {"name":"resultSelector","parameterTypes":["org.apache.calcite.linq4j.function.Function2"] }, {"name":"singleGroupResultSelector","parameterTypes":["org.apache.calcite.linq4j.function.Function1"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory",
-  "queryAllDeclaredConstructors":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.BasicLazyAccumulator",
-  "queryAllDeclaredConstructors":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.EnumUtils",
-  "methods":[{"name":"hopping","parameterTypes":["org.apache.calcite.linq4j.Enumerator","int","long","long","long"] }, {"name":"sessionize","parameterTypes":["org.apache.calcite.linq4j.Enumerator","int","int","long"] }, {"name":"tumbling","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.LazyAggregateLambdaFactory",
-  "queryAllDeclaredConstructors":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.MatchUtils",
-  "methods":[{"name":"lastWithSymbol","parameterTypes":["java.lang.String","java.util.List","java.util.List","int"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$ArgMinMaxImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$BitOpImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$CollectImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$CountImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$CountWinImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$DenseRankImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$FirstValueImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$FusionImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$GroupingImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$IntersectionImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LagImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LastValueImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LeadImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$ListaggImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LiteralAggImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$MinMaxImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$ModeImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$NthValueImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$NtileImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$RankImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$RowNumberImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$SingleValueImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$Builder"},
-  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$SumImplementor",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.enumerable.SourceSorter",
-  "queryAllDeclaredConstructors":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.java.ReflectiveSchema",
-  "methods":[{"name":"getTarget","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.adapter.jdbc.JdbcSchema",
-  "methods":[{"name":"getDataSource","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.avatica.remote.Driver"},
-  "name":"org.apache.calcite.avatica.AvaticaJdbc41Factory",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.avatica.util.DateTimeUtils",
-  "queryAllPublicMethods":true,
-  "methods":[{"name":"addMonths","parameterTypes":["int","int"] }, {"name":"addMonths","parameterTypes":["long","int"] }, {"name":"dateStringToUnixDate","parameterTypes":["java.lang.String"] }, {"name":"intervalDayTimeToString","parameterTypes":["long","org.apache.calcite.avatica.util.TimeUnitRange","int"] }, {"name":"intervalYearMonthToString","parameterTypes":["int","org.apache.calcite.avatica.util.TimeUnitRange"] }, {"name":"lastDay","parameterTypes":["int"] }, {"name":"subtractMonths [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.interpreter.Context",
-  "fields":[{"name":"root"}, {"name":"values"}]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.interpreter.Row",
-  "methods":[{"name":"asCopy","parameterTypes":["java.lang.Object[]"] }, {"name":"getObject","parameterTypes":["int"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.interpreter.Scalar",
-  "methods":[{"name":"execute","parameterTypes":["org.apache.calcite.interpreter.Context"] }, {"name":"execute","parameterTypes":["org.apache.calcite.interpreter.Context","java.lang.Object[]"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.jdbc.Driver"},
-  "name":"org.apache.calcite.jdbc.CalciteJdbc41Factory",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.AbstractEnumerable",
-  "queryAllDeclaredConstructors":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.Enumerable",
-  "methods":[{"name":"asQueryable","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.EnumerableDefaults",
-  "methods":[{"name":"antiJoin","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.EqualityComparer","org.apache.calcite.linq4j.function.Predicate2"] }, {"name":"correlateBatchJoin","parameterTypes":["org.apache.calcite.linq4j.JoinType","org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Funct [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.Enumerator",
-  "methods":[{"name":"close","parameterTypes":[] }, {"name":"current","parameterTypes":[] }, {"name":"moveNext","parameterTypes":[] }, {"name":"reset","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.ExtendedEnumerable",
-  "methods":[{"name":"aggregate","parameterTypes":["java.lang.Object","org.apache.calcite.linq4j.function.Function2","org.apache.calcite.linq4j.function.Function1"] }, {"name":"asEnumerable","parameterTypes":[] }, {"name":"concat","parameterTypes":["org.apache.calcite.linq4j.Enumerable"] }, {"name":"correlateJoin","parameterTypes":["org.apache.calcite.linq4j.JoinType","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.Function2"] }, {"name":"distinct","par [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.ExtendedQueryable",
-  "methods":[{"name":"select","parameterTypes":["org.apache.calcite.linq4j.tree.FunctionExpression"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.Linq4j",
-  "methods":[{"name":"asEnumerable","parameterTypes":["java.lang.Iterable"] }, {"name":"asEnumerable","parameterTypes":["java.lang.Object[]"] }, {"name":"emptyEnumerable","parameterTypes":[] }, {"name":"singletonEnumerable","parameterTypes":["java.lang.Object"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.MemoryFactory$Memory",
-  "methods":[{"name":"get","parameterTypes":[] }, {"name":"get","parameterTypes":["int"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.Queryable"
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.RawEnumerable",
-  "methods":[{"name":"enumerator","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.function.Function0",
-  "methods":[{"name":"apply","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.function.Function1",
-  "methods":[{"name":"apply","parameterTypes":["java.lang.Object"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.function.Functions",
-  "methods":[{"name":"all","parameterTypes":["java.util.List","org.apache.calcite.linq4j.function.Predicate1"] }, {"name":"arrayComparer","parameterTypes":[] }, {"name":"exists","parameterTypes":["java.util.List","org.apache.calcite.linq4j.function.Predicate1"] }, {"name":"identityComparer","parameterTypes":[] }, {"name":"identitySelector","parameterTypes":[] }, {"name":"nullsComparator","parameterTypes":["boolean","boolean"] }, {"name":"nullsComparator","parameterTypes":["boolean","bool [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.linq4j.tree.Primitive",
-  "methods":[{"name":"asList","parameterTypes":["java.lang.Object"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates",
-  "methods":[{"name":"getAllPredicates","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation",
-  "methods":[{"name":"collations","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin",
-  "methods":[{"name":"getColumnOrigins","parameterTypes":["int"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness",
-  "methods":[{"name":"areColumnsUnique","parameterTypes":["org.apache.calcite.util.ImmutableBitSet","boolean"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost",
-  "methods":[{"name":"getCumulativeCost","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount",
-  "methods":[{"name":"getDistinctRowCount","parameterTypes":["org.apache.calcite.util.ImmutableBitSet","org.apache.calcite.rex.RexNode"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution",
-  "methods":[{"name":"distribution","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility",
-  "methods":[{"name":"isVisibleInExplain","parameterTypes":["org.apache.calcite.sql.SqlExplainLevel"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage",
-  "methods":[{"name":"getExpressionLineage","parameterTypes":["org.apache.calcite.rex.RexNode"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost",
-  "methods":[{"name":"getLowerBoundCost","parameterTypes":["org.apache.calcite.plan.volcano.VolcanoPlanner"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount",
-  "methods":[{"name":"getMaxRowCount","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory",
-  "methods":[{"name":"cumulativeMemoryWithinPhase","parameterTypes":[] }, {"name":"cumulativeMemoryWithinPhaseSplit","parameterTypes":[] }, {"name":"memory","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount",
-  "methods":[{"name":"getMinRowCount","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes",
-  "methods":[{"name":"getNodeTypes","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost",
-  "methods":[{"name":"getNonCumulativeCost","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism",
-  "methods":[{"name":"isPhaseTransition","parameterTypes":[] }, {"name":"splitCount","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows",
-  "methods":[{"name":"getPercentageOriginalRows","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize",
-  "methods":[{"name":"getPopulationSize","parameterTypes":["org.apache.calcite.util.ImmutableBitSet"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates",
-  "methods":[{"name":"getPredicates","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount",
-  "methods":[{"name":"getRowCount","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity",
-  "methods":[{"name":"getSelectivity","parameterTypes":["org.apache.calcite.rex.RexNode"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size",
-  "methods":[{"name":"averageColumnSizes","parameterTypes":[] }, {"name":"averageRowSize","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences",
-  "methods":[{"name":"getTableReferences","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys",
-  "methods":[{"name":"getUniqueKeys","parameterTypes":["boolean"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys"},
-  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys$Handler",
-  "queryAllDeclaredMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.rel.metadata.Metadata",
-  "methods":[{"name":"rel","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdAllPredicates"},
-  "name":"org.apache.calcite.rel.metadata.RelMdAllPredicates",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdCollation"},
-  "name":"org.apache.calcite.rel.metadata.RelMdCollation",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdColumnOrigins"},
-  "name":"org.apache.calcite.rel.metadata.RelMdColumnOrigins",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdColumnUniqueness"},
-  "name":"org.apache.calcite.rel.metadata.RelMdColumnUniqueness",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdDistinctRowCount"},
-  "name":"org.apache.calcite.rel.metadata.RelMdDistinctRowCount",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdDistribution"},
-  "name":"org.apache.calcite.rel.metadata.RelMdDistribution",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdExplainVisibility"},
-  "name":"org.apache.calcite.rel.metadata.RelMdExplainVisibility",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdExpressionLineage"},
-  "name":"org.apache.calcite.rel.metadata.RelMdExpressionLineage",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdLowerBoundCost"},
-  "name":"org.apache.calcite.rel.metadata.RelMdLowerBoundCost",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMaxRowCount"},
-  "name":"org.apache.calcite.rel.metadata.RelMdMaxRowCount",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMemory"},
-  "name":"org.apache.calcite.rel.metadata.RelMdMemory",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMinRowCount"},
-  "name":"org.apache.calcite.rel.metadata.RelMdMinRowCount",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdNodeTypes"},
-  "name":"org.apache.calcite.rel.metadata.RelMdNodeTypes",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdParallelism"},
-  "name":"org.apache.calcite.rel.metadata.RelMdParallelism",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows"},
-  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows$RelMdCumulativeCost",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows"},
-  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows$RelMdNonCumulativeCost",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows"},
-  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows$RelMdPercentageOriginalRowsHandler",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPopulationSize"},
-  "name":"org.apache.calcite.rel.metadata.RelMdPopulationSize",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPredicates"},
-  "name":"org.apache.calcite.rel.metadata.RelMdPredicates",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdRowCount"},
-  "name":"org.apache.calcite.rel.metadata.RelMdRowCount",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdSelectivity"},
-  "name":"org.apache.calcite.rel.metadata.RelMdSelectivity",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdSize"},
-  "name":"org.apache.calcite.rel.metadata.RelMdSize",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdTableReferences"},
-  "name":"org.apache.calcite.rel.metadata.RelMdTableReferences",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdUniqueKeys"},
-  "name":"org.apache.calcite.rel.metadata.RelMdUniqueKeys",
-  "queryAllPublicMethods":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.ArrayBindable",
-  "methods":[{"name":"getElementType","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.BinarySearch",
-  "methods":[{"name":"lowerBound","parameterTypes":["java.lang.Object[]","java.lang.Object","int","int","java.util.Comparator"] }, {"name":"lowerBound","parameterTypes":["java.lang.Object[]","java.lang.Object","int","int","org.apache.calcite.linq4j.function.Function1","java.util.Comparator"] }, {"name":"upperBound","parameterTypes":["java.lang.Object[]","java.lang.Object","int","int","java.util.Comparator"] }, {"name":"upperBound","parameterTypes":["java.lang.Object[]","java.lang.Object" [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Bindable",
-  "methods":[{"name":"bind","parameterTypes":["org.apache.calcite.DataContext"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.CompressionFunctions",
-  "methods":[{"name":"compress","parameterTypes":["java.lang.String"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Enumerables",
-  "methods":[{"name":"match","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.runtime.Matcher","org.apache.calcite.runtime.Enumerables$Emitter","int","int"] }, {"name":"slice0","parameterTypes":["org.apache.calcite.linq4j.Enumerable"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Enumerables$Emitter",
-  "methods":[{"name":"emit","parameterTypes":["java.util.List","java.util.List","java.util.List","int","java.util.function.Consumer"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.FlatLists",
-  "fields":[{"name":"COMPARABLE_EMPTY_LIST"}],
-  "methods":[{"name":"copyOf","parameterTypes":["java.lang.Comparable[]"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object","java.lang.Object"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object","java.lang.Object","java.lang.Object"] }, {"name":" [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.FunctionContexts",
-  "methods":[{"name":"of","parameterTypes":["org.apache.calcite.DataContext","java.lang.Object[]"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.JsonFunctions",
-  "queryAllPublicMethods":true,
-  "methods":[{"name":"dejsonize","parameterTypes":["java.lang.String"] }, {"name":"isJsonArray","parameterTypes":["java.lang.String"] }, {"name":"isJsonObject","parameterTypes":["java.lang.String"] }, {"name":"isJsonScalar","parameterTypes":["java.lang.String"] }, {"name":"isJsonValue","parameterTypes":["java.lang.String"] }, {"name":"jsonApiCommonSyntax","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"jsonArrayAggAdd","parameterTypes":["java.util.List","java.lang.Ob [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Matcher",
-  "methods":[{"name":"builder","parameterTypes":["org.apache.calcite.runtime.Automaton"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Matcher$Builder",
-  "methods":[{"name":"add","parameterTypes":["java.lang.String","java.util.function.Predicate"] }, {"name":"build","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.PairList",
-  "methods":[{"name":"copyOf","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object[]"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Pattern$PatternBuilder",
-  "methods":[{"name":"automaton","parameterTypes":[] }, {"name":"build","parameterTypes":[] }, {"name":"seq","parameterTypes":[] }, {"name":"symbol","parameterTypes":["java.lang.String"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.RandomFunction",
-  "methods":[{"name":"rand","parameterTypes":[] }, {"name":"randInteger","parameterTypes":["int"] }, {"name":"randIntegerSeed","parameterTypes":["int","int"] }, {"name":"randSeed","parameterTypes":["int"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.ResultSetEnumerable",
-  "methods":[{"name":"createEnricher","parameterTypes":["java.lang.Integer[]","org.apache.calcite.DataContext"] }, {"name":"of","parameterTypes":["javax.sql.DataSource","java.lang.String","org.apache.calcite.linq4j.function.Function1"] }, {"name":"of","parameterTypes":["javax.sql.DataSource","java.lang.String","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.runtime.ResultSetEnumerable$PreparedStatementEnricher"] }, {"name":"setTimeout","parameterTypes":["org.apache.cal [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.SortedMultiMap",
-  "methods":[{"name":"arrays","parameterTypes":["java.util.Comparator"] }, {"name":"putMulti","parameterTypes":["java.lang.Object","java.lang.Object"] }, {"name":"singletonArrayIterator","parameterTypes":["java.util.Comparator","java.util.List"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.SpatialTypeFunctions",
-  "methods":[{"name":"ST_GeomFromEWKT","parameterTypes":["java.lang.String"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.SqlFunctions",
-  "queryAllPublicMethods":true,
-  "methods":[{"name":"array","parameterTypes":["java.lang.Object[]"] }, {"name":"arrayAppend","parameterTypes":["java.util.List","java.lang.Object"] }, {"name":"arrayExcept","parameterTypes":["java.util.List","java.util.List"] }, {"name":"arrayIntersect","parameterTypes":["java.util.List","java.util.List"] }, {"name":"arrayItemOptional","parameterTypes":["java.util.List","int","int","boolean"] }, {"name":"arrayMax","parameterTypes":["java.util.List"] }, {"name":"arrayMin","parameterTypes [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.Utilities",
-  "methods":[{"name":"compare","parameterTypes":["java.lang.Comparable","java.lang.Comparable"] }, {"name":"compare","parameterTypes":["java.lang.Comparable","java.lang.Comparable","java.util.Comparator"] }, {"name":"compareNullsFirst","parameterTypes":["java.lang.Comparable","java.lang.Comparable"] }, {"name":"compareNullsFirst","parameterTypes":["java.lang.Comparable","java.lang.Comparable","java.util.Comparator"] }, {"name":"compareNullsLast","parameterTypes":["java.lang.Comparable"," [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.runtime.XmlFunctions",
-  "methods":[{"name":"existsNode","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, {"name":"extractValue","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"extractXml","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, {"name":"xmlTransform","parameterTypes":["java.lang.String","java.lang.String"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.schema.ModifiableTable",
-  "methods":[{"name":"getModifiableCollection","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.schema.QueryableTable",
-  "methods":[{"name":"asQueryable","parameterTypes":["org.apache.calcite.linq4j.QueryProvider","org.apache.calcite.schema.SchemaPlus","java.lang.String"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.schema.ScannableTable",
-  "methods":[{"name":"scan","parameterTypes":["org.apache.calcite.DataContext"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.schema.Schema",
-  "methods":[{"name":"getSubSchema","parameterTypes":["java.lang.String"] }, {"name":"getTable","parameterTypes":["java.lang.String"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.schema.SchemaPlus",
-  "methods":[{"name":"add","parameterTypes":["java.lang.String","org.apache.calcite.schema.Table"] }, {"name":"removeTable","parameterTypes":["java.lang.String"] }, {"name":"unwrap","parameterTypes":["java.lang.Class"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
-  "name":"org.apache.calcite.schema.Schemas",
-  "methods":[{"name":"enumerable","parameterTypes":["org.apache.calcite.schema.FilterableTable","org.apache.calcite.DataContext"] }, {"name":"enumerable","parameterTypes":["org.apache.calcite.schema.ProjectableFilterableTable","org.apache.calcite.DataContext"] }, {"name":"enumerable","parameterTypes":["org.apache.calcite.schema.ScannableTable","org.apache.calcite.DataContext"] }, {"name":"queryable","parameterTypes":["org.apache.calcite.DataContext","org.apache.calcite.schema.SchemaPlus" [...]
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.sql.fun.SqlLibraryOperatorTableFactory"},
-  "name":"org.apache.calcite.sql.fun.SqlLibraryOperators",
-  "allPublicFields":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.sql.util.ReflectiveSqlOperatorTable"},
-  "name":"org.apache.calcite.sql.fun.SqlStdOperatorTable",
-  "allPublicFields":true
-},
-{
-  "condition":{"typeReachable":"org.apache.calcite.sql2rel.ReflectiveConvertletTable"},
-  "name":"org.apache.calcite.sql2rel.StandardConvertletTable",
-  "queryAllPublicMethods":true
-}
-]
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.35.0/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.35.0/resource-config.json
deleted file mode 100644
index 5fa423a4701..00000000000
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.35.0/resource-config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resources":{
-  "includes":[{
-    "condition":{"typeReachable":"org.apache.calcite.avatica.remote.Driver"},
-    "pattern":"\\Qorg-apache-calcite-jdbc.properties\\E"
-  }]},
-  "bundles":[]
-}
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/proxy-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/proxy-config.json
new file mode 100644
index 00000000000..4277ea5ab89
--- /dev/null
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/proxy-config.json
@@ -0,0 +1,102 @@
+[
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Collation$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Measure$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Memory$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$Size$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences$Handler"]
+  },
+  {
+    "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMetadataQueryBase"},
+    "interfaces":["org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys$Handler"]
+  }
+]
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json
new file mode 100644
index 00000000000..4fcab4ec256
--- /dev/null
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/reflect-config.json
@@ -0,0 +1,1355 @@
+[
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.DataContext",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.DataContext",
+  "methods":[{"name":"get","parameterTypes":["java.lang.String"] }, {"name":"getQueryProvider","parameterTypes":[] }, {"name":"getRootSchema","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.adapter.enumerable.AggregateLambdaFactory",
+  "methods":[{"name":"accumulatorAdder","parameterTypes":[] }, {"name":"accumulatorInitializer","parameterTypes":[] }, {"name":"resultSelector","parameterTypes":["org.apache.calcite.linq4j.function.Function2"] }, {"name":"singleGroupResultSelector","parameterTypes":["org.apache.calcite.linq4j.function.Function1"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory",
+  "queryAllDeclaredConstructors":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.adapter.enumerable.BasicLazyAccumulator",
+  "queryAllDeclaredConstructors":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.adapter.enumerable.EnumUtils",
+  "methods":[{"name":"hopping","parameterTypes":["org.apache.calcite.linq4j.Enumerator","int","long","long","long"] }, {"name":"sessionize","parameterTypes":["org.apache.calcite.linq4j.Enumerator","int","int","long"] }, {"name":"tumbling","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.adapter.enumerable.LazyAggregateLambdaFactory",
+  "queryAllDeclaredConstructors":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.adapter.enumerable.MatchUtils",
+  "methods":[{"name":"lastWithSymbol","parameterTypes":["java.lang.String","java.util.List","java.util.List","int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$ArgMinMaxImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$BitOpImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$CollectImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$CountImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$CountWinImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$DenseRankImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$FirstValueImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$FusionImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$GroupingImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$IntersectionImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LagImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LastValueImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LeadImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$ListaggImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$LiteralAggImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$MinMaxImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$ModeImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$NthValueImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$NtileImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$RankImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$RowNumberImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$SingleValueImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$AbstractBuilder"},
+  "name":"org.apache.calcite.adapter.enumerable.RexImpTable$SumImplementor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.adapter.enumerable.SourceSorter",
+  "queryAllDeclaredConstructors":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.adapter.java.ReflectiveSchema",
+  "methods":[{"name":"getTarget","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.adapter.jdbc.JdbcSchema",
+  "methods":[{"name":"getDataSource","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.avatica.remote.Driver"},
+  "name":"org.apache.calcite.avatica.AvaticaJdbc41Factory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.avatica.util.DateTimeUtils",
+  "queryAllPublicMethods":true,
+  "methods":[{"name":"addMonths","parameterTypes":["int","int"] }, {"name":"addMonths","parameterTypes":["long","int"] }, {"name":"dateStringToUnixDate","parameterTypes":["java.lang.String"] }, {"name":"intervalDayTimeToString","parameterTypes":["long","org.apache.calcite.avatica.util.TimeUnitRange","int"] }, {"name":"intervalYearMonthToString","parameterTypes":["int","org.apache.calcite.avatica.util.TimeUnitRange"] }, {"name":"lastDay","parameterTypes":["int"] }, {"name":"subtractMonths [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.interpreter.Context",
+  "fields":[{"name":"root"}, {"name":"values"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.interpreter.Row",
+  "methods":[{"name":"asCopy","parameterTypes":["java.lang.Object[]"] }, {"name":"copyValues","parameterTypes":[] }, {"name":"getObject","parameterTypes":["int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.interpreter.Scalar",
+  "methods":[{"name":"execute","parameterTypes":["org.apache.calcite.interpreter.Context"] }, {"name":"execute","parameterTypes":["org.apache.calcite.interpreter.Context","java.lang.Object[]"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.jdbc.Driver"},
+  "name":"org.apache.calcite.jdbc.CalciteJdbc41Factory",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.AbstractEnumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true,
+  "queryAllDeclaredConstructors":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.linq4j.AbstractEnumerable",
+  "queryAllDeclaredConstructors":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.DefaultEnumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.Enumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.Enumerable",
+  "methods":[{"name":"asQueryable","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.EnumerableDefaults",
+  "methods":[{"name":"antiJoin","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.EqualityComparer","org.apache.calcite.linq4j.function.Predicate2"] }, {"name":"correlateBatchJoin","parameterTypes":["org.apache.calcite.linq4j.JoinType","org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Funct [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.Enumerator",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.Enumerator",
+  "methods":[{"name":"close","parameterTypes":[] }, {"name":"current","parameterTypes":[] }, {"name":"moveNext","parameterTypes":[] }, {"name":"reset","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.ExtendedEnumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.ExtendedEnumerable",
+  "methods":[{"name":"aggregate","parameterTypes":["java.lang.Object","org.apache.calcite.linq4j.function.Function2","org.apache.calcite.linq4j.function.Function1"] }, {"name":"asEnumerable","parameterTypes":[] }, {"name":"asofJoin","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.linq4j.function.Function2","org.apache.calcite.linq4j.function.Predicate2","java.util.Co [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.ExtendedOrderedEnumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.ExtendedQueryable",
+  "methods":[{"name":"select","parameterTypes":["org.apache.calcite.linq4j.tree.FunctionExpression"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.JoinType"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.Linq4j",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.Linq4j",
+  "methods":[{"name":"asEnumerable","parameterTypes":["java.lang.Iterable"] }, {"name":"asEnumerable","parameterTypes":["java.lang.Object[]"] }, {"name":"emptyEnumerable","parameterTypes":[] }, {"name":"singletonEnumerable","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.Lookup"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.MemoryFactory$Memory",
+  "methods":[{"name":"get","parameterTypes":[] }, {"name":"get","parameterTypes":["int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.OrderedEnumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.OrderedQueryable"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.Queryable"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.Queryable"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.RawEnumerable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.RawEnumerable",
+  "methods":[{"name":"enumerator","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.BigDecimalFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.DoubleFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.EqualityComparer"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.FloatFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.Function0"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.function.Function0",
+  "methods":[{"name":"apply","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.Function1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.function.Function1",
+  "methods":[{"name":"apply","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.Function2"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.function.Functions",
+  "methods":[{"name":"all","parameterTypes":["java.util.List","org.apache.calcite.linq4j.function.Predicate1"] }, {"name":"arrayComparer","parameterTypes":[] }, {"name":"exists","parameterTypes":["java.util.List","org.apache.calcite.linq4j.function.Predicate1"] }, {"name":"identityComparer","parameterTypes":[] }, {"name":"identitySelector","parameterTypes":[] }, {"name":"nullsComparator","parameterTypes":["boolean","boolean"] }, {"name":"nullsComparator","parameterTypes":["boolean","bool [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.IntegerFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.LongFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.NullableBigDecimalFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.NullableDoubleFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.NullableFloatFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.NullableIntegerFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.NullableLongFunction1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.Predicate1"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.linq4j.function.Predicate2"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.linq4j.tree.Primitive",
+  "methods":[{"name":"asList","parameterTypes":["java.lang.Object"] }, {"name":"charToDecimalCast","parameterTypes":["java.lang.String","int","int"] }, {"name":"charToDecimalCast","parameterTypes":["java.lang.String","int","int","java.math.RoundingMode"] }, {"name":"decimalDecimalCast","parameterTypes":["java.math.BigDecimal","int","int"] }, {"name":"decimalDecimalCast","parameterTypes":["java.math.BigDecimal","int","int","java.math.RoundingMode"] }, {"name":"fpDecimalCast","parameterTyp [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.plan.RelOptNode"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.plan.RelOptNode"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.RelNode"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.rel.RelNode"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata",
+  "allDeclaredClasses":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$All"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates",
+  "methods":[{"name":"getAllPredicates","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$AllPredicates$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation",
+  "allDeclaredClasses":true,
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation",
+  "methods":[{"name":"collations","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Collation$Handler",
+  "queryAllDeclaredMethods":true,
+  "allDeclaredClasses":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin",
+  "methods":[{"name":"getColumnOrigins","parameterTypes":["int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnOrigin$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness",
+  "methods":[{"name":"areColumnsUnique","parameterTypes":["org.apache.calcite.util.ImmutableBitSet","boolean"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ColumnUniqueness$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost",
+  "methods":[{"name":"getCumulativeCost","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$CumulativeCost$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount",
+  "methods":[{"name":"getDistinctRowCount","parameterTypes":["org.apache.calcite.util.ImmutableBitSet","org.apache.calcite.rex.RexNode"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$DistinctRowCount$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution",
+  "methods":[{"name":"distribution","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Distribution$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility",
+  "methods":[{"name":"isVisibleInExplain","parameterTypes":["org.apache.calcite.sql.SqlExplainLevel"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExplainVisibility$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage",
+  "methods":[{"name":"getExpressionLineage","parameterTypes":["org.apache.calcite.rex.RexNode"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$ExpressionLineage$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost",
+  "methods":[{"name":"getLowerBoundCost","parameterTypes":["org.apache.calcite.plan.volcano.VolcanoPlanner"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$LowerBoundCost$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount",
+  "methods":[{"name":"getMaxRowCount","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MaxRowCount$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Measure",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Measure",
+  "methods":[{"name":"expand","parameterTypes":["int","org.apache.calcite.rel.metadata.BuiltInMetadata$Measure$Context"] }, {"name":"isMeasure","parameterTypes":["int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Measure"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Measure$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory",
+  "methods":[{"name":"cumulativeMemoryWithinPhase","parameterTypes":[] }, {"name":"cumulativeMemoryWithinPhaseSplit","parameterTypes":[] }, {"name":"memory","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Memory$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount",
+  "methods":[{"name":"getMinRowCount","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$MinRowCount$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes",
+  "methods":[{"name":"getNodeTypes","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NodeTypes$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost",
+  "methods":[{"name":"getNonCumulativeCost","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$NonCumulativeCost$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism",
+  "methods":[{"name":"isPhaseTransition","parameterTypes":[] }, {"name":"splitCount","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Parallelism$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows",
+  "methods":[{"name":"getPercentageOriginalRows","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PercentageOriginalRows$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize",
+  "methods":[{"name":"getPopulationSize","parameterTypes":["org.apache.calcite.util.ImmutableBitSet"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$PopulationSize$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates",
+  "methods":[{"name":"getPredicates","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Predicates$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount",
+  "methods":[{"name":"getRowCount","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$RowCount$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity",
+  "methods":[{"name":"getSelectivity","parameterTypes":["org.apache.calcite.rex.RexNode"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Selectivity$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size",
+  "methods":[{"name":"averageColumnSizes","parameterTypes":[] }, {"name":"averageRowSize","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$Size$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences",
+  "methods":[{"name":"getTableReferences","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$TableReferences$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys",
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys",
+  "methods":[{"name":"getUniqueKeys","parameterTypes":["boolean"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata$UniqueKeys$Handler",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.CyclicMetadataException"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.rel.metadata.CyclicMetadataException"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.DelegatingMetadataRel",
+  "allDeclaredMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.rel.metadata.DelegatingMetadataRel"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.Metadata",
+  "allDeclaredClasses":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.rel.metadata.Metadata",
+  "methods":[{"name":"rel","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.MetadataDef"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.MetadataHandler",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "allDeclaredMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.rel.metadata.MetadataHandler"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.NullSentinel",
+  "allDeclaredFields":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.rel.metadata.NullSentinel"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdAllPredicates"},
+  "name":"org.apache.calcite.rel.metadata.RelMdAllPredicates",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdCollation"},
+  "name":"org.apache.calcite.rel.metadata.RelMdCollation",
+  "queryAllPublicMethods":true,
+  "allDeclaredMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdColumnOrigins"},
+  "name":"org.apache.calcite.rel.metadata.RelMdColumnOrigins",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdColumnUniqueness"},
+  "name":"org.apache.calcite.rel.metadata.RelMdColumnUniqueness",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdDistinctRowCount"},
+  "name":"org.apache.calcite.rel.metadata.RelMdDistinctRowCount",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdDistribution"},
+  "name":"org.apache.calcite.rel.metadata.RelMdDistribution",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdExplainVisibility"},
+  "name":"org.apache.calcite.rel.metadata.RelMdExplainVisibility",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdExpressionLineage"},
+  "name":"org.apache.calcite.rel.metadata.RelMdExpressionLineage",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdLowerBoundCost"},
+  "name":"org.apache.calcite.rel.metadata.RelMdLowerBoundCost",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMaxRowCount"},
+  "name":"org.apache.calcite.rel.metadata.RelMdMaxRowCount",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMeasure"},
+  "name":"org.apache.calcite.rel.metadata.RelMdMeasure",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMemory"},
+  "name":"org.apache.calcite.rel.metadata.RelMdMemory",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdMinRowCount"},
+  "name":"org.apache.calcite.rel.metadata.RelMdMinRowCount",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdNodeTypes"},
+  "name":"org.apache.calcite.rel.metadata.RelMdNodeTypes",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdParallelism"},
+  "name":"org.apache.calcite.rel.metadata.RelMdParallelism",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows"},
+  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows$RelMdCumulativeCost",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows"},
+  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows$RelMdNonCumulativeCost",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows"},
+  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows$RelMdPercentageOriginalRowsHandler",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPopulationSize"},
+  "name":"org.apache.calcite.rel.metadata.RelMdPopulationSize",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdPredicates"},
+  "name":"org.apache.calcite.rel.metadata.RelMdPredicates",
+  "queryAllPublicMethods":true,
+  "allPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdRowCount"},
+  "name":"org.apache.calcite.rel.metadata.RelMdRowCount",
+  "queryAllPublicMethods":true,
+  "allPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdSelectivity"},
+  "name":"org.apache.calcite.rel.metadata.RelMdSelectivity",
+  "queryAllPublicMethods":true,
+  "allPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdSize"},
+  "name":"org.apache.calcite.rel.metadata.RelMdSize",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdTableReferences"},
+  "name":"org.apache.calcite.rel.metadata.RelMdTableReferences",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.RelMdUniqueKeys"},
+  "name":"org.apache.calcite.rel.metadata.RelMdUniqueKeys",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.RelMetadataQuery",
+  "allDeclaredFields":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.RelMetadataQueryBase",
+  "allDeclaredFields":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.janino.DescriptiveCacheKey"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider$$Lambda/0x00007fcecc36c500"},
+  "name":"org.apache.calcite.rel.metadata.janino.DescriptiveCacheKey"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.janino.Object"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.JaninoRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.janino.org"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.ReflectUtil"},
+  "name":"org.apache.calcite.rel.rel2sql.RelToSqlConverter",
+  "methods":[{"name":"visit","parameterTypes":["org.apache.calcite.rel.logical.LogicalTableScan"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.ReflectUtil$2"},
+  "name":"org.apache.calcite.rel.rel2sql.RelToSqlConverter",
+  "methods":[{"name":"visit","parameterTypes":["org.apache.calcite.rel.core.TableScan"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.runtime"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.ArrayBindable",
+  "methods":[{"name":"getElementType","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.BinarySearch",
+  "methods":[{"name":"lowerBound","parameterTypes":["java.lang.Object[]","java.lang.Object","int","int","java.util.Comparator"] }, {"name":"lowerBound","parameterTypes":["java.lang.Object[]","java.lang.Object","int","int","org.apache.calcite.linq4j.function.Function1","java.util.Comparator"] }, {"name":"upperBound","parameterTypes":["java.lang.Object[]","java.lang.Object","int","int","java.util.Comparator"] }, {"name":"upperBound","parameterTypes":["java.lang.Object[]","java.lang.Object" [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.runtime.Bindable",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Bindable",
+  "methods":[{"name":"bind","parameterTypes":["org.apache.calcite.DataContext"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.CompressionFunctions",
+  "methods":[{"name":"compress","parameterTypes":["java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Enumerables",
+  "methods":[{"name":"match","parameterTypes":["org.apache.calcite.linq4j.Enumerable","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.runtime.Matcher","org.apache.calcite.runtime.Enumerables$Emitter","int","int"] }, {"name":"slice0","parameterTypes":["org.apache.calcite.linq4j.Enumerable"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Enumerables$Emitter",
+  "methods":[{"name":"emit","parameterTypes":["java.util.List","java.util.List","java.util.List","int","java.util.function.Consumer"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.linq4j.tree.Types"},
+  "name":"org.apache.calcite.runtime.FlatLists",
+  "fields":[{"name":"COMPARABLE_EMPTY_LIST"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.FlatLists",
+  "methods":[{"name":"copyOf","parameterTypes":["java.lang.Comparable[]"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object","java.lang.Object"] }, {"name":"of","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object","java.lang.Object","java.lang.Object"] }, {"name":" [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.FunctionContexts",
+  "methods":[{"name":"of","parameterTypes":["org.apache.calcite.DataContext","java.lang.Object[]"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.JsonFunctions",
+  "queryAllPublicMethods":true,
+  "methods":[{"name":"dejsonize","parameterTypes":["java.lang.String"] }, {"name":"isJsonArray","parameterTypes":["java.lang.String"] }, {"name":"isJsonObject","parameterTypes":["java.lang.String"] }, {"name":"isJsonScalar","parameterTypes":["java.lang.String"] }, {"name":"isJsonValue","parameterTypes":["java.lang.String"] }, {"name":"jsonApiCommonSyntax","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"jsonArray","parameterTypes":["org.apache.calcite.sql.SqlJsonConst [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.JsonFunctions$StatefulFunction",
+  "methods":[{"name":"jsonApiCommonSyntaxWithCache","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"jsonExists","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"jsonExists","parameterTypes":["java.lang.String","java.lang.String","org.apache.calcite.sql.SqlJsonExistsErrorBehavior"] }, {"name":"jsonQuery","parameterTypes":["java.lang.String","java.lang.String","org.apache.calcite.sql.SqlJsonQueryWrapperBehavior","org.apache.calcite.sql.SqlJsonQueryE [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Matcher",
+  "methods":[{"name":"builder","parameterTypes":["org.apache.calcite.runtime.Automaton"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Matcher$Builder",
+  "methods":[{"name":"add","parameterTypes":["java.lang.String","java.util.function.Predicate"] }, {"name":"build","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.PairList$Helper",
+  "methods":[{"name":"copyOf","parameterTypes":["java.lang.Object","java.lang.Object","java.lang.Object[]"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Pattern$PatternBuilder",
+  "methods":[{"name":"automaton","parameterTypes":[] }, {"name":"build","parameterTypes":[] }, {"name":"seq","parameterTypes":[] }, {"name":"symbol","parameterTypes":["java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.RandomFunction",
+  "methods":[{"name":"rand","parameterTypes":[] }, {"name":"randInteger","parameterTypes":["int"] }, {"name":"randIntegerSeed","parameterTypes":["int","int"] }, {"name":"randSeed","parameterTypes":["int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.ResultSetEnumerable",
+  "methods":[{"name":"createEnricher","parameterTypes":["java.lang.Integer[]","org.apache.calcite.DataContext"] }, {"name":"of","parameterTypes":["javax.sql.DataSource","java.lang.String","org.apache.calcite.linq4j.function.Function1"] }, {"name":"of","parameterTypes":["javax.sql.DataSource","java.lang.String","org.apache.calcite.linq4j.function.Function1","org.apache.calcite.runtime.ResultSetEnumerable$PreparedStatementEnricher"] }, {"name":"setTimeout","parameterTypes":["org.apache.cal [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SortedMultiMap",
+  "methods":[{"name":"arrays","parameterTypes":["java.util.Comparator"] }, {"name":"putMulti","parameterTypes":["java.lang.Object","java.lang.Object"] }, {"name":"singletonArrayIterator","parameterTypes":["java.util.Comparator","java.util.List"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SpatialTypeFunctions",
+  "methods":[{"name":"ST_GeomFromEWKT","parameterTypes":["java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableCalc"},
+  "name":"org.apache.calcite.runtime.SqlFunctions",
+  "methods":[{"name":"toInt","parameterTypes":["java.lang.Object"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.runtime.SqlFunctions",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$BinaryImplementor"},
+  "name":"org.apache.calcite.runtime.SqlFunctions",
+  "queryAllPublicMethods":true,
+  "methods":[{"name":"eq","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.RexImpTable$NullAs"},
+  "name":"org.apache.calcite.runtime.SqlFunctions",
+  "queryAllPublicMethods":true,
+  "methods":[{"name":"toBoolean","parameterTypes":["java.lang.Boolean"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions",
+  "queryAllPublicMethods":true,
+  "methods":[{"name":"abs","parameterTypes":["long"] }, {"name":"acos","parameterTypes":["double"] }, {"name":"acosd","parameterTypes":["double"] }, {"name":"acosh","parameterTypes":["double"] }, {"name":"array","parameterTypes":["java.lang.Object[]"] }, {"name":"arrayAppend","parameterTypes":["java.util.List","java.lang.Object"] }, {"name":"arrayExcept","parameterTypes":["java.util.List","java.util.List"] }, {"name":"arrayInsert","parameterTypes":["java.util.List","java.lang.Integer","j [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$DateFormatFunction",
+  "methods":[{"name":"formatDate","parameterTypes":["java.lang.String","int"] }, {"name":"formatTime","parameterTypes":["java.lang.String","int"] }, {"name":"formatTimestamp","parameterTypes":["java.lang.String","long"] }, {"name":"toChar","parameterTypes":["long","java.lang.String"] }, {"name":"toDate","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"toTimestamp","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$DateFormatFunctionPg",
+  "methods":[{"name":"toChar","parameterTypes":["long","java.lang.String"] }, {"name":"toDate","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"toTimestamp","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$DateParseFunction",
+  "methods":[{"name":"parseDate","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"parseDatetime","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"parseTime","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"parseTimestamp","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$LikeFunction",
+  "methods":[{"name":"ilike","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"ilike","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, {"name":"like","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"like","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$ParseUrlFunction",
+  "methods":[{"name":"parseUrl","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"parseUrl","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$PosixRegexFunction",
+  "methods":[{"name":"posixRegexInsensitive","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"posixRegexSensitive","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$RegexFunction",
+  "methods":[{"name":"regexpContains","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"regexpExtract","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"regexpExtract","parameterTypes":["java.lang.String","java.lang.String","int"] }, {"name":"regexpExtract","parameterTypes":["java.lang.String","java.lang.String","int","int"] }, {"name":"regexpExtractAll","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"regexpInstr","parameterTypes [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$SimilarEscapeFunction",
+  "methods":[{"name":"similar","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.SqlFunctions$SimilarFunction",
+  "methods":[{"name":"similar","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.runtime.Typed",
+  "allDeclaredFields":true,
+  "allDeclaredClasses":true,
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.UrlFunctions",
+  "methods":[{"name":"urlDecode","parameterTypes":["java.lang.String"] }, {"name":"urlEncode","parameterTypes":["java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.Utilities",
+  "methods":[{"name":"compare","parameterTypes":["java.lang.Comparable","java.lang.Comparable"] }, {"name":"compare","parameterTypes":["java.lang.Comparable","java.lang.Comparable","java.util.Comparator"] }, {"name":"compareNullsFirst","parameterTypes":["java.lang.Comparable","java.lang.Comparable"] }, {"name":"compareNullsFirst","parameterTypes":["java.lang.Comparable","java.lang.Comparable","java.util.Comparator"] }, {"name":"compareNullsLast","parameterTypes":["java.lang.Comparable"," [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.runtime.XmlFunctions",
+  "methods":[{"name":"existsNode","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, {"name":"extractValue","parameterTypes":["java.lang.String","java.lang.String"] }, {"name":"extractXml","parameterTypes":["java.lang.String","java.lang.String","java.lang.String"] }, {"name":"xmlTransform","parameterTypes":["java.lang.String","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.ModifiableTable",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.schema.ModifiableTable",
+  "methods":[{"name":"getModifiableCollection","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.QueryableTable",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.schema.QueryableTable",
+  "methods":[{"name":"asQueryable","parameterTypes":["org.apache.calcite.linq4j.QueryProvider","org.apache.calcite.schema.SchemaPlus","java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.schema.ScannableTable",
+  "methods":[{"name":"scan","parameterTypes":["org.apache.calcite.DataContext"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.Schema",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.schema.Schema",
+  "methods":[{"name":"getSubSchema","parameterTypes":["java.lang.String"] }, {"name":"getTable","parameterTypes":["java.lang.String"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.SchemaPlus",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.schema.SchemaPlus",
+  "methods":[{"name":"add","parameterTypes":["java.lang.String","org.apache.calcite.schema.Table"] }, {"name":"removeTable","parameterTypes":["java.lang.String"] }, {"name":"unwrap","parameterTypes":["java.lang.Class"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.schema.Schemas",
+  "methods":[{"name":"enumerable","parameterTypes":["org.apache.calcite.schema.FilterableTable","org.apache.calcite.DataContext"] }, {"name":"enumerable","parameterTypes":["org.apache.calcite.schema.ProjectableFilterableTable","org.apache.calcite.DataContext"] }, {"name":"enumerable","parameterTypes":["org.apache.calcite.schema.ScannableTable","org.apache.calcite.DataContext"] }, {"name":"queryable","parameterTypes":["org.apache.calcite.DataContext","org.apache.calcite.schema.SchemaPlus" [...]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.Table",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.TranslatableTable",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.Wrapper",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.adapter.enumerable.EnumerableInterpretable"},
+  "name":"org.apache.calcite.schema.impl.AbstractTable",
+  "queryAllDeclaredMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.sql.fun.SqlLibraryOperatorTableFactory"},
+  "name":"org.apache.calcite.sql.fun.SqlLibraryOperators",
+  "allPublicFields":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.sql.fun.SqlStdOperatorTable"},
+  "name":"org.apache.calcite.sql.fun.SqlStdOperatorTable",
+  "allPublicFields":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.sql.pretty.SqlPrettyWriter$Bean"},
+  "name":"org.apache.calcite.sql.pretty.SqlPrettyWriter",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.sql2rel.ReflectiveConvertletTable"},
+  "name":"org.apache.calcite.sql2rel.StandardConvertletTable",
+  "queryAllPublicMethods":true,
+  "methods":[{"name":"convertCall","parameterTypes":["org.apache.calcite.sql2rel.SqlRexContext","org.apache.calcite.sql.SqlCall"] }, {"name":"convertFunction","parameterTypes":["org.apache.calcite.sql2rel.SqlRexContext","org.apache.calcite.sql.SqlFunction","org.apache.calcite.sql.SqlCall"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.util.BuiltInMethod"},
+  "name":"org.apache.calcite.util.ImmutableIntList",
+  "methods":[{"name":"copyOf","parameterTypes":["int[]"] }, {"name":"identity","parameterTypes":["int"] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata.Collation.Handler"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.BuiltInMetadata"},
+  "name":"org.apache.calcite.rel.metadata.BuiltInMetadata.Collation"
+},
+{
+  "condition":{"typeReachable":"org.apache.calcite.rel.metadata.ReflectiveRelMetadataProvider"},
+  "name":"org.apache.calcite.rel.metadata.RelMdPercentageOriginalRows",
+  "allPublicMethods":true
+}
+]
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/resource-config.json
new file mode 100644
index 00000000000..06aefabf5ba
--- /dev/null
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.calcite/calcite-core/1.38.0/resource-config.json
@@ -0,0 +1,11 @@
+{
+  "resources":{
+  "includes":[{
+    "condition":{"typeReachable":"org.apache.calcite.avatica.DriverVersion"},
+    "pattern":"\\Qorg-apache-calcite-jdbc.properties\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.calcite.config.CalciteSystemProperty"},
+    "pattern":"\\Qsaffron.properties\\E"
+  }]},
+  "bundles":[]
+}
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
index 2920c4f5163..8a2b659fc73 100644
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.hadoop/hadoop-common/3.3.6/reflect-config.json
@@ -4,5 +4,9 @@
   "name":"org.apache.hadoop.security.UserGroupInformation$UgiMetrics",
   "allDeclaredFields": true,
   "allDeclaredMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.hadoop.security.UserGroupInformation"},
+  "name":"com.sun.security.auth.NTUserPrincipal"
 }
 ]
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/jni-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/jni-config.json
index 63cbcf4e54a..32960f8ced3 100644
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/jni-config.json
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/jni-config.json
@@ -1,43 +1,2 @@
 [
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.io.FileDescriptor",
-  "fields":[{"name":"fd"}]
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.io.IOException"
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.lang.OutOfMemoryError"
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.lang.RuntimeException"
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.net.InetSocketAddress",
-  "methods":[{"name":"<init>","parameterTypes":["java.lang.String","int"] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.net.PortUnreachableException"
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.nio.Buffer",
-  "fields":[{"name":"limit"}, {"name":"position"}],
-  "methods":[{"name":"limit","parameterTypes":[] }, {"name":"position","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.nio.DirectByteBuffer"
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.nio.channels.ClosedChannelException",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-}
 ]
\ No newline at end of file
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/proxy-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/proxy-config.json
index 7f051621520..bb197e12d24 100644
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/proxy-config.json
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/proxy-config.json
@@ -11,6 +11,10 @@
     "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
     "interfaces":["org.apache.hive.service.rpc.thrift.TCLIService$Iface"]
   },
+  {
+    "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
+    "interfaces":["org.apache.hive.service.rpc.thrift.TCLIService$Iface"]
+  },
   {
     "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
     "interfaces":["org.apache.seata.config.Configuration"]
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 f49373c6be8..63b74b00387 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
@@ -20,7 +20,11 @@
   "name":"[Lcom.github.dockerjava.api.model.VolumesFrom;"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x00007f74ffb9d648"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.connection.DriverDatabaseConnectionManager$$Lambda/0x0000027a3d907cd8"},
+  "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
 {
@@ -64,7 +68,7 @@
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilder"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabasesFactory"},
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
 {
@@ -75,6 +79,14 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.JDBCRepository"},
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"},
+  "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy"},
+  "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"},
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
@@ -88,19 +100,19 @@
   "name":"[Ljava.lang.String;"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
   "name":"[Ljava.sql.Statement;"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
   "name":"[Ljava.sql.Statement;"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilder"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeRegistry"},
   "name":"[Ljava.sql.Statement;"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"},
   "name":"[Ljava.sql.Statement;"
 },
 {
@@ -115,10 +127,6 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
   "name":"[Ljava.sql.Statement;"
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader"},
-  "name":"com.sun.security.auth.UnixPrincipal"
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   "name":"java.beans.PropertyVetoException"
@@ -166,10 +174,6 @@
   "name":"java.io.Flushable",
   "queryAllDeclaredMethods":true
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.io.IOException"
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.io.InputStream",
@@ -204,6 +208,11 @@
   "queryAllDeclaredMethods":true,
   "methods":[{"name":"close","parameterTypes":[] }, {"name":"read","parameterTypes":["java.nio.CharBuffer"] }]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
+  "name":"java.io.Serializable",
+  "queryAllDeclaredMethods":true
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.io.Serializable",
@@ -335,7 +344,7 @@
   "allDeclaredFields":true
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"java.lang.Object",
   "allDeclaredFields":true
 },
@@ -345,17 +354,17 @@
   "allDeclaredFields":true
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade"},
   "name":"java.lang.Object",
   "allDeclaredFields":true
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService"},
   "name":"java.lang.Object",
   "allDeclaredFields":true
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
   "name":"java.lang.Object",
   "allDeclaredFields":true
 },
@@ -382,10 +391,6 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   "name":"java.lang.ObjectCustomizer"
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.lang.OutOfMemoryError"
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.lang.Process",
@@ -396,10 +401,6 @@
   "name":"java.lang.Readable",
   "queryAllDeclaredMethods":true
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.lang.RuntimeException"
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
   "name":"java.lang.SecurityManager",
@@ -487,14 +488,6 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.math.BigInteger"
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.net.InetSocketAddress"
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.net.PortUnreachableException"
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.net.ServerSocket"
@@ -511,11 +504,6 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.net.URL"
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-  "name":"java.net.UnixDomainSocketAddress",
-  "methods":[{"name":"of","parameterTypes":["java.lang.String"] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
   "name":"java.nio.Bits",
@@ -538,11 +526,12 @@
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.nio.channels.ClosedChannelException"
+  "name":"java.nio.channels.FileChannel"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-  "name":"java.nio.channels.FileChannel"
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.ShardingSphereProxy"},
+  "name":"java.nio.channels.spi.SelectorProvider",
+  "methods":[{"name":"openServerSocketChannel","parameterTypes":["java.net.ProtocolFamily"] }]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
@@ -928,6 +917,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.rule.builder.database.DatabaseRulesBuilder"},
   "name":"org.apache.shardingsphere.broadcast.rule.builder.BroadcastRuleBuilder"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
+  "name":"org.apache.shardingsphere.broadcast.rule.changed.BroadcastRuleChangedProcessor"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
   "name":"org.apache.shardingsphere.broadcast.rule.changed.BroadcastTableChangedProcessor"
@@ -974,6 +967,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxySQLComQueryParser"},
   "name":"org.apache.shardingsphere.data.pipeline.cdc.distsql.parser.facade.CDCDistSQLParserFacade"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListenerFactory"},
+  "name":"org.apache.shardingsphere.data.pipeline.core.listener.PipelineContextManagerLifecycleListener"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
   "name":"org.apache.shardingsphere.data.pipeline.distsql.handler.cdc.update.DropStreamingExecutor"
@@ -1088,19 +1085,19 @@
   "methods":[{"name":"<init>","parameterTypes":["org.antlr.v4.runtime.TokenStream"] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
   "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.DatabaseTypeEngine"},
   "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.builder.GenericSchemaBuilder"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeRegistry"},
   "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"},
   "name":"org.apache.shardingsphere.driver.ShardingSphereDriver"
 },
 {
@@ -1154,11 +1151,6 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
   "name":"org.apache.shardingsphere.encrypt.checker.config.EncryptRuleConfigurationChecker"
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.encrypt.checker.sql.EncryptSupportedSQLCheckersBuilder",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"},
   "name":"org.apache.shardingsphere.encrypt.checker.sql.EncryptSupportedSQLCheckersBuilder",
@@ -1346,6 +1338,7 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration",
   "allDeclaredFields":true,
+  "queryAllPublicMethods":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"setProps","parameterTypes":["java.util.Properties"] }, {"name":"setType","parameterTypes":["java.lang.String"] }]
 },
 {
@@ -1354,6 +1347,14 @@
   "allDeclaredFields":true,
   "methods":[{"name":"getProps","parameterTypes":[] }, {"name":"getType","parameterTypes":[] }]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
+  "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfigurationBeanInfo"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
+  "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfigurationCustomizer"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.encrypt.algorithm.standard.AESEncryptAlgorithm"},
   "name":"org.apache.shardingsphere.infra.algorithm.cryptographic.aes.AESCryptographicAlgorithm",
@@ -1441,6 +1442,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
   "name":"org.apache.shardingsphere.infra.database.firebird.type.FirebirdDatabaseType"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
+  "name":"org.apache.shardingsphere.infra.database.h2.checker.H2DatabasePrivilegeChecker"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader"},
   "name":"org.apache.shardingsphere.infra.database.h2.metadata.data.loader.H2MetaDataLoader"
@@ -1473,6 +1478,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
   "name":"org.apache.shardingsphere.infra.database.mariadb.type.MariaDBDatabaseType"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
+  "name":"org.apache.shardingsphere.infra.database.mysql.checker.MySQLDatabasePrivilegeChecker"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
   "name":"org.apache.shardingsphere.infra.database.mysql.keygen.MySQLGeneratedKeyColumnProvider"
@@ -1493,6 +1502,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
   "name":"org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
+  "name":"org.apache.shardingsphere.infra.database.opengauss.checker.OpenGaussDatabasePrivilegeChecker"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader"},
   "name":"org.apache.shardingsphere.infra.database.opengauss.metadata.data.loader.OpenGaussMetaDataLoader"
@@ -1525,6 +1538,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.type.DatabaseTypeFactory"},
   "name":"org.apache.shardingsphere.infra.database.p6spy.type.P6spyMySQLDatabaseType"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
+  "name":"org.apache.shardingsphere.infra.database.postgresql.checker.PostgreSQLDatabasePrivilegeChecker"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.core.metadata.data.loader.MetaDataLoader"},
   "name":"org.apache.shardingsphere.infra.database.postgresql.metadata.data.loader.PostgreSQLMetaDataLoader"
@@ -1629,23 +1646,23 @@
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ComputeNodeOnlineHandler"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.type.ComputeNodeOnlineHandler"},
   "name":"org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeData",
   "allDeclaredFields":true,
   "queryAllPublicMethods":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"getAttribute","parameterTypes":[] }, {"name":"getDatabaseName","parameterTypes":[] }, {"name":"getVersion","parameterTypes":[] }, {"name":"setAttribute","parameterTypes":["java.lang.String"] }, {"name":"setDatabaseName","parameterTypes":["java.lang.String"] }, {"name":"setVersion","parameterTypes":["java.lang.String"] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeDataBeanInfo"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.infra.instance.yaml.YamlComputeNodeDataCustomizer"
 },
 {
@@ -1685,18 +1702,13 @@
   "name":"org.apache.shardingsphere.infra.util.eventbus.EventSubscriber",
   "queryAllDeclaredMethods":true
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.infra.util.yaml.YamlConfiguration",
-  "queryAllPublicMethods":true
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   "name":"org.apache.shardingsphere.infra.util.yaml.YamlConfiguration",
   "queryAllPublicMethods":true
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.infra.util.yaml.YamlConfiguration",
   "queryAllPublicMethods":true
 },
@@ -1754,10 +1766,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
   "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlRowStatistics",
   "allDeclaredFields":true,
-  "methods":[{"name":"getRows","parameterTypes":[] }, {"name":"getUniqueKey","parameterTypes":[] }]
+  "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"getRows","parameterTypes":[] }, {"name":"getUniqueKey","parameterTypes":[] }, {"name":"setRows","parameterTypes":["java.util.List"] }, {"name":"setUniqueKey","parameterTypes":["java.lang.String"] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService$$Lambda/0x00007f74ffa45720"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService$$Lambda/0x0000027a3d994f40"},
   "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlRowStatistics"
 },
 {
@@ -1794,11 +1806,6 @@
   "allDeclaredFields":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"setName","parameterTypes":["java.lang.String"] }, {"name":"setUnique","parameterTypes":["boolean"] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
-  "queryAllPublicMethods":true
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabasesFactory"},
   "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
@@ -1810,6 +1817,15 @@
   "allDeclaredFields":true,
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"setColumns","parameterTypes":["java.util.Map"] }, {"name":"setIndexes","parameterTypes":["java.util.Map"] }, {"name":"setName","parameterTypes":["java.lang.String"] }]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterMetaDataManagerPersistService"},
+  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"},
+  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService"},
   "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
@@ -1817,12 +1833,22 @@
   "methods":[{"name":"<init>","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.apa [...]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableBeanInfo"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.table.CreateTablePushDownMetaDataRefresher"},
+  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTableCustomizer"
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"},
+  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
+  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
+  "queryAllPublicMethods":true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.Portal"},
+  "name":"org.apache.shardingsphere.infra.yaml.schema.pojo.YamlShardingSphereTable",
+  "queryAllPublicMethods":true
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
@@ -2068,31 +2094,31 @@
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ComputeNodeLabelChangedHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.type.ComputeNodeLabelChangedHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ComputeNodeOnlineHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.type.ComputeNodeOnlineHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ComputeNodeStateChangedHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.type.ComputeNodeStateChangedHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ComputeNodeWorkerIdChangedHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.type.ComputeNodeWorkerIdChangedHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.KillProcessHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.process.KillProcessHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.QualifiedDataSourceChangedHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.process.ShowProcessListHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ShowProcessListHandler"
+  "name":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.storage.QualifiedDataSourceChangedHandler"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
@@ -2125,151 +2151,251 @@
   "name":"org.apache.shardingsphere.mode.manager.standalone.yaml.StandaloneYamlPersistRepositoryConfigurationSwapper"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.index.AlterIndexPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.index.AlterIndexPushDownMetaDataRefresher"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.index.CreateIndexPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.index.CreateIndexPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.index.DropIndexPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.index.DropIndexPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.schema.AlterSchemaPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.schema.AlterSchemaPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.schema.CreateSchemaPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.schema.CreateSchemaPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.schema.DropSchemaPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.schema.DropSchemaPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.table.AlterTablePushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.table.AlterTablePushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.table.CreateTablePushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.table.CreateTablePushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.table.DropTablePushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.table.DropTablePushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.table.RenameTablePushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.table.RenameTablePushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.view.AlterViewPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.view.AlterViewPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.view.CreateViewPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.view.CreateViewPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+  "name":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.type.view.DropViewPushDownMetaDataRefresher"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-  "name":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.type.view.DropViewPushDownMetaDataRefresher"
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.TableChangedHandler"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedNodePathBuilder"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleItemManager"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.config.database.DataSourceUnitPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.config.database.DatabaseRulePersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.DatabaseMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.SchemaMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.ViewMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.DatabaseMetaDataNodePath",
+  "fields":[{"name":"databaseName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.datasource.StorageNodeNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"storageNodeName"}]
+  "fields":[{"name":"database"}, {"name":"storageNodeName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.datasource.StorageUnitNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"storageUnitName"}]
+  "fields":[{"name":"database"}, {"name":"storageUnitName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.config.database.DataSourceUnitPersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.datasource.StorageUnitNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"storageUnitName"}]
+  "fields":[{"name":"database"}, {"name":"storageUnitName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
+  "fields":[{"name":"database"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
+  "fields":[{"name":"database"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.changed.RuleItemChangedNodePathBuilder"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
+  "fields":[{"name":"database"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.manager.rule.DatabaseRuleItemManager"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
+  "fields":[{"name":"database"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.config.database.DatabaseRulePersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.rule.DatabaseRuleNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
+  "fields":[{"name":"database"}, {"name":"databaseRuleItem"}, {"name":"ruleType"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.TableChangedHandler"},
-  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"tableName"}]
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.SchemaMetaDataNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
-  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}]
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.SchemaMetaDataNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.SchemaMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.SchemaMetaDataNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.SchemaMetaDataNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.ViewMetaDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.SchemaMetaDataNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.database.metadata.TableChangedHandler"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"tableName"}]
+  "fields":[{"name":"schema"}, {"name":"tableName"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.DatabaseMetaDataPersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}]
+  "fields":[{"name":"schema"}, {"name":"tableName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.SchemaMetaDataPersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"tableName"}]
+  "fields":[{"name":"schema"}, {"name":"tableName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableMetaDataPersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.TableMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"tableName"}]
+  "fields":[{"name":"schema"}, {"name":"tableName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.type.DatabaseMetaDataChangedListener"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.ViewMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"viewName"}]
+  "fields":[{"name":"schema"}, {"name":"viewName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.ViewMetaDataPersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.metadata.schema.ViewMetaDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"viewName"}]
+  "fields":[{"name":"schema"}, {"name":"viewName"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDataNodePath",
+  "fields":[{"name":"table"}, {"name":"uniqueKey"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDatabaseNodePath",
   "fields":[{"name":"databaseName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
-  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"tableName"}, {"name":"uniqueKey"}]
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDatabaseNodePath",
+  "fields":[{"name":"databaseName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.statistics.StatisticsPersistService"},
-  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDataNodePath",
-  "fields":[{"name":"databaseName"}, {"name":"schemaName"}, {"name":"tableName"}]
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsDatabaseNodePath",
+  "fields":[{"name":"databaseName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsSchemaNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.statistics.StatisticsPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsSchemaNodePath",
+  "fields":[{"name":"database"}, {"name":"schemaName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.metadata.service.TableRowDataPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsTableNodePath",
+  "fields":[{"name":"schema"}, {"name":"tableName"}]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.statistics.StatisticsPersistService"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.database.statistics.StatisticsTableNodePath",
+  "fields":[{"name":"schema"}, {"name":"tableName"}]
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
@@ -2287,7 +2413,7 @@
   "fields":[{"name":"instanceId"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.global.node.compute.label.LabelNodePath",
   "fields":[{"name":"instanceId"}]
 },
@@ -2302,7 +2428,7 @@
   "fields":[{"name":"instanceProcess"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.ComputeNodeOnlineHandler"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.node.compute.type.ComputeNodeOnlineHandler"},
   "name":"org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath",
   "fields":[{"name":"instanceId"}, {"name":"instanceType"}]
 },
@@ -2312,7 +2438,7 @@
   "fields":[{"name":"instanceType"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.OnlineNodePath",
   "fields":[{"name":"instanceId"}, {"name":"instanceType"}]
 },
@@ -2322,7 +2448,7 @@
   "fields":[{"name":"instanceId"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.global.node.compute.status.StatusNodePath",
   "fields":[{"name":"instanceId"}]
 },
@@ -2332,7 +2458,7 @@
   "fields":[{"name":"instanceId"}]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.node.ComputeNodePersistService"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.persist.service.ClusterComputeNodePersistService"},
   "name":"org.apache.shardingsphere.mode.node.path.type.global.node.compute.workerid.ComputeNodeWorkerIDNodePath",
   "fields":[{"name":"instanceId"}]
 },
@@ -2356,6 +2482,11 @@
   "name":"org.apache.shardingsphere.mode.node.path.type.global.state.DatabaseListenerCoordinatorNodePath",
   "fields":[{"name":"databaseName"}]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.lock.global.GlobalLockDefinition"},
+  "name":"org.apache.shardingsphere.mode.node.path.type.lock.GlobalLockNodePath",
+  "fields":[{"name":"name"}]
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
   "name":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository",
@@ -2499,43 +2630,43 @@
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.ImportDatabaseConfigurationExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.computenode.SetComputeNodeStateExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.ImportMetaDataExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.imports.ImportDatabaseConfigurationExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.LabelComputeNodeExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.imports.ImportMetaDataExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.LockClusterExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.label.LabelComputeNodeExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.RefreshDatabaseMetaDataExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.label.UnlabelComputeNodeExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.RefreshTableMetaDataExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.lock.LockClusterExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.SetComputeNodeStateExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.lock.UnlockClusterExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.SetDistVariableExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.refresh.RefreshDatabaseMetaDataExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.UnlabelComputeNodeExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.refresh.RefreshTableMetaDataExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
-  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.UnlockClusterExecutor"
+  "name":"org.apache.shardingsphere.proxy.backend.handler.distsql.ral.updatable.variable.SetDistVariableExecutor"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.jdbc.statement.JDBCBackendStatement"},
@@ -2661,6 +2792,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxySQLComQueryParser"},
   "name":"org.apache.shardingsphere.readwritesplitting.distsql.parser.facade.ReadwriteSplittingDistSQLParserFacade"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListenerFactory"},
+  "name":"org.apache.shardingsphere.readwritesplitting.listener.ReadwriteSplittingContextManagerLifecycleListener"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.route.engine.SQLRouteEngine"},
   "name":"org.apache.shardingsphere.readwritesplitting.route.ReadwriteSplittingSQLRouter"
@@ -2726,6 +2861,10 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   "name":"org.apache.shardingsphere.readwritesplitting.yaml.config.rule.YamlReadwriteSplittingDataSourceGroupRuleConfigurationCustomizer"
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListenerFactory"},
+  "name":"org.apache.shardingsphere.schedule.core.job.statistics.collect.StatisticsCollectContextManagerLifecycleListener"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.shadow.checker.ShadowRuleConfigurationChecker"},
   "name":"org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnRegexMatchedShadowAlgorithm",
@@ -2988,13 +3127,12 @@
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
-  "name":"org.apache.shardingsphere.sharding.checker.config.ShardingRuleConfigurationChecker"
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine"},
+  "name":"org.apache.shardingsphere.sharding.auditor.ShardingSQLAuditor"
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.sharding.checker.sql.ShardingSupportedSQLCheckersBuilder",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
+  "name":"org.apache.shardingsphere.sharding.checker.config.ShardingRuleConfigurationChecker"
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"},
@@ -3235,13 +3373,13 @@
   "methods":[{"name":"<init>","parameterTypes":[] }, {"name":"setStandard","parameterTypes":["org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfiguration"] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
+  "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.MetaDataPersistFacade"},
   "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":[] }]
@@ -3281,11 +3419,6 @@
   "condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   "name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlStandardShardingStrategyConfigurationCustomizer"
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.single.checker.sql.SingleSupportedSQLCheckersBuilder",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"},
   "name":"org.apache.shardingsphere.single.checker.sql.SingleSupportedSQLCheckersBuilder",
@@ -3543,14 +3676,9 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdCreateTableStatement",
+  "name":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdDropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -3558,11 +3686,6 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
   "name":"org.apache.shardingsphere.sql.parser.statement.firebird.dml.FirebirdSelectStatement",
@@ -3574,18 +3697,13 @@
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.hive.dml.HiveSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
   "name":"org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLCreateTableStatement",
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.mysql.ddl.MySQLDropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -3613,11 +3731,6 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
   "name":"org.apache.shardingsphere.sql.parser.statement.mysql.dml.MySQLSelectStatement",
@@ -3630,7 +3743,7 @@
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCreateTableStatement",
+  "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussDropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -3638,24 +3751,19 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.dml.OpenGaussInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.dml.OpenGaussSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
   "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.dml.OpenGaussSelectStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"},
   "name":"org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  "condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.postgresql.command.query.extended.parse.PostgreSQLComParseExecutor"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLCreateTableStatement",
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.postgresql.ddl.PostgreSQLDropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -3683,11 +3791,6 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
   "name":"org.apache.shardingsphere.sql.parser.statement.postgresql.dml.PostgreSQLSelectStatement",
@@ -3700,7 +3803,7 @@
 },
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerCreateTableStatement",
+  "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerDropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
@@ -3708,11 +3811,6 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerInsertStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
-  "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement",
-  "methods":[{"name":"<init>","parameterTypes":[] }]
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
   "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.dml.SQLServerSelectStatement",
@@ -3893,6 +3991,66 @@
   "name":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.FirebirdXAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.H2XAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.MariaDBXAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.MySQLXAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.OpenGaussXAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.OracleXAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.connection.dialect.PostgreSQLXAConnectionWrapper"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.FirebirdXADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.H2XADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.MariaDBXADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.MySQLXADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.OpenGaussXADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.OracleXADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.PostgreSQLXADataSourceDefinition"
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+  "name":"org.apache.shardingsphere.transaction.xa.jta.datasource.properties.dialect.SQLServerXADataSourceDefinition"
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
   "name":"org.apache.shardingsphere.transaction.xa.narayana.manager.NarayanaXATransactionManagerProvider",
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 d9cda211141..4fadb4efcfb 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
@@ -9,9 +9,6 @@
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
     "pattern":"\\QMETA-INF/maven/com.atomikos/atomikos-util/pom.properties\\E"
-  }, {
-    "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
-    "pattern":"\\QMETA-INF/native/libnetty_transport_native_epoll_x86_64.so\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataTransactionalSQLExecutionHook"},
     "pattern":"\\QMETA-INF/seata/io.seata.core.context.ContextCore\\E"
@@ -36,6 +33,9 @@
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
     "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
+    "pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseClient\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
     "pattern":"\\QMETA-INF/services/io.grpc.LoadBalancerProvider\\E"
@@ -52,7 +52,7 @@
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
     "pattern":"\\QMETA-INF/services/io.vertx.core.spi.VertxServiceProvider\\E"
   }, {
-    "condition":{"typeReachable":"org.apache.shardingsphere.infra.algorithm.cryptographic.aes.AESCryptographicAlgorithm"},
+    "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.config.ProxyConfigurationLoader"},
     "pattern":"\\QMETA-INF/services/java.net.spi.URLStreamHandlerProvider\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.db.protocol.mysql.constant.MySQLCharacterSet"},
@@ -63,9 +63,6 @@
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.postgresql.handler.admin.executor.variable.charset.PostgreSQLCharacterSets"},
     "pattern":"\\QMETA-INF/services/java.nio.charset.spi.CharsetProvider\\E"
-  }, {
-    "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-    "pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
     "pattern":"\\QMETA-INF/services/javax.xml.datatype.DatatypeFactory\\E"
@@ -113,10 +110,13 @@
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.binder.context.segment.select.projection.extractor.DialectProjectionIdentifierExtractor\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
-    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.config.rule.checker.RuleConfigurationChecker\\E"
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.config.rule.checker.DatabaseRuleConfigurationChecker\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistFacade"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.config.rule.decorator.RuleConfigurationDecorator\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.database.core.checker.DialectDatabasePrivilegeChecker\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.database.core.keygen.GeneratedKeyColumnProvider\\E"
@@ -141,6 +141,9 @@
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.infra.datasource.pool.props.validator.DataSourcePoolPropertiesValidator"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.datasource.pool.props.validator.DataSourcePoolPropertiesContentValidator\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.infra.executor.audit.SQLAuditEngine"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.executor.audit.SQLAuditor\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandlerFactory"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.executor.checker.SQLExecutionChecker\\E"
@@ -187,8 +190,11 @@
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.dispatch.listener.DataChangedEventListenerRegistry"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.manager.cluster.dispatch.handler.global.GlobalDataChangedEventHandler\\E"
   }, {
-    "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefreshEngine"},
-    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.metadata.refresher.metadata.pushdown.PushDownMetaDataRefresher\\E"
+    "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListenerFactory"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.manager.listener.ContextManagerLifecycleListener\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefreshEngine"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.metadata.refresher.pushdown.PushDownMetaDataRefresher\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.ClusterContextManagerBuilder"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepository\\E"
@@ -237,6 +243,15 @@
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager"},
     "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.transaction.spi.TransactionHook\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.transaction.xa.jta.connection.XAConnectionWrapper\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.jta.datasource.XATransactionDataSource"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.transaction.xa.jta.datasource.properties.XADataSourceDefinition\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.XAShardingSphereTransactionManager"},
+    "pattern":"\\QMETA-INF/services/org.apache.shardingsphere.transaction.xa.spi.XATransactionManagerProvider\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
     "pattern":"\\QMETA-INF/services/org.codehaus.groovy.runtime.ExtensionModule\\E"
@@ -282,6 +297,9 @@
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader"},
     "pattern":"\\Qhiveserver2-site.xml\\E"
+  }, {
+    "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
+    "pattern":"\\Qjndi.properties\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
     "pattern":"\\Qjta.properties\\E"
@@ -304,7 +322,7 @@
     "condition":{"typeReachable":"org.apache.shardingsphere.transaction.base.seata.at.SeataATShardingSphereTransactionManager"},
     "pattern":"\\Qregistry.conf\\E"
   }, {
-    "condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.impl.H2OptimizerBuilder"},
+    "condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLPropertiesBuilder"},
     "pattern":"\\Qsaffron.properties\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.infra.metadata.database.schema.manager.SystemSchemaManager"},
@@ -1838,16 +1856,13 @@
     "pattern":"\\Qseata.conf\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
-    "pattern":"\\Qsql/EmbeddedDerby.xml\\E"
-  }, {
-    "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
-    "pattern":"\\Qsql/H2.xml\\E"
+    "pattern":"\\Qsql/DerbyNetworkServer.xml\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
-    "pattern":"\\Qsql/HSQLDB.xml\\E"
+    "pattern":"\\Qsql/EmbeddedDerby.xml\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
-    "pattern":"\\Qsql/MySQL.xml\\E"
+    "pattern":"\\Qsql/H2.xml\\E"
   }, {
     "condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.standalone.jdbc.sql.JDBCRepositorySQLLoader"},
     "pattern":"\\Qsql\\E"
@@ -1952,13 +1967,7 @@
     "pattern":"java.xml:\\Qcom/sun/org/apache/xml/internal/serializer/XMLEntities_zh_Hans_CN.properties\\E"
   }]},
   "bundles":[{
-    "name":"com.microsoft.sqlserver.jdbc.SQLServerResource",
-    "locales":["zh-CN"]
-  }, {
     "name":"com.sun.org.apache.xml.internal.serializer.XMLEntities",
     "locales":["zh-CN"]
-  }, {
-    "name":"sun.text.resources.cldr.FormatData",
-    "locales":["en"]
   }]
 }
\ No newline at end of file
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 cfcef31c6ef..23d508f0a84 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
@@ -84,6 +84,11 @@
   "name":"com.sun.management.UnixOperatingSystemMXBean",
   "allPublicMethods": true
 },
+{
+  "condition":{"typeReachable":"com.sun.management.OperatingSystemMXBean"},
+  "name":"com.sun.management.OperatingSystemMXBean",
+  "allPublicMethods": true
+},
 {
   "condition":{"typeReachable":"com.sun.management.internal.OperatingSystemImpl"},
   "name":"com.sun.management.internal.OperatingSystemImpl",
@@ -264,6 +269,44 @@
   "name":"org.apache.shardingsphere.authority.yaml.config.YamlUserConfiguration",
   "allPublicMethods":true
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlBaseShardingStrategyConfiguration"},
+  "name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlBaseShardingStrategyConfiguration",
+  "allPublicMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.logging.yaml.config.YamlLoggerConfiguration"},
+  "name":"org.apache.shardingsphere.logging.yaml.config.YamlLoggerConfiguration",
+  "allDeclaredFields": true,
+  "allPublicMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationExecutionPlanCacheRuleConfiguration"},
+  "name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationExecutionPlanCacheRuleConfiguration",
+  "allPublicMethods": true,
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.logging.yaml.config.YamlAppenderConfiguration"},
+  "name":"org.apache.shardingsphere.logging.yaml.config.YamlAppenderConfiguration",
+  "allPublicMethods": true,
+  "allDeclaredFields": true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData"},
+  "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData",
+  "allPublicMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlRowStatistics"},
+  "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlRowStatistics",
+  "allPublicMethods": true
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration"},
+  "name":"org.apache.shardingsphere.infra.algorithm.core.yaml.YamlAlgorithmConfiguration",
+  "allPublicMethods": true
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.hive.parser.HiveLexer"},
   "name":"org.apache.shardingsphere.sql.parser.hive.parser.HiveLexer",
@@ -309,39 +352,6 @@
   "name":"org.apache.shardingsphere.sql.parser.postgresql.visitor.statement.type.PostgreSQLTCLStatementVisitor",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlBaseShardingStrategyConfiguration"},
-  "name":"org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlBaseShardingStrategyConfiguration",
-  "allPublicMethods": true
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.logging.yaml.config.YamlLoggerConfiguration"},
-  "name":"org.apache.shardingsphere.logging.yaml.config.YamlLoggerConfiguration",
-  "allDeclaredFields": true,
-  "allPublicMethods": true
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationExecutionPlanCacheRuleConfiguration"},
-  "name":"org.apache.shardingsphere.sqlfederation.yaml.config.YamlSQLFederationExecutionPlanCacheRuleConfiguration",
-  "allPublicMethods": true,
-  "allDeclaredFields": true
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.logging.yaml.config.YamlAppenderConfiguration"},
-  "name":"org.apache.shardingsphere.logging.yaml.config.YamlAppenderConfiguration",
-  "allPublicMethods": true,
-  "allDeclaredFields": true
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData"},
-  "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlShardingSphereRowData",
-  "allPublicMethods": true
-},
-{
-  "condition":{"typeReachable":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlRowStatistics"},
-  "name":"org.apache.shardingsphere.infra.yaml.data.pojo.YamlRowStatistics",
-  "allPublicMethods": true
-},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.clickhouse.parser.ClickHouseLexer"},
   "name":"org.apache.shardingsphere.sql.parser.clickhouse.parser.ClickHouseLexer",
@@ -357,6 +367,11 @@
   "name":"org.apache.shardingsphere.sql.parser.clickhouse.visitor.statement.type.ClickHouseDMLStatementVisitor",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type.OpenGaussDALStatementVisitor"},
+  "name":"org.apache.shardingsphere.sql.parser.opengauss.visitor.statement.type.OpenGaussDALStatementVisitor",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
 {
   "condition":{"typeReachable":"org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussTruncateStatement"},
   "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussTruncateStatement",
@@ -387,6 +402,31 @@
   "name":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdDropTableStatement",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.sqlserver.ddl.SQLServerCreateTableStatement",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.firebird.ddl.FirebirdCreateTableStatement",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.clickhouse.dml.ClickHouseSelectStatement",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSphereStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.opengauss.ddl.OpenGaussCreateTableStatement",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+  "condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement"},
+  "name":"org.apache.shardingsphere.sql.parser.statement.hive.dml.HiveSelectStatement",
+  "methods":[{"name":"<init>","parameterTypes":[] }]
+},
 {
   "condition":{"typeReachable":"javax.security.auth.login.Configuration"},
   "name":"sun.security.provider.ConfigFile",
diff --git a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
index 936c53b8f1a..cd6173c23df 100644
--- a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
+++ b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/resource-config.json
@@ -18,7 +18,7 @@
     "locales":["en"]
   }, {
     "name":"com.microsoft.sqlserver.jdbc.SQLServerResource",
-    "locales":["en"]
+    "locales":["zh-CN", "en"]
   }, {
     "name":"org.postgresql.translation.messages",
     "locales":["en"]
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 3a7c6a2f73d..24131913f6a 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
@@ -136,7 +136,7 @@ class ClickHouseTest {
         try (
                 Connection connection = openConnection(databaseName);
                 Statement statement = connection.createStatement()) {
-            statement.executeUpdate("create table IF NOT EXISTS t_order\n"
+            statement.execute("create table IF NOT EXISTS t_order\n"
                     + "(\n"
                     + "    order_id   Int64 NOT NULL,\n"
                     + "    order_type Int32,\n"
@@ -146,7 +146,7 @@ class ClickHouseTest {
                     + ") engine = MergeTree\n"
                     + "      primary key (order_id)\n"
                     + "      order by (order_id)");
-            statement.executeUpdate("create table IF NOT EXISTS t_order_item\n"
+            statement.execute("create table IF NOT EXISTS t_order_item\n"
                     + "(\n"
                     + "    order_item_id Int64 NOT NULL,\n"
                     + "    order_id      Int64 NOT NULL,\n"
@@ -156,15 +156,15 @@ class ClickHouseTest {
                     + ") engine = MergeTree\n"
                     + "      primary key (order_item_id)\n"
                     + "      order by (order_item_id)");
-            statement.executeUpdate("CREATE TABLE IF NOT EXISTS t_address\n"
+            statement.execute("CREATE TABLE IF NOT EXISTS t_address\n"
                     + "(\n"
                     + "    address_id   BIGINT NOT NULL,\n"
                     + "    address_name VARCHAR(100) NOT NULL,\n"
                     + "    PRIMARY      KEY (address_id)\n"
                     + ")");
-            statement.executeUpdate("TRUNCATE TABLE t_order");
-            statement.executeUpdate("TRUNCATE TABLE t_order_item");
-            statement.executeUpdate("TRUNCATE TABLE t_address");
+            statement.execute("TRUNCATE TABLE t_order");
+            statement.execute("TRUNCATE TABLE t_order_item");
+            statement.execute("TRUNCATE TABLE t_address");
         } catch (final SQLException exception) {
             throw new RuntimeException(exception);
         }
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 a6dfd6419a6..2e64fec8ea4 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
@@ -34,13 +34,12 @@ import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
 import javax.sql.DataSource;
-import java.nio.file.Paths;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.time.Duration;
-import java.util.Properties;
+import java.util.stream.Stream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -55,13 +54,13 @@ class AcidTableTest {
     @Container
     private final GenericContainer<?> container = new GenericContainer<>("apache/hive:4.0.1")
             .withEnv("SERVICE_NAME", "hiveserver2")
+            .withEnv("SERVICE_OPTS", "-Dhive.support.concurrency=true" + " "
+                    + "-Dhive.exec.dynamic.partition.mode=nonstrict" + " "
+                    + "-Dhive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager")
             .withExposedPorts(10000);
     
     private final String systemPropKeyPrefix = "fixture.test-native.yaml.database.hive.acid.";
     
-    // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path.
-    private final String absolutePath = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-acid.sql").toAbsolutePath().toString();
-    
     private DataSource logicDataSource;
     
     private String jdbcUrlPrefix;
@@ -95,29 +94,71 @@ class AcidTableTest {
         testShardingService.processSuccessInHive();
     }
     
-    private Connection openConnection() throws SQLException {
-        Properties props = new Properties();
-        return DriverManager.getConnection(jdbcUrlPrefix, props);
-    }
-    
     private DataSource createDataSource() throws SQLException {
         Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptions().until(() -> {
-            openConnection().close();
+            DriverManager.getConnection(jdbcUrlPrefix).close();
             return true;
         });
         try (
-                Connection connection = openConnection();
+                Connection connection = DriverManager.getConnection(jdbcUrlPrefix);
                 Statement statement = connection.createStatement()) {
-            statement.executeUpdate("CREATE DATABASE demo_ds_0");
-            statement.executeUpdate("CREATE DATABASE demo_ds_1");
-            statement.executeUpdate("CREATE DATABASE demo_ds_2");
+            statement.execute("CREATE DATABASE demo_ds_0");
+            statement.execute("CREATE DATABASE demo_ds_1");
+            statement.execute("CREATE DATABASE demo_ds_2");
         }
+        Stream.of("demo_ds_0", "demo_ds_1", "demo_ds_2").parallel().forEach(this::initTable);
         HikariConfig config = new HikariConfig();
         config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
         config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/hive/acid.yaml?placeholder-type=system_props");
-        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0" + ";initFile=" + absolutePath);
-        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1" + ";initFile=" + absolutePath);
-        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2" + ";initFile=" + absolutePath);
+        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0");
+        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1");
+        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2");
         return new HikariDataSource(config);
     }
+    
+    /**
+     * TODO `shardingsphere-parser-sql-hive` module does not support `set`, `create table`,
+     *  `truncate table` and `drop table` statements yet,
+     *  we always need to execute the following Hive Session-level SQL in the current {@link javax.sql.DataSource}.
+     * Hive does not support `AUTO_INCREMENT`,
+     * refer to <a href="https://issues.apache.org/jira/browse/HIVE-6905">HIVE-6905</a>.
+     *
+     * @param databaseName database name
+     * @throws RuntimeException SQL exception
+     */
+    private void initTable(final String databaseName) {
+        try (
+                Connection connection = DriverManager.getConnection(jdbcUrlPrefix + databaseName);
+                Statement statement = connection.createStatement()) {
+            statement.execute("set metastore.compactor.initiator.on=true");
+            statement.execute("set metastore.compactor.cleaner.on=true");
+            statement.execute("set metastore.compactor.worker.threads=1");
+            statement.execute("create table IF NOT EXISTS t_order (\n"
+                    + "    order_id   BIGINT NOT NULL,\n"
+                    + "    order_type INT,\n"
+                    + "    user_id    INT    NOT NULL,\n"
+                    + "    address_id BIGINT NOT NULL,\n"
+                    + "    status     VARCHAR(50),\n"
+                    + "    PRIMARY KEY (order_id) disable novalidate\n"
+                    + ") CLUSTERED BY (order_id) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ('transactional' = 'true')");
+            statement.execute("create table IF NOT EXISTS t_order_item (\n"
+                    + "    order_item_id BIGINT NOT NULL,\n"
+                    + "    order_id      BIGINT NOT NULL,\n"
+                    + "    user_id       INT    NOT NULL,\n"
+                    + "    phone         VARCHAR(50),\n"
+                    + "    status        VARCHAR(50),\n"
+                    + "    PRIMARY KEY (order_item_id) disable novalidate\n"
+                    + ") CLUSTERED BY (order_item_id) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ('transactional' = 'true')");
+            statement.execute("create table IF NOT EXISTS t_address (\n"
+                    + "    address_id   BIGINT       NOT NULL,\n"
+                    + "    address_name VARCHAR(100) NOT NULL,\n"
+                    + "    PRIMARY KEY (address_id) disable novalidate\n"
+                    + ") CLUSTERED BY (address_id) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ('transactional' = 'true')");
+            statement.execute("TRUNCATE TABLE t_order");
+            statement.execute("TRUNCATE TABLE t_order_item");
+            statement.execute("TRUNCATE TABLE t_address");
+        } catch (final SQLException exception) {
+            throw new RuntimeException(exception);
+        }
+    }
 }
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 9bb9915a6a8..faecb0fe4c1 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
@@ -34,13 +34,13 @@ import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
 import javax.sql.DataSource;
-import java.nio.file.Paths;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.time.Duration;
 import java.util.Properties;
+import java.util.stream.Stream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -59,9 +59,6 @@ class IcebergTest {
     
     private final String systemPropKeyPrefix = "fixture.test-native.yaml.database.hive.iceberg.";
     
-    // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path.
-    private final String absolutePath = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql").toAbsolutePath().toString();
-    
     private DataSource logicDataSource;
     
     private String jdbcUrlPrefix;
@@ -108,16 +105,60 @@ class IcebergTest {
         try (
                 Connection connection = openConnection();
                 Statement statement = connection.createStatement()) {
-            statement.executeUpdate("CREATE DATABASE demo_ds_0");
-            statement.executeUpdate("CREATE DATABASE demo_ds_1");
-            statement.executeUpdate("CREATE DATABASE demo_ds_2");
+            statement.execute("CREATE DATABASE demo_ds_0");
+            statement.execute("CREATE DATABASE demo_ds_1");
+            statement.execute("CREATE DATABASE demo_ds_2");
         }
+        Stream.of("demo_ds_0", "demo_ds_1", "demo_ds_2").parallel().forEach(this::initTable);
         HikariConfig config = new HikariConfig();
         config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
         config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/hive/iceberg.yaml?placeholder-type=system_props");
-        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0" + ";initFile=" + absolutePath);
-        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1" + ";initFile=" + absolutePath);
-        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2" + ";initFile=" + absolutePath);
+        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0");
+        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1");
+        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2");
         return new HikariDataSource(config);
     }
+    
+    /**
+     * TODO `shardingsphere-parser-sql-hive` module does not support `set`, `create table`,
+     *  `truncate table` and `drop table` statements yet,
+     *  we always need to execute the following Hive Session-level SQL in the current {@link javax.sql.DataSource}.
+     * Hive does not support `AUTO_INCREMENT`,
+     * refer to <a href="https://issues.apache.org/jira/browse/HIVE-6905">HIVE-6905</a>.
+     *
+     * @param databaseName database name
+     * @throws RuntimeException SQL exception
+     */
+    private void initTable(final String databaseName) {
+        try (
+                Connection connection = DriverManager.getConnection(jdbcUrlPrefix + databaseName);
+                Statement statement = connection.createStatement()) {
+            statement.execute("CREATE TABLE IF NOT EXISTS t_order (\n"
+                    + "    order_id   BIGINT NOT NULL,\n"
+                    + "    order_type INT,\n"
+                    + "    user_id    INT    NOT NULL,\n"
+                    + "    address_id BIGINT NOT NULL,\n"
+                    + "    status     string,\n"
+                    + "    PRIMARY KEY (order_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("CREATE TABLE IF NOT EXISTS t_order_item (\n"
+                    + "    order_item_id BIGINT NOT NULL,\n"
+                    + "    order_id      BIGINT NOT NULL,\n"
+                    + "    user_id       INT    NOT NULL,\n"
+                    + "    phone         string,\n"
+                    + "    status        string,\n"
+                    + "    PRIMARY KEY (order_item_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("CREATE TABLE IF NOT EXISTS t_address (\n"
+                    + "    address_id   BIGINT       NOT NULL,\n"
+                    + "    address_name string NOT NULL,\n"
+                    + "    PRIMARY KEY (address_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("TRUNCATE TABLE t_order");
+            statement.execute("TRUNCATE TABLE t_order_item");
+            statement.execute("TRUNCATE TABLE t_address");
+        } catch (final SQLException exception) {
+            throw new RuntimeException(exception);
+        }
+    }
 }
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 43961b2ef19..dd2b3c6dfdf 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 @@ package org.apache.shardingsphere.test.natived.jdbc.databases.hive;
 
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
+import org.apache.curator.test.InstanceSpec;
 import org.apache.shardingsphere.driver.jdbc.core.connection.ShardingSphereConnection;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
 import org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
@@ -26,53 +27,66 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.test.natived.commons.TestShardingService;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.AutoClose;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledInNativeImage;
+import org.testcontainers.containers.FixedHostPortGenericContainer;
 import org.testcontainers.containers.GenericContainer;
 import org.testcontainers.containers.Network;
 import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
 import javax.sql.DataSource;
-import java.nio.file.Paths;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.time.Duration;
 import java.util.Properties;
+import java.util.stream.Stream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.nullValue;
 
-@SuppressWarnings({"SqlDialectInspection", "SqlNoDataSourceInspection", "resource"})
+@SuppressWarnings({"resource", "deprecation"})
 @EnabledInNativeImage
 @Testcontainers
 class StandaloneMetastoreTest {
     
+    private final int randomPort = InstanceSpec.getRandomPort();
+    
+    @AutoClose
     private final Network network = Network.newNetwork();
     
+    /**
+     * TODO {@link org.apache.shardingsphere.infra.database.hive.metadata.data.loader.HiveMetaDataLoader} needs to
+     *  actively connect to HMS, which leads to the use of {@link FixedHostPortGenericContainer} .
+     *  This is not a reasonable behavior and requires further changes.
+     */
     @Container
-    private final GenericContainer<?> hmsContainer = new GenericContainer<>("apache/hive:4.0.1")
+    @AutoClose
+    private final GenericContainer<?> hmsContainer = new FixedHostPortGenericContainer<>("apache/hive:4.0.1")
             .withEnv("SERVICE_NAME", "metastore")
+            .withEnv("METASTORE_PORT", String.valueOf(randomPort))
             .withNetwork(network)
-            .withNetworkAliases("metastore");
+            .withNetworkAliases("metastore")
+            .withFixedExposedPort(randomPort, randomPort);
     
     @Container
+    @AutoClose
     private final GenericContainer<?> hs2Container = new GenericContainer<>("apache/hive:4.0.1")
             .withEnv("SERVICE_NAME", "hiveserver2")
-            .withEnv("SERVICE_OPTS", "-Dhive.metastore.uris=thrift://metastore:9083")
+            .withEnv("IS_RESUME", "true")
+            .withEnv("SERVICE_OPTS", "-Dhive.metastore.uris=thrift://metastore:" + randomPort)
             .withNetwork(network)
             .withExposedPorts(10000)
-            .dependsOn(hmsContainer);
+            .dependsOn(hmsContainer)
+            .withStartupTimeout(Duration.ofMinutes(2L));
     
     private final String systemPropKeyPrefix = "fixture.test-native.yaml.database.hive.hms.";
     
-    // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path.
-    private final String absolutePath = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql").toAbsolutePath().toString();
-    
     private DataSource logicDataSource;
     
     private String jdbcUrlPrefix;
@@ -93,7 +107,6 @@ class StandaloneMetastoreTest {
             }
             contextManager.close();
         }
-        network.close();
         System.clearProperty(systemPropKeyPrefix + "ds0.jdbc-url");
         System.clearProperty(systemPropKeyPrefix + "ds1.jdbc-url");
         System.clearProperty(systemPropKeyPrefix + "ds2.jdbc-url");
@@ -120,16 +133,60 @@ class StandaloneMetastoreTest {
         try (
                 Connection connection = openConnection();
                 Statement statement = connection.createStatement()) {
-            statement.executeUpdate("CREATE DATABASE demo_ds_0");
-            statement.executeUpdate("CREATE DATABASE demo_ds_1");
-            statement.executeUpdate("CREATE DATABASE demo_ds_2");
+            statement.execute("CREATE DATABASE demo_ds_0");
+            statement.execute("CREATE DATABASE demo_ds_1");
+            statement.execute("CREATE DATABASE demo_ds_2");
         }
+        Stream.of("demo_ds_0", "demo_ds_1", "demo_ds_2").parallel().forEach(this::initTable);
         HikariConfig config = new HikariConfig();
         config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
         config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/hive/standalone-hms.yaml?placeholder-type=system_props");
-        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0" + ";initFile=" + absolutePath);
-        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1" + ";initFile=" + absolutePath);
-        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2" + ";initFile=" + absolutePath);
+        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0");
+        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1");
+        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2");
         return new HikariDataSource(config);
     }
+    
+    /**
+     * TODO `shardingsphere-parser-sql-hive` module does not support `set`, `create table`,
+     *  `truncate table` and `drop table` statements yet,
+     *  we always need to execute the following Hive Session-level SQL in the current {@link javax.sql.DataSource}.
+     * Hive does not support `AUTO_INCREMENT`,
+     * refer to <a href="https://issues.apache.org/jira/browse/HIVE-6905">HIVE-6905</a>.
+     *
+     * @param databaseName database name
+     * @throws RuntimeException SQL exception
+     */
+    private void initTable(final String databaseName) {
+        try (
+                Connection connection = DriverManager.getConnection(jdbcUrlPrefix + databaseName);
+                Statement statement = connection.createStatement()) {
+            statement.execute("CREATE TABLE IF NOT EXISTS t_order (\n"
+                    + "    order_id   BIGINT NOT NULL,\n"
+                    + "    order_type INT,\n"
+                    + "    user_id    INT    NOT NULL,\n"
+                    + "    address_id BIGINT NOT NULL,\n"
+                    + "    status     string,\n"
+                    + "    PRIMARY KEY (order_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("CREATE TABLE IF NOT EXISTS t_order_item (\n"
+                    + "    order_item_id BIGINT NOT NULL,\n"
+                    + "    order_id      BIGINT NOT NULL,\n"
+                    + "    user_id       INT    NOT NULL,\n"
+                    + "    phone         string,\n"
+                    + "    status        string,\n"
+                    + "    PRIMARY KEY (order_item_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("CREATE TABLE IF NOT EXISTS t_address (\n"
+                    + "    address_id   BIGINT       NOT NULL,\n"
+                    + "    address_name string NOT NULL,\n"
+                    + "    PRIMARY KEY (address_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("TRUNCATE TABLE t_order");
+            statement.execute("TRUNCATE TABLE t_order_item");
+            statement.execute("TRUNCATE TABLE t_address");
+        } catch (final SQLException exception) {
+            throw new RuntimeException(exception);
+        }
+    }
 }
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 93e9968f4b0..45b9542f624 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
@@ -30,6 +30,7 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.test.natived.commons.TestShardingService;
 import org.awaitility.Awaitility;
 import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.AutoClose;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledInNativeImage;
@@ -40,7 +41,6 @@ import org.testcontainers.junit.jupiter.Container;
 import org.testcontainers.junit.jupiter.Testcontainers;
 
 import javax.sql.DataSource;
-import java.nio.file.Paths;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
@@ -48,6 +48,7 @@ import java.sql.Statement;
 import java.time.Duration;
 import java.util.List;
 import java.util.Properties;
+import java.util.stream.Stream;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
@@ -58,37 +59,18 @@ import static org.hamcrest.Matchers.nullValue;
 @Testcontainers
 class ZookeeperServiceDiscoveryTest {
     
-    private final int randomPortFirst = InstanceSpec.getRandomPort();
-    
+    @AutoClose
     private final Network network = Network.newNetwork();
     
     @Container
+    @AutoClose
     private final GenericContainer<?> zookeeperContainer = new GenericContainer<>("zookeeper:3.9.3-jre-17")
             .withNetwork(network)
             .withNetworkAliases("foo")
             .withExposedPorts(2181);
     
-    /**
-     * Due to the design flaw of testcontainers-java,
-     * starting HiveServer2 using Zookeeper service discovery can only be done through the deprecated {@link FixedHostPortGenericContainer}.
-     * See <a href="https://github.com/testcontainers/testcontainers-java/issues/9553">testcontainers/testcontainers-java#9553</a>.
-     */
-    @Container
-    private final GenericContainer<?> hs21Container = new FixedHostPortGenericContainer<>("apache/hive:4.0.1")
-            .withNetwork(network)
-            .withEnv("SERVICE_NAME", "hiveserver2")
-            .withEnv("SERVICE_OPTS", "-Dhive.server2.support.dynamic.service.discovery=true" + " "
-                    + "-Dhive.zookeeper.quorum=" + zookeeperContainer.getNetworkAliases().get(0) + ":2181" + " "
-                    + "-Dhive.server2.thrift.bind.host=0.0.0.0" + " "
-                    + "-Dhive.server2.thrift.port=" + randomPortFirst)
-            .withFixedExposedPort(randomPortFirst, randomPortFirst)
-            .dependsOn(zookeeperContainer);
-    
     private final String systemPropKeyPrefix = "fixture.test-native.yaml.database.hive.zsd.";
     
-    // Due to https://issues.apache.org/jira/browse/HIVE-28317 , the `initFile` parameter of HiveServer2 JDBC Driver must be an absolute path.
-    private final String absolutePath = Paths.get("src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql").toAbsolutePath().toString();
-    
     private DataSource logicDataSource;
     
     private final String jdbcUrlSuffix = ";serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2";
@@ -111,22 +93,41 @@ class ZookeeperServiceDiscoveryTest {
             }
             contextManager.close();
         }
-        network.close();
         System.clearProperty(systemPropKeyPrefix + "ds0.jdbc-url");
         System.clearProperty(systemPropKeyPrefix + "ds1.jdbc-url");
         System.clearProperty(systemPropKeyPrefix + "ds2.jdbc-url");
     }
     
+    /**
+     * Due to the design flaw of testcontainers-java,
+     * starting HiveServer2 using Zookeeper service discovery can only be done through the deprecated {@link FixedHostPortGenericContainer}.
+     * See <a href="https://github.com/testcontainers/testcontainers-java/issues/9553">testcontainers/testcontainers-java#9553</a>.
+     *
+     * @throws SQLException SQL exception
+     */
     @Test
     void assertShardingInLocalTransactions() throws SQLException {
-        jdbcUrlPrefix = "jdbc:hive2://" + zookeeperContainer.getHost() + ":" + zookeeperContainer.getMappedPort(2181) + "/";
-        logicDataSource = createDataSource();
-        TestShardingService testShardingService = new TestShardingService(logicDataSource);
-        testShardingService.processSuccessInHive();
-        hs21Container.stop();
+        TestShardingService testShardingService;
+        int randomPortFirst = InstanceSpec.getRandomPort();
+        try (
+                GenericContainer<?> hs2Container = new FixedHostPortGenericContainer<>("apache/hive:4.0.1")
+                        .withNetwork(network)
+                        .withEnv("SERVICE_NAME", "hiveserver2")
+                        .withEnv("SERVICE_OPTS", "-Dhive.server2.support.dynamic.service.discovery=true" + " "
+                                + "-Dhive.zookeeper.quorum=" + zookeeperContainer.getNetworkAliases().get(0) + ":2181" + " "
+                                + "-Dhive.server2.thrift.bind.host=0.0.0.0" + " "
+                                + "-Dhive.server2.thrift.port=" + randomPortFirst)
+                        .withFixedExposedPort(randomPortFirst, randomPortFirst)
+                        .dependsOn(zookeeperContainer)) {
+            hs2Container.start();
+            jdbcUrlPrefix = "jdbc:hive2://" + zookeeperContainer.getHost() + ":" + zookeeperContainer.getMappedPort(2181) + "/";
+            logicDataSource = createDataSource(hs2Container.getMappedPort(randomPortFirst));
+            testShardingService = new TestShardingService(logicDataSource);
+            testShardingService.processSuccessInHive();
+        }
         int randomPortSecond = InstanceSpec.getRandomPort();
         try (
-                GenericContainer<?> hs2SecondContainer = new FixedHostPortGenericContainer<>("apache/hive:4.0.1")
+                GenericContainer<?> hs2Container = new FixedHostPortGenericContainer<>("apache/hive:4.0.1")
                         .withNetwork(network)
                         .withEnv("SERVICE_NAME", "hiveserver2")
                         .withEnv("SERVICE_OPTS", "-Dhive.server2.support.dynamic.service.discovery=true" + " "
@@ -135,8 +136,8 @@ class ZookeeperServiceDiscoveryTest {
                                 + "-Dhive.server2.thrift.port=" + randomPortSecond)
                         .withFixedExposedPort(randomPortSecond, randomPortSecond)
                         .dependsOn(zookeeperContainer)) {
-            hs2SecondContainer.start();
-            extracted(hs2SecondContainer.getMappedPort(randomPortSecond));
+            hs2Container.start();
+            extracted(hs2Container.getMappedPort(randomPortSecond));
             testShardingService.processSuccessInHive();
         }
     }
@@ -146,14 +147,14 @@ class ZookeeperServiceDiscoveryTest {
         return DriverManager.getConnection(jdbcUrlPrefix + jdbcUrlSuffix, props);
     }
     
-    private DataSource createDataSource() throws SQLException {
-        extracted(hs21Container.getMappedPort(randomPortFirst));
+    private DataSource createDataSource(final Integer hiveServer2Port) throws SQLException {
+        extracted(hiveServer2Port);
         HikariConfig config = new HikariConfig();
         config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
         config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/hive/zsd.yaml?placeholder-type=system_props");
-        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0" + ";initFile=" + absolutePath + jdbcUrlSuffix);
-        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1" + ";initFile=" + absolutePath + jdbcUrlSuffix);
-        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2" + ";initFile=" + absolutePath + jdbcUrlSuffix);
+        System.setProperty(systemPropKeyPrefix + "ds0.jdbc-url", jdbcUrlPrefix + "demo_ds_0" + jdbcUrlSuffix);
+        System.setProperty(systemPropKeyPrefix + "ds1.jdbc-url", jdbcUrlPrefix + "demo_ds_1" + jdbcUrlSuffix);
+        System.setProperty(systemPropKeyPrefix + "ds2.jdbc-url", jdbcUrlPrefix + "demo_ds_2" + jdbcUrlSuffix);
         return new HikariDataSource(config);
     }
     
@@ -176,9 +177,53 @@ class ZookeeperServiceDiscoveryTest {
         try (
                 Connection connection = openConnection();
                 Statement statement = connection.createStatement()) {
-            statement.executeUpdate("CREATE DATABASE demo_ds_0");
-            statement.executeUpdate("CREATE DATABASE demo_ds_1");
-            statement.executeUpdate("CREATE DATABASE demo_ds_2");
+            statement.execute("CREATE DATABASE demo_ds_0");
+            statement.execute("CREATE DATABASE demo_ds_1");
+            statement.execute("CREATE DATABASE demo_ds_2");
+        }
+        Stream.of("demo_ds_0", "demo_ds_1", "demo_ds_2").parallel().forEach(this::initTable);
+    }
+    
+    /**
+     * TODO `shardingsphere-parser-sql-hive` module does not support `set`, `create table`,
+     *  `truncate table` and `drop table` statements yet,
+     *  we always need to execute the following Hive Session-level SQL in the current {@link javax.sql.DataSource}.
+     * Hive does not support `AUTO_INCREMENT`,
+     * refer to <a href="https://issues.apache.org/jira/browse/HIVE-6905">HIVE-6905</a>.
+     *
+     * @param databaseName database name
+     * @throws RuntimeException SQL exception
+     */
+    private void initTable(final String databaseName) {
+        try (
+                Connection connection = DriverManager.getConnection(jdbcUrlPrefix + databaseName + jdbcUrlSuffix);
+                Statement statement = connection.createStatement()) {
+            statement.execute("CREATE TABLE IF NOT EXISTS t_order (\n"
+                    + "    order_id   BIGINT NOT NULL,\n"
+                    + "    order_type INT,\n"
+                    + "    user_id    INT    NOT NULL,\n"
+                    + "    address_id BIGINT NOT NULL,\n"
+                    + "    status     string,\n"
+                    + "    PRIMARY KEY (order_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("CREATE TABLE IF NOT EXISTS t_order_item (\n"
+                    + "    order_item_id BIGINT NOT NULL,\n"
+                    + "    order_id      BIGINT NOT NULL,\n"
+                    + "    user_id       INT    NOT NULL,\n"
+                    + "    phone         string,\n"
+                    + "    status        string,\n"
+                    + "    PRIMARY KEY (order_item_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("CREATE TABLE IF NOT EXISTS t_address (\n"
+                    + "    address_id   BIGINT       NOT NULL,\n"
+                    + "    address_name string NOT NULL,\n"
+                    + "    PRIMARY KEY (address_id) disable novalidate\n"
+                    + ") STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2')");
+            statement.execute("TRUNCATE TABLE t_order");
+            statement.execute("TRUNCATE TABLE t_order_item");
+            statement.execute("TRUNCATE TABLE t_address");
+        } catch (final SQLException exception) {
+            throw new RuntimeException(exception);
         }
     }
 }
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 3a29e7c4d1f..79739b958f9 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
@@ -29,7 +29,9 @@ import org.awaitility.Awaitility;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.EnabledInNativeImage;
+import org.junit.jupiter.api.condition.OS;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
 import javax.sql.DataSource;
@@ -43,7 +45,11 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.nullValue;
 
+/**
+ * TODO This unit test cannot be run under GraalVM Native Image compiled with Windows 11, pending investigation.
+ */
 @EnabledInNativeImage
+@DisabledOnOs(OS.WINDOWS)
 class EtcdTest {
     
     @RegisterExtension
diff --git a/test/native/src/test/resources/test-native/sql/test-native-databases-hive-acid.sql b/test/native/src/test/resources/test-native/sql/test-native-databases-hive-acid.sql
deleted file mode 100644
index e451f6a5f69..00000000000
--- a/test/native/src/test/resources/test-native/sql/test-native-databases-hive-acid.sql
+++ /dev/null
@@ -1,55 +0,0 @@
---
--- 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.
---
-
---  TODO `shardingsphere-parser-sql-hive` module does not support `set`, `create table`, `truncate table` and `drop table` statements yet,
---   we always need to execute the following Hive Session-level SQL in the current `javax.sql.DataSource`.
--- Hive does not support `AUTO_INCREMENT`, refer to <a href="https://issues.apache.org/jira/browse/HIVE-6905">HIVE-6905</a> .
-set metastore.compactor.initiator.on=true;
-set metastore.compactor.cleaner.on=true;
-set metastore.compactor.worker.threads=1;
-
-set hive.support.concurrency=true;
-set hive.exec.dynamic.partition.mode=nonstrict;
-set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
-
-create table IF NOT EXISTS t_order (
-    order_id   BIGINT NOT NULL,
-    order_type INT,
-    user_id    INT    NOT NULL,
-    address_id BIGINT NOT NULL,
-    status     VARCHAR(50),
-    PRIMARY KEY (order_id) disable novalidate
-) CLUSTERED BY (order_id) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ('transactional' = 'true');
-
-create table IF NOT EXISTS t_order_item (
-    order_item_id BIGINT NOT NULL,
-    order_id      BIGINT NOT NULL,
-    user_id       INT    NOT NULL,
-    phone         VARCHAR(50),
-    status        VARCHAR(50),
-    PRIMARY KEY (order_item_id) disable novalidate
-) CLUSTERED BY (order_item_id) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ('transactional' = 'true');
-
-create table IF NOT EXISTS t_address (
-    address_id   BIGINT       NOT NULL,
-    address_name VARCHAR(100) NOT NULL,
-    PRIMARY KEY (address_id) disable novalidate
-) CLUSTERED BY (address_id) INTO 2 BUCKETS STORED AS ORC TBLPROPERTIES ('transactional' = 'true');
-
-TRUNCATE TABLE t_order;
-TRUNCATE TABLE t_order_item;
-TRUNCATE TABLE t_address;
diff --git a/test/native/src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql b/test/native/src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql
deleted file mode 100644
index 1313cea9384..00000000000
--- a/test/native/src/test/resources/test-native/sql/test-native-databases-hive-iceberg.sql
+++ /dev/null
@@ -1,48 +0,0 @@
---
--- 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.
---
-
---  TODO `shardingsphere-parser-sql-hive` module does not support `set`, `create table`, `truncate table` and `drop table` statements yet,
---   we always need to execute the following Hive Session-level SQL in the current `javax.sql.DataSource`.
--- Hive does not support `AUTO_INCREMENT`, refer to <a href="https://issues.apache.org/jira/browse/HIVE-6905">HIVE-6905</a> .
-
-CREATE TABLE IF NOT EXISTS t_order (
-    order_id   BIGINT NOT NULL,
-    order_type INT,
-    user_id    INT    NOT NULL,
-    address_id BIGINT NOT NULL,
-    status     string,
-    PRIMARY KEY (order_id) disable novalidate
-) STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2');
-
-CREATE TABLE IF NOT EXISTS t_order_item (
-    order_item_id BIGINT NOT NULL,
-    order_id      BIGINT NOT NULL,
-    user_id       INT    NOT NULL,
-    phone         string,
-    status        string,
-    PRIMARY KEY (order_item_id) disable novalidate
-) STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2');
-
-CREATE TABLE IF NOT EXISTS t_address (
-    address_id   BIGINT       NOT NULL,
-    address_name string NOT NULL,
-    PRIMARY KEY (address_id) disable novalidate
-) STORED BY ICEBERG STORED AS ORC TBLPROPERTIES ('format-version' = '2');
-
-TRUNCATE TABLE t_order;
-TRUNCATE TABLE t_order_item;
-TRUNCATE TABLE t_address;
diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/acid.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/acid.yaml
index 47dcf8ae274..20cde22ab09 100644
--- a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/acid.yaml
+++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/acid.yaml
@@ -56,8 +56,8 @@ rules:
     snowflake:
       type: SNOWFLAKE
       props:
-        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741619224673 milliseconds, current time is 1741619222930 milliseconds..`, this requires investigating what is happening inside HiveServer2
-        max-tolerate-time-difference-milliseconds: 1744
+        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741696248036 milliseconds, current time is 1741696246171 milliseconds..`, this requires investigating what is happening inside HiveServer2
+        max-tolerate-time-difference-milliseconds: 1866
   auditors:
     sharding_key_required_auditor:
       type: DML_SHARDING_CONDITIONS
diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/iceberg.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/iceberg.yaml
index a43566cc6de..fa09094536f 100644
--- a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/iceberg.yaml
+++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/iceberg.yaml
@@ -56,8 +56,8 @@ rules:
     snowflake:
       type: SNOWFLAKE
       props:
-        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741619224673 milliseconds, current time is 1741619222930 milliseconds..`, this requires investigating what is happening inside HiveServer2
-        max-tolerate-time-difference-milliseconds: 1744
+        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741696248036 milliseconds, current time is 1741696246171 milliseconds..`, this requires investigating what is happening inside HiveServer2
+        max-tolerate-time-difference-milliseconds: 1866
   auditors:
     sharding_key_required_auditor:
       type: DML_SHARDING_CONDITIONS
diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/standalone-hms.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/standalone-hms.yaml
index 88a268b5ef1..1c5704726f2 100644
--- a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/standalone-hms.yaml
+++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/standalone-hms.yaml
@@ -56,8 +56,8 @@ rules:
     snowflake:
       type: SNOWFLAKE
       props:
-        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741619224673 milliseconds, current time is 1741619222930 milliseconds..`, this requires investigating what is happening inside HiveServer2
-        max-tolerate-time-difference-milliseconds: 1744
+        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741696248036 milliseconds, current time is 1741696246171 milliseconds..`, this requires investigating what is happening inside HiveServer2
+        max-tolerate-time-difference-milliseconds: 1866
   auditors:
     sharding_key_required_auditor:
       type: DML_SHARDING_CONDITIONS
diff --git a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/zsd.yaml b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/zsd.yaml
index 11eb0c450ef..5e2017efe17 100644
--- a/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/zsd.yaml
+++ b/test/native/src/test/resources/test-native/yaml/jdbc/databases/hive/zsd.yaml
@@ -56,8 +56,8 @@ rules:
     snowflake:
       type: SNOWFLAKE
       props:
-        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741619224673 milliseconds, current time is 1741619222930 milliseconds..`, this requires investigating what is happening inside HiveServer2
-        max-tolerate-time-difference-milliseconds: 1744
+        # TODO This is to avoid `SQL Algorithm 'Object.SNOWFLAKE' execute failed, reason is: Clock is moving backwards, last time is 1741696248036 milliseconds, current time is 1741696246171 milliseconds..`, this requires investigating what is happening inside HiveServer2
+        max-tolerate-time-difference-milliseconds: 1866
   auditors:
     sharding_key_required_auditor:
       type: DML_SHARDING_CONDITIONS