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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6a9d479ae66 Removes support for jdbcURL prefix of 
`jdbc:tc:shardingsphere0clickhouse:` (#33707)
6a9d479ae66 is described below

commit 6a9d479ae66ff052a1c50e8e0b6912cd91ef125b
Author: Ling Hengqian <[email protected]>
AuthorDate: Mon Nov 18 22:20:12 2024 +0800

    Removes support for jdbcURL prefix of `jdbc:tc:shardingsphere0clickhouse:` 
(#33707)
---
 RELEASE-NOTES.md                                   |   2 +
 .../common-config/builtin-algorithm/expr.cn.md     |   7 ++
 .../common-config/builtin-algorithm/expr.en.md     |   6 ++
 .../common-config/builtin-algorithm/sharding.cn.md |  16 +--
 .../common-config/builtin-algorithm/sharding.en.md |  16 +--
 .../optional-plugins/testcontainers/_index.cn.md   |  40 +++++++
 .../optional-plugins/testcontainers/_index.en.md   |  40 +++++++
 examples/pom.xml                                   |   2 +-
 .../type/TcClickHouseDatabaseType.java             |   9 +-
 .../type/TestcontainersDatabaseTypeTest.java       |   3 +-
 .../clickhouse-jdbc/0.6.3/resource-config.json     |  12 +++
 .../reflect-config.json                            |  29 +++--
 .../resource-config.json                           |  18 ----
 .../reflect-config.json                            |   5 +
 pom.xml                                            |   4 +-
 test/native/native-image-filter/extra-filter.json  |   2 +
 .../commons/testcontainers/ClickHouseProvider.java |  47 --------
 .../natived/jdbc/databases/ClickHouseTest.java     | 118 +++++++++++++++++++--
 ...ainers.containers.JdbcDatabaseContainerProvider |  18 ----
 .../sql/test-native-databases-clickhouse.sql       |  49 ---------
 .../yaml/jdbc/databases/clickhouse.yaml            |  19 ++--
 21 files changed, 273 insertions(+), 189 deletions(-)

diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 8620c4dccfb..f752e7fbfd7 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -2,6 +2,8 @@
 
 ### API Changes
 
+1. Infra: Removes support for jdbcURL prefix of 
`jdbc:tc:shardingsphere0clickhouse:` - 
[#33707](https://github.com/apache/shardingsphere/pull/33707)
+
 ### New Features
 
 ### Enhancements
diff --git 
a/docs/document/content/user-manual/common-config/builtin-algorithm/expr.cn.md 
b/docs/document/content/user-manual/common-config/builtin-algorithm/expr.cn.md
index f615696ecb4..eaeba840b31 100644
--- 
a/docs/document/content/user-manual/common-config/builtin-algorithm/expr.cn.md
+++ 
b/docs/document/content/user-manual/common-config/builtin-algorithm/expr.cn.md
@@ -122,6 +122,7 @@ Truffle 与 JDK 的向后兼容性矩阵位于 https://medium.com/graalvm/40027a
 考虑一个简单的 SPI 实现类,
 
 ```java
+package org.example;
 import org.apache.shardingsphere.infra.expr.spi.InlineExpressionParser;
 import java.util.Arrays;
 import java.util.List;
@@ -146,6 +147,12 @@ public final class CustomInlineExpressionParserFixture 
implements InlineExpressi
 }
 ```
 
+并在项目的 classpath 添加 
`META-INF/services/org.apache.shardingsphere.infra.expr.spi.InlineExpressionParser`文件,
+
+```
+org.example.CustomInlineExpressionParserFixture
+```
+
 此时对于 ShardingSphere 配置文件中的 `actualDataNodes`,
 1. 若配置为 `<CUSTOM.FIXTURE>spring`,将被转化为 `t_order_2024_01, t_order_2024_02`。
 2. 若配置为 `<CUSTOM.FIXTURE>summer`,将被转化为 `t_order_2024_03, t_order_2024_04`。
diff --git 
a/docs/document/content/user-manual/common-config/builtin-algorithm/expr.en.md 
b/docs/document/content/user-manual/common-config/builtin-algorithm/expr.en.md
index 40914d27955..5863beb4120 100644
--- 
a/docs/document/content/user-manual/common-config/builtin-algorithm/expr.en.md
+++ 
b/docs/document/content/user-manual/common-config/builtin-algorithm/expr.en.md
@@ -159,6 +159,12 @@ public final class CustomInlineExpressionParserFixture 
implements InlineExpressi
 }
 ```
 
+And add the file 
`META-INF/services/org.apache.shardingsphere.infra.expr.spi.InlineExpressionParser`
 to the project classpath,
+
+```
+org.example.CustomInlineExpressionParserFixture
+```
+
 At this time, for `actualDataNodes` in the ShardingSphere configuration file,
 1. If configured as `<CUSTOM.FIXTURE>spring`, it will be converted to 
`t_order_2024_01, t_order_2024_02`.
 2. If configured as `<CUSTOM.FIXTURE>summer`, it will be converted to 
`t_order_2024_03, t_order_2024_04`.
diff --git 
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
 
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
index 0cd29976d13..f71f6800df3 100644
--- 
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
+++ 
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.cn.md
@@ -96,14 +96,14 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 
 可配置属性:
 
-| *属性名称*                       | *数据类型* | *说明*                                 
                                                                                
                      | *默认值* |
-|------------------------------|--------|--------------------------------------------------------------------------------------------------------------------------------------------|-------|
-| datetime-pattern             | String | 分片键的时间戳格式,必须遵循 Java 
DateTimeFormatter 的格式。例如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd 或 HH:mm:ss 等。但不支持与 
`java.time.chrono.JapaneseDate` 相关的 Gy-MM 等 |       |
-| datetime-lower               | String | 时间分片下界值,格式与 `datetime-pattern` 
定义的时间戳格式一致                                                                      
                            |       |
-| datetime-upper (?)           | String | 时间分片上界值,格式与 `datetime-pattern` 
定义的时间戳格式一致                                                                      
                            | 当前时间  |
-| sharding-suffix-pattern      | String | 分片数据源或真实表的后缀格式,必须遵循 Java 
DateTimeFormatter 的格式,必须和 `datetime-interval-unit` 保持一致。例如:yyyyMM               
                                  |       |
-| datetime-interval-amount (?) | int    | 分片键时间间隔,超过该时间间隔将进入下一分片               
                                                                                
                      | 1     |
-| datetime-interval-unit (?)   | String | 分片键时间间隔单位,必须遵循 Java ChronoUnit 
的枚举值。例如:MONTHS                                                                  
                            | DAYS  |
+| *属性名称*                       | *数据类型* | *说明*                                 
                                                                                
                         | *默认值* |
+|------------------------------|--------|-----------------------------------------------------------------------------------------------------------------------------------------------|-------|
+| datetime-pattern             | String | 分片键的时间戳格式,必须遵循 Java 
DateTimeFormatter 的格式。例如:yyyy-MM-dd HH:mm:ss,yyyy-MM-dd 或 HH:mm:ss 等。但不支持与 
`java.time.chrono.JapaneseDate` 相关的 GGGGy-MM 等 |       |
+| datetime-lower               | String | 时间分片下界值,格式与 `datetime-pattern` 
定义的时间戳格式一致                                                                      
                               |       |
+| datetime-upper (?)           | String | 时间分片上界值,格式与 `datetime-pattern` 
定义的时间戳格式一致                                                                      
                               | 当前时间  |
+| sharding-suffix-pattern      | String | 分片数据源或真实表的后缀格式,必须遵循 Java 
DateTimeFormatter 的格式,必须和 `datetime-interval-unit` 保持一致。例如:yyyyMM               
                                     |       |
+| datetime-interval-amount (?) | int    | 分片键时间间隔,超过该时间间隔将进入下一分片               
                                                                                
                         | 1     |
+| datetime-interval-unit (?)   | String | 分片键时间间隔单位,必须遵循 Java ChronoUnit 
的枚举值。例如:MONTHS                                                                  
                               | DAYS  |
 
 ### 复合分片算法
 
diff --git 
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
 
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
index 04c0ce3844e..c8419361856 100644
--- 
a/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
+++ 
b/docs/document/content/user-manual/common-config/builtin-algorithm/sharding.en.md
@@ -100,14 +100,14 @@ Type: INTERVAL
 
 Attributes:
 
-| *Name*                       | *DataType* | *Description*                    
                                                                                
                                                                                
                             | *Default Value* |
-|------------------------------|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
-| datetime-pattern             | String     | Timestamp pattern of sharding 
value, must can be transformed to Java LocalDateTime. For example: yyyy-MM-dd 
HH:mm:ss, yyyy-MM-dd or HH:mm:ss etc. But Gy-MM etc. related to 
`java.time.chrono.JapaneseDate` are not supported | -               |
-| datetime-lower               | String     | Datetime sharding lower 
boundary, pattern is defined `datetime-pattern`                                 
                                                                                
                                      | -               |
-| datetime-upper (?)           | String     | Datetime sharding upper 
boundary, pattern is defined `datetime-pattern`                                 
                                                                                
                                      | Now             |
-| sharding-suffix-pattern      | String     | Suffix pattern of sharding data 
sources or tables, must can be transformed to Java LocalDateTime, must be 
consistent with `datetime-interval-unit`. For example: yyyyMM                   
                                    | -               |
-| datetime-interval-amount (?) | int        | Interval of sharding value, 
after which the next shard will be entered                                      
                                                                                
                                  | 1               |
-| datetime-interval-unit (?)   | String     | Unit of sharding value interval, 
must can be transformed to Java ChronoUnit's Enum value. For example: MONTHS    
                                                                                
                             | DAYS            |
+| *Name*                       | *DataType* | *Description*                    
                                                                                
                                                                                
                                | *Default Value* |
+|------------------------------|------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|
+| datetime-pattern             | String     | Timestamp pattern of sharding 
value, must can be transformed to Java LocalDateTime. For example: yyyy-MM-dd 
HH:mm:ss, yyyy-MM-dd or HH:mm:ss etc. But GGGGy-MM etc. related to 
`java.time.chrono.JapaneseDate` are not supported | -               |
+| datetime-lower               | String     | Datetime sharding lower 
boundary, pattern is defined `datetime-pattern`                                 
                                                                                
                                         | -               |
+| datetime-upper (?)           | String     | Datetime sharding upper 
boundary, pattern is defined `datetime-pattern`                                 
                                                                                
                                         | Now             |
+| sharding-suffix-pattern      | String     | Suffix pattern of sharding data 
sources or tables, must can be transformed to Java LocalDateTime, must be 
consistent with `datetime-interval-unit`. For example: yyyyMM                   
                                       | -               |
+| datetime-interval-amount (?) | int        | Interval of sharding value, 
after which the next shard will be entered                                      
                                                                                
                                     | 1               |
+| datetime-interval-unit (?)   | String     | Unit of sharding value interval, 
must can be transformed to Java ChronoUnit's Enum value. For example: MONTHS    
                                                                                
                                | DAYS            |
 
 ### Complex Sharding Algorithm
 
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/testcontainers/_index.cn.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/testcontainers/_index.cn.md
new file mode 100644
index 00000000000..1ff66f3ce46
--- /dev/null
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/testcontainers/_index.cn.md
@@ -0,0 +1,40 @@
++++
+title = "Testcontainers"
+weight = 6
++++
+
+ShardingSphere 默认情况下不提供对 `org.testcontainers.jdbc.ContainerDatabaseDriver` 的 
`driverClassName` 的支持。
+要在 ShardingSphere 的配置文件为数据节点使用类似 
`jdbc:tc:postgresql:17.1-bookworm://test-native-databases-postgres/demo_ds_0` 的 
`jdbcUrl`,
+可能的 Maven 依赖关系如下,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-jdbc</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-infra-database-testcontainers</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.testcontainers</groupId>
+        <artifactId>postgresql</artifactId>
+        <version>1.20.3</version>
+        <scope>test</scope>
+    </dependency>
+</dependencies>
+```
+
+`org.apache.shardingsphere:shardingsphere-infra-database-testcontainers` 为 
testcontainers-java 分格的 jdbcURL 提供支持,
+包括但不限于,
+
+1. 为 `jdbc:tc:clickhouse:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:clickhouse:1.20.3`
+2. 为 `jdbc:tc:postgresql:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:postgresql:1.20.3`
+3. 为 `jdbc:tc:sqlserver:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:mssqlserver:1.20.3`
+4. 为 `jdbc:tc:mariadb:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:mariadb:1.20.3`
+5. 为 `jdbc:tc:mysql:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:mysql:1.20.3`
+6. 为 `jdbc:tc:oracle:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:oracle-xe:1.20.3` 和 `org.testcontainers:oracle-free:1.20.3`
+7. 为 `jdbc:tc:tidb:` 的 jdbcURL 前缀提供支持的 Maven 模块 
`org.testcontainers:tidb:1.20.3`
diff --git 
a/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/testcontainers/_index.en.md
 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/testcontainers/_index.en.md
new file mode 100644
index 00000000000..0593e098d52
--- /dev/null
+++ 
b/docs/document/content/user-manual/shardingsphere-jdbc/optional-plugins/testcontainers/_index.en.md
@@ -0,0 +1,40 @@
++++
+title = "Testcontainers"
+weight = 6
++++
+
+ShardingSphere does not provide support for `driverClassName` of 
`org.testcontainers.jdbc.ContainerDatabaseDriver` by default.
+To use `jdbcUrl` like 
`jdbc:tc:postgresql:17.1-bookworm://test-native-databases-postgres/demo_ds_0` 
for data nodes in ShardingSphere's configuration file,
+the possible Maven dependencies are as follows,
+
+```xml
+<dependencies>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-jdbc</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.shardingsphere</groupId>
+        <artifactId>shardingsphere-infra-database-testcontainers</artifactId>
+        <version>${shardingsphere.version}</version>
+    </dependency>
+    <dependency>
+        <groupId>org.testcontainers</groupId>
+        <artifactId>postgresql</artifactId>
+        <version>1.20.3</version>
+        <scope>test</scope>
+    </dependency>
+</dependencies>
+```
+
+`org.apache.shardingsphere:shardingsphere-infra-database-testcontainers` 
provides support for jdbcURL in the testcontainers-java partition, 
+including but not limited to,
+
+1. Maven module `org.testcontainers:clickhouse:1.20.3` that provides support 
for jdbcURL prefixes for `jdbc:tc:clickhouse:`
+2. Maven module `org.testcontainers:postgresql:1.20.3` that provides support 
for jdbcURL prefixes for `jdbc:tc:postgresql:`
+3. Maven module `org.testcontainers:mssqlserver:1.20.3` that provides support 
for jdbcURL prefixes for `jdbc:tc:sqlserver:`
+4. Maven module `org.testcontainers:mariadb:1.20.3` that provides support for 
jdbcURL prefixes for `jdbc:tc:mariadb:`
+5. Maven module `org.testcontainers:mysql:1.20.3` that provides support for 
jdbcURL prefixes of `jdbc:tc:mysql:` 
+6. Maven modules `org.testcontainers:oracle-xe:1.20.3` and 
`org.testcontainers:oracle-free:1.20.3` that provide support for jdbcURL 
prefixes of `jdbc:tc:oracle:`
+7. Maven module `org.testcontainers:tidb:1.20.3` that provides support for 
jdbcURL prefixes of `jdbc:tc:tidb:`
diff --git a/examples/pom.xml b/examples/pom.xml
index 85e522eeb64..64085056a1f 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -338,7 +338,7 @@
     
     <profiles>
         <profile>
-            <id>jdk11-22</id>
+            <id>jdk11+</id>
             <activation>
                 <jdk>[11,)</jdk>
             </activation>
diff --git 
a/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcClickHouseDatabaseType.java
 
b/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcClickHouseDatabaseType.java
index 0f96b8da177..c213c7aa71c 100644
--- 
a/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcClickHouseDatabaseType.java
+++ 
b/infra/database/type/testcontainers/src/main/java/org/apache/shardingsphere/infra/database/testcontainers/type/TcClickHouseDatabaseType.java
@@ -20,8 +20,8 @@ package 
org.apache.shardingsphere.infra.database.testcontainers.type;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 
-import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.Optional;
 
 /**
@@ -29,14 +29,9 @@ import java.util.Optional;
  */
 public final class TcClickHouseDatabaseType implements 
TestcontainersDatabaseType {
     
-    /**
-     * TODO See the JavaDoc for 
`org.apache.shardingsphere.test.natived.jdbc.commons.testcontainers.ClickHouseProvider`.
-     *
-     * @return prefixes of JDBC URL
-     */
     @Override
     public Collection<String> getJdbcUrlPrefixes() {
-        return Arrays.asList("jdbc:tc:clickhouse:", 
"jdbc:tc:shardingsphere0clickhouse:");
+        return Collections.singletonList("jdbc:tc:clickhouse:");
     }
     
     @Override
diff --git 
a/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
 
b/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
index 4fb78478e27..c81750acbe1 100644
--- 
a/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
+++ 
b/infra/database/type/testcontainers/src/test/java/org/apache/shardingsphere/infra/database/testcontainers/type/TestcontainersDatabaseTypeTest.java
@@ -21,7 +21,6 @@ import 
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import org.junit.jupiter.api.Test;
 
-import java.util.Arrays;
 import java.util.Collections;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -31,7 +30,7 @@ class TestcontainersDatabaseTypeTest {
     
     @Test
     void assertGetJdbcUrlPrefixes() {
-        assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-ClickHouse").getJdbcUrlPrefixes(), is(Arrays.asList("jdbc:tc:clickhouse:", 
"jdbc:tc:shardingsphere0clickhouse:")));
+        assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-ClickHouse").getJdbcUrlPrefixes(), 
is(Collections.singletonList("jdbc:tc:clickhouse:")));
         assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-MariaDB").getJdbcUrlPrefixes(), 
is(Collections.singleton("jdbc:tc:mariadb:")));
         assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-MySQL").getJdbcUrlPrefixes(), is(Collections.singleton("jdbc:tc:mysql:")));
         assertThat(TypedSPILoader.getService(DatabaseType.class, 
"TC-Oracle").getJdbcUrlPrefixes(), 
is(Collections.singleton("jdbc:tc:oracle:")));
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 621f0ad33a9..4e119f34a54 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
@@ -3,6 +3,18 @@
   "includes":[{
     "condition":{"typeReachable":"com.clickhouse.logging.LoggerFactory"},
     "pattern":"\\QMETA-INF/services/com.clickhouse.logging.LoggerFactory\\E"
+  }, {
+    
"condition":{"typeReachable":"com.clickhouse.client.ClickHouseRequestManager"},
+    
"pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseRequestManager\\E"
+  }, {
+    
"condition":{"typeReachable":"com.clickhouse.data.ClickHouseDataStreamFactory"},
+    
"pattern":"\\QMETA-INF/services/com.clickhouse.data.ClickHouseDataStreamFactory\\E"
+  }, {
+    "condition":{"typeReachable":"com.clickhouse.jdbc.JdbcTypeMapping"},
+    "pattern":"\\QMETA-INF/services/com.clickhouse.jdbc.JdbcTypeMapping\\E"
+  }, {
+    
"condition":{"typeReachable":"com.clickhouse.client.internal.jpountz.lz4.LZ4JNI"},
+    
"pattern":"\\Qcom/clickhouse/client/internal/jpountz/util/linux/amd64/liblz4-java.so\\E"
   }]},
   "bundles":[]
 }
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 326a51669d3..57bbb3722e1 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
@@ -60,7 +60,7 @@
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.standalone.persist.StandaloneMetaDataManagerPersistService"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.metadata.persist.service.version.MetaDataVersionPersistService"},
   "name":"[Lcom.zaxxer.hikari.util.ConcurrentBag$IConcurrentBagEntry;"
 },
 {
@@ -176,6 +176,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",
@@ -468,11 +473,6 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.net.Socket"
 },
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-  "name":"java.net.SocketException",
-  "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
-},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.expr.groovy.GroovyInlineExpressionParser"},
   "name":"java.net.URI"
@@ -1103,7 +1103,7 @@
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.DatabaseConnector"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.backend.connector.StandardDatabaseConnector"},
   
"name":"org.apache.shardingsphere.encrypt.checker.sql.EncryptSupportedSQLCheckersBuilder",
   "methods":[{"name":"<init>","parameterTypes":[] }]
 },
@@ -2070,7 +2070,7 @@
   "queryAllDeclaredMethods":true
 },
 {
-  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.listener.DatabaseMetaDataChangedListener$$Lambda/0x00007f490fb226e0"},
+  
"condition":{"typeReachable":"org.apache.shardingsphere.mode.manager.cluster.listener.DatabaseMetaDataChangedListener$$Lambda/0x00007ffa47b22d00"},
   
"name":"org.apache.shardingsphere.mode.manager.cluster.event.subscriber.dispatch.MetaDataChangedSubscriber"
 },
 {
@@ -2417,10 +2417,6 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
   
"name":"org.apache.shardingsphere.readwritesplitting.checker.ReadwriteSplittingRuleConfigurationChecker"
 },
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datanode.DataNodes"},
-  
"name":"org.apache.shardingsphere.readwritesplitting.datanode.ReadwriteSplittingDataNodeBuilder"
-},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
   
"name":"org.apache.shardingsphere.readwritesplitting.distsql.handler.update.AlterReadwriteSplittingRuleExecutor"
@@ -2548,10 +2544,6 @@
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader"},
   
"name":"org.apache.shardingsphere.shadow.checker.ShadowRuleConfigurationChecker"
 },
-{
-  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datanode.DataNodes"},
-  "name":"org.apache.shardingsphere.shadow.datanode.ShadowDataNodeBuilder"
-},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.frontend.mysql.command.query.text.query.MySQLComQueryPacketExecutor"},
   
"name":"org.apache.shardingsphere.shadow.distsql.handler.update.AlterDefaultShadowAlgorithmExecutor"
@@ -3602,5 +3594,10 @@
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.proxy.initializer.BootstrapInitializer"},
   
"name":"org.apache.shardingsphere.transaction.yaml.config.YamlTransactionRuleConfigurationCustomizer"
+},
+{
+  
"condition":{"typeReachable":"org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine"},
+  "name":"sun.security.provider.SecureRandom",
+  "methods":[{"name":"<init>","parameterTypes":[] }, 
{"name":"<init>","parameterTypes":["java.security.SecureRandomParameters"] }]
 }
 ]
\ 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/resource-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/generated-reachability-metadata/resource-config.json
index 5a97d455368..fe5faec8d6a 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
@@ -78,15 +78,6 @@
   }, {
     
"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.datasource.ShardingSphereDataSource"},
-    
"pattern":"\\QMETA-INF/services/com.clickhouse.client.ClickHouseRequestManager\\E"
-  }, {
-    
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-    
"pattern":"\\QMETA-INF/services/com.clickhouse.data.ClickHouseDataStreamFactory\\E"
-  }, {
-    
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-    "pattern":"\\QMETA-INF/services/com.clickhouse.jdbc.JdbcTypeMapping\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.mode.repository.cluster.etcd.EtcdRepository"},
     "pattern":"\\QMETA-INF/services/io.grpc.LoadBalancerProvider\\E"
@@ -222,9 +213,6 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.props.TypedPropertyValue"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.database.core.type.DatabaseType\\E"
-  }, {
-    
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datanode.DataNodes"},
-    
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.datanode.DataNodeBuilder\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolDestroyer"},
     
"pattern":"\\QMETA-INF/services/org.apache.shardingsphere.infra.datasource.pool.destroyer.DataSourcePoolActiveDetector\\E"
@@ -393,9 +381,6 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.transaction.xa.atomikos.manager.AtomikosTransactionManagerProvider"},
     "pattern":"\\Qcom/atomikos/icatch/provider/imp/transactions.properties\\E"
-  }, {
-    
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-    
"pattern":"\\Qcom/clickhouse/client/internal/jpountz/util/linux/amd64/liblz4-java.so\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
     "pattern":"\\Qcontainer-license-acceptance.txt\\E"
@@ -1971,9 +1956,6 @@
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
     "pattern":"\\Qtest-native/sql/seata-script-client-at-postgresql.sql\\E"
-  }, {
-    
"condition":{"typeReachable":"org.apache.shardingsphere.driver.jdbc.core.datasource.ShardingSphereDataSource"},
-    "pattern":"\\Qtest-native/sql/test-native-databases-clickhouse.sql\\E"
   }, {
     
"condition":{"typeReachable":"org.apache.shardingsphere.infra.url.classpath.ClassPathURLLoader"},
     "pattern":"\\Qtest-native/yaml/jdbc/databases/clickhouse.yaml\\E"
diff --git 
a/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json
 
b/infra/reachability-metadata/src/main/resources/META-INF/native-image/org.apache.shardingsphere/shardingsphere-infra-reachability-metadata/reflect-config.json
index 44550b54ae6..fbbf2084006 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
@@ -188,6 +188,11 @@
   "name":"java.lang.management.MemoryUsage",
   "allPublicMethods": true
 },
+{
+  "condition":{"typeReachable":"java.net.SocketException"},
+  "name":"java.net.SocketException",
+  "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
+},
 {
   
"condition":{"typeReachable":"org.apache.shardingsphere.infra.util.yaml.YamlEngine"},
   
"name":"org.apache.shardingsphere.encrypt.yaml.config.rule.YamlEncryptColumnItemRuleConfiguration",
diff --git a/pom.xml b/pom.xml
index 6fc13b629b5..0964f7d6b07 100644
--- a/pom.xml
+++ b/pom.xml
@@ -142,7 +142,7 @@
         <hamcrest.version>3.0</hamcrest.version>
         <mockito.version>4.11.0</mockito.version>
         <awaitility.version>4.2.2</awaitility.version>
-        <testcontainers.version>1.20.1</testcontainers.version>
+        <testcontainers.version>1.20.3</testcontainers.version>
         <commons-csv.version>1.9.0</commons-csv.version>
         
         <graal-sdk.version>24.1.0</graal-sdk.version>
@@ -1001,7 +1001,7 @@
     
     <profiles>
         <profile>
-            <id>jdk11-22</id>
+            <id>jdk11+</id>
             <activation>
                 <jdk>[11,)</jdk>
             </activation>
diff --git a/test/native/native-image-filter/extra-filter.json 
b/test/native/native-image-filter/extra-filter.json
index 23de743f07c..c4df37dbd77 100644
--- a/test/native/native-image-filter/extra-filter.json
+++ b/test/native/native-image-filter/extra-filter.json
@@ -4,6 +4,8 @@
 
     {"excludeClasses": "android.app.**"},
     {"excludeClasses": "com.**"},
+    {"includeClasses": "com.oracle.svm.core.**"},
+    {"includeClasses": "com.sun.management.**"},
     {"excludeClasses": "ch.qos.logback.**"},
     {"excludeClasses": "groovy.**"},
     {"excludeClasses": "io.**"},
diff --git 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/testcontainers/ClickHouseProvider.java
 
b/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/testcontainers/ClickHouseProvider.java
deleted file mode 100644
index b65fe9ae6b6..00000000000
--- 
a/test/native/src/test/java/org/apache/shardingsphere/test/natived/commons/testcontainers/ClickHouseProvider.java
+++ /dev/null
@@ -1,47 +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.
- */
-
-package org.apache.shardingsphere.test.natived.commons.testcontainers;
-
-import org.testcontainers.clickhouse.ClickHouseContainer;
-import org.testcontainers.containers.JdbcDatabaseContainer;
-import org.testcontainers.containers.JdbcDatabaseContainerProvider;
-import org.testcontainers.utility.DockerImageName;
-
-/**
- * TODO Initialize a new JdbcDatabaseContainerProvider implementation due to
- *  <a 
href="https://github.com/testcontainers/testcontainers-java/issues/8736";>testcontainers/testcontainers-java#8736</a>
 not closed.
- */
-public final class ClickHouseProvider extends JdbcDatabaseContainerProvider {
-    
-    /**
-     * The reason for using `0` as the separator is that the 
URL_MATCHING_PATTERN of the {@link 
org.testcontainers.jdbc.ConnectionUrl.Patterns}
-     * sets {@code "(?<databaseType>[a-z0-9]+)"} for the `databaseType` part.
-     *
-     * @param databaseType {@link String}
-     * @return <code>true</code> when provider can handle this database type, 
else <code>false</code>.
-     */
-    @Override
-    public boolean supports(final String databaseType) {
-        return "shardingsphere0clickhouse".equals(databaseType);
-    }
-    
-    @Override
-    public JdbcDatabaseContainer<?> newInstance(final String tag) {
-        return new 
ClickHouseContainer(DockerImageName.parse("clickhouse/clickhouse-server").withTag(tag));
-    }
-}
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 70100f992b1..7bbbfd50605 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
@@ -20,30 +20,69 @@ package 
org.apache.shardingsphere.test.natived.jdbc.databases;
 import com.zaxxer.hikari.HikariConfig;
 import com.zaxxer.hikari.HikariDataSource;
 import org.apache.shardingsphere.test.natived.commons.TestShardingService;
+import org.awaitility.Awaitility;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.EnabledInNativeImage;
+import org.testcontainers.clickhouse.ClickHouseContainer;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 
 import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.DriverManager;
 import java.sql.SQLException;
+import java.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;
 import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
+/**
+ * Cannot use testcontainers-java style jdbcURL for Clickhouse Server due to 
unresolved
+ * <a 
href="https://github.com/testcontainers/testcontainers-java/issues/8736";>testcontainers/testcontainers-java#8736</a>.
+ */
+@SuppressWarnings("SqlNoDataSourceInspection")
 @EnabledInNativeImage
+@Testcontainers
 class ClickHouseTest {
     
+    @Container
+    public static final ClickHouseContainer CONTAINER = new 
ClickHouseContainer("clickhouse/clickhouse-server:24.6.2.17");
+    
+    private static final String SYSTEM_PROP_KEY_PREFIX = 
"fixture.test-native.yaml.database.clickhouse.";
+    
+    private String jdbcUrlPrefix;
+    
     private TestShardingService testShardingService;
     
+    @BeforeAll
+    static void beforeAll() {
+        assertThat(System.getProperty(SYSTEM_PROP_KEY_PREFIX + 
"ds0.jdbc-url"), is(nullValue()));
+        assertThat(System.getProperty(SYSTEM_PROP_KEY_PREFIX + 
"ds1.jdbc-url"), is(nullValue()));
+        assertThat(System.getProperty(SYSTEM_PROP_KEY_PREFIX + 
"ds2.jdbc-url"), is(nullValue()));
+    }
+    
+    @AfterAll
+    static void afterAll() {
+        System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url");
+        System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url");
+        System.clearProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url");
+    }
+    
     /**
      * TODO Need to fix `shardingsphere-parser-sql-clickhouse` module to use 
{@link TestShardingService#cleanEnvironment()}
      *      after {@link TestShardingService#processSuccessInClickHouse()}.
-     *
      */
     @Test
-    void assertShardingInLocalTransactions() {
-        HikariConfig config = new HikariConfig();
-        
config.setDriverClassName("org.apache.shardingsphere.driver.ShardingSphereDriver");
-        
config.setJdbcUrl("jdbc:shardingsphere:classpath:test-native/yaml/jdbc/databases/clickhouse.yaml");
-        DataSource dataSource = new HikariDataSource(config);
+    void assertShardingInLocalTransactions() throws SQLException {
+        jdbcUrlPrefix = "jdbc:ch://localhost:" + CONTAINER.getMappedPort(8123) 
+ "/";
+        DataSource dataSource = createDataSource();
         testShardingService = new TestShardingService(dataSource);
         assertDoesNotThrow(() -> 
testShardingService.processSuccessInClickHouse());
     }
@@ -63,4 +102,71 @@ class ClickHouseTest {
         testShardingService.getOrderItemRepository().truncateTable();
         testShardingService.getAddressRepository().truncateTable();
     }
+    
+    private Connection openConnection(final String databaseName) throws 
SQLException {
+        Properties props = new Properties();
+        props.setProperty("user", CONTAINER.getUsername());
+        props.setProperty("password", CONTAINER.getPassword());
+        return DriverManager.getConnection(jdbcUrlPrefix + databaseName, 
props);
+    }
+    
+    private DataSource createDataSource() throws SQLException {
+        
Awaitility.await().atMost(Duration.ofMinutes(1L)).ignoreExceptions().until(() 
-> {
+            openConnection(CONTAINER.getDatabaseName()).close();
+            return true;
+        });
+        try (
+                Connection connection = 
openConnection(CONTAINER.getDatabaseName());
+                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");
+        }
+        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/clickhouse.yaml?placeholder-type=system_props");
+        System.setProperty(SYSTEM_PROP_KEY_PREFIX + "ds0.jdbc-url", 
jdbcUrlPrefix + "demo_ds_0");
+        System.setProperty(SYSTEM_PROP_KEY_PREFIX + "ds1.jdbc-url", 
jdbcUrlPrefix + "demo_ds_1");
+        System.setProperty(SYSTEM_PROP_KEY_PREFIX + "ds2.jdbc-url", 
jdbcUrlPrefix + "demo_ds_2");
+        return new HikariDataSource(config);
+    }
+    
+    private void initTable(final String databaseName) {
+        try (
+                Connection connection = openConnection(databaseName);
+                Statement statement = connection.createStatement()) {
+            statement.executeUpdate("create table IF NOT EXISTS t_order\n"
+                    + "(\n"
+                    + "    order_id   Int64 NOT NULL DEFAULT rand(),\n"
+                    + "    order_type Int32,\n"
+                    + "    user_id    Int32 NOT NULL,\n"
+                    + "    address_id Int64 NOT NULL,\n"
+                    + "    status     String\n"
+                    + ") engine = MergeTree\n"
+                    + "      primary key (order_id)\n"
+                    + "      order by (order_id)");
+            statement.executeUpdate("create table IF NOT EXISTS t_order_item\n"
+                    + "(\n"
+                    + "    order_item_id Int64 NOT NULL DEFAULT rand(),\n"
+                    + "    order_id      Int64 NOT NULL,\n"
+                    + "    user_id       Int32 NOT NULL,\n"
+                    + "    phone         String,\n"
+                    + "    status        String\n"
+                    + ") engine = MergeTree\n"
+                    + "      primary key (order_item_id)\n"
+                    + "      order by (order_item_id)");
+            statement.executeUpdate("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");
+        } catch (final SQLException exception) {
+            throw new RuntimeException(exception);
+        }
+    }
 }
diff --git 
a/test/native/src/test/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider
 
b/test/native/src/test/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider
deleted file mode 100644
index ff304ca3b3e..00000000000
--- 
a/test/native/src/test/resources/META-INF/services/org.testcontainers.containers.JdbcDatabaseContainerProvider
+++ /dev/null
@@ -1,18 +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.
-#
-
-org.apache.shardingsphere.test.natived.commons.testcontainers.ClickHouseProvider
diff --git 
a/test/native/src/test/resources/test-native/sql/test-native-databases-clickhouse.sql
 
b/test/native/src/test/resources/test-native/sql/test-native-databases-clickhouse.sql
deleted file mode 100644
index 09c5647a739..00000000000
--- 
a/test/native/src/test/resources/test-native/sql/test-native-databases-clickhouse.sql
+++ /dev/null
@@ -1,49 +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.
---
-
-create table IF NOT EXISTS t_order
-(
-    order_id   Int64 NOT NULL DEFAULT rand(),
-    order_type Int32,
-    user_id    Int32 NOT NULL,
-    address_id Int64 NOT NULL,
-    status     String
-) engine = MergeTree
-      primary key (order_id)
-      order by (order_id);
-
-create table IF NOT EXISTS t_order_item
-(
-    order_item_id Int64 NOT NULL DEFAULT rand(),
-    order_id      Int64 NOT NULL,
-    user_id       Int32 NOT NULL,
-    phone         String,
-    status        String
-) engine = MergeTree
-      primary key (order_item_id)
-      order by (order_item_id);
-
-CREATE TABLE IF NOT EXISTS t_address
-(
-    address_id   BIGINT NOT NULL,
-    address_name VARCHAR(100) NOT NULL,
-    PRIMARY      KEY (address_id)
-);
-
-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/clickhouse.yaml
 
b/test/native/src/test/resources/test-native/yaml/jdbc/databases/clickhouse.yaml
index bd2aa641351..5d62805858a 100644
--- 
a/test/native/src/test/resources/test-native/yaml/jdbc/databases/clickhouse.yaml
+++ 
b/test/native/src/test/resources/test-native/yaml/jdbc/databases/clickhouse.yaml
@@ -20,20 +20,25 @@ mode:
   repository:
     type: JDBC
 
-# TODO See the JavaDoc for 
`org.apache.shardingsphere.test.natived.jdbc.commons.testcontainers.ClickHouseProvider`.
 dataSources:
   ds_0:
     dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: org.testcontainers.jdbc.ContainerDatabaseDriver
-    jdbcUrl: 
jdbc:tc:shardingsphere0clickhouse:24.6.2.17://test-native-databases-clickhouse/demo_ds_0?TC_INITSCRIPT=test-native/sql/test-native-databases-clickhouse.sql
+    driverClassName: com.clickhouse.jdbc.ClickHouseDriver
+    jdbcUrl: $${fixture.test-native.yaml.database.clickhouse.ds0.jdbc-url::}
+    username: default
+    password:
   ds_1:
     dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: org.testcontainers.jdbc.ContainerDatabaseDriver
-    jdbcUrl: 
jdbc:tc:shardingsphere0clickhouse:24.6.2.17://test-native-databases-clickhouse/demo_ds_1?TC_INITSCRIPT=test-native/sql/test-native-databases-clickhouse.sql
+    driverClassName: com.clickhouse.jdbc.ClickHouseDriver
+    jdbcUrl: $${fixture.test-native.yaml.database.clickhouse.ds1.jdbc-url::}
+    username: default
+    password:
   ds_2:
     dataSourceClassName: com.zaxxer.hikari.HikariDataSource
-    driverClassName: org.testcontainers.jdbc.ContainerDatabaseDriver
-    jdbcUrl: 
jdbc:tc:shardingsphere0clickhouse:24.6.2.17://test-native-databases-clickhouse/demo_ds_2?TC_INITSCRIPT=test-native/sql/test-native-databases-clickhouse.sql
+    driverClassName: com.clickhouse.jdbc.ClickHouseDriver
+    jdbcUrl: $${fixture.test-native.yaml.database.clickhouse.ds2.jdbc-url::}
+    username: default
+    password:
 
 rules:
   - !SHARDING

Reply via email to