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

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


The following commit(s) were added to refs/heads/master by this push:
     new 91b15183e7 [enhance][external]enhance and fix external cases 0807 
(#22689)
91b15183e7 is described below

commit 91b15183e7a4bf1c2e733637aa5532e94976c09b
Author: zhangguoqiang <18372634...@163.com>
AuthorDate: Tue Aug 8 10:53:08 2023 +0800

    [enhance][external]enhance and fix external cases 0807 (#22689)
    
    enhance and fix external cases 0807
---
 regression-test/conf/regression-conf.groovy        |  2 ++
 .../hive/test_hive_schema_evolution.out            |  0
 .../pipeline/external/conf/regression-conf.groovy  |  2 ++
 .../pipeline/p0/conf/regression-conf.groovy        |  2 ++
 .../pipeline/p1/conf/regression-conf.groovy        |  2 ++
 .../external_table_p0/es/test_es_query.groovy      | 13 ++++----
 .../es/test_es_query_nereids.groovy                | 13 ++++----
 .../es/test_es_query_no_http_url.groovy            | 13 ++++----
 .../hive/hive_tpch_sf1_orc.groovy                  |  5 +--
 .../hive/hive_tpch_sf1_parquet.groovy              |  6 ++--
 .../hive/test_different_column_orders.groovy       |  6 ++--
 .../hive/test_different_parquet_types.groovy       | 23 +++++++-------
 .../external_table_p0/hive/test_hive_orc.groovy    |  8 +++--
 .../external_table_p0/hive/test_hive_other.groovy  |  6 ++--
 .../hive/test_hive_parquet.groovy                  |  6 ++--
 .../hive/test_hive_partitions.groovy               |  6 ++--
 .../hive/test_hive_schema_evolution.groovy         |  8 +++--
 .../hive/test_transactional_hive.groovy            |  6 ++--
 .../jdbc/test_clickhouse_jdbc_catalog.groovy       | 12 ++++++--
 .../jdbc/test_doris_jdbc_catalog.groovy            |  6 +++-
 .../jdbc/test_jdbc_query_mysql.groovy              | 11 +++++--
 .../jdbc/test_jdbc_query_pg.groovy                 | 12 ++++++--
 .../jdbc/test_mysql_jdbc_catalog.groovy            | 36 +++++++++++++---------
 .../jdbc/test_mysql_jdbc_catalog_nereids.groovy    | 16 +++++++---
 .../jdbc/test_oracle_jdbc_catalog.groovy           | 28 ++++++++++-------
 .../jdbc/test_pg_jdbc_catalog.groovy               | 32 +++++++++++--------
 .../jdbc/test_sqlserver_jdbc_catalog.groovy        | 10 ++++--
 .../external_table_p0/tvf/test_backends_tvf.groovy |  2 +-
 .../external_table_p0/tvf/test_catalogs_tvf.groovy |  2 +-
 .../tvf/test_create_view_from_tvf.groovy           |  3 +-
 .../tvf/test_frontends_tvf.groovy                  |  2 +-
 .../external_table_p0/tvf/test_hdfs_tvf.groovy     |  6 ++--
 .../external_table_p0/tvf/test_numbers.groovy      |  2 +-
 .../es/test_external_catalog_es.groovy             |  2 +-
 .../external_table_p2/es/test_external_es.groovy   |  2 +-
 .../hive/test_complex_types.groovy                 |  2 +-
 .../hive/test_external_brown.groovy                |  2 +-
 .../hive/test_external_catalog_glue_table.groovy   |  2 +-
 .../hive/test_external_catalog_hive.groovy         |  2 +-
 .../test_external_catalog_hive_partition.groovy    |  2 +-
 .../hive/test_external_credit_data.groovy          |  2 +-
 .../hive/test_external_github.groovy               |  2 +-
 .../hive/test_external_yandex.groovy               |  2 +-
 .../hive/test_external_yandex_nereids.groovy       |  2 +-
 .../hive/test_hive_analyze_db.groovy               |  2 +-
 .../hive/test_hive_default_partition.groovy        |  2 +-
 .../hive/test_hive_partition_location.groovy       |  2 +-
 .../hive/test_hive_remove_partition.groovy         |  2 +-
 .../hive/test_hive_same_db_table_name.groovy       |  2 +-
 .../hive/test_hive_special_char_partition.groovy   |  2 +-
 .../hive/test_hive_statistic.groovy                |  2 +-
 .../hive/test_hive_statistic_cache.groovy          |  2 +-
 .../hive/test_hive_to_array.groovy                 |  2 +-
 .../hive/test_hive_to_date.groovy                  |  2 +-
 .../hive/test_mixed_par_locations.groovy           |  2 +-
 .../external_table_p2/hive/test_multi_langs.groovy |  2 +-
 .../hive/test_select_count_optimize.groovy         |  2 +-
 .../hive/test_upper_case_column_name.groovy        |  2 +-
 .../external_table_p2/hive/test_wide_table.groovy  |  2 +-
 .../iceberg/iceberg_partition_upper_case.groovy    |  2 +-
 .../iceberg_partition_upper_case_nereids.groovy    |  2 +-
 .../iceberg/iceberg_schema_evolution.groovy        |  2 +-
 ...iceberg_schema_evolution_iceberg_catalog.groovy |  2 +-
 .../test_external_catalog_iceberg_partition.groovy |  2 +-
 .../iceberg/test_external_catalog_icebergv2.groovy |  2 +-
 .../test_external_catalog_icebergv2_nereids.groovy |  2 +-
 .../mysql/test_external_catalog_mysql.groovy       |  7 +++--
 .../mysql/test_external_resource_mysql.groovy      |  7 +++--
 .../test_external_resource_mysql_nereids.groovy    |  7 +++--
 .../external_table_p2/pg/test_external_pg.groovy   |  7 +++--
 .../pg/test_external_pg_nereids.groovy             |  7 +++--
 .../external_table_p2/tvf/test_tvf_p2.groovy       |  2 +-
 72 files changed, 252 insertions(+), 158 deletions(-)

diff --git a/regression-test/conf/regression-conf.groovy 
b/regression-test/conf/regression-conf.groovy
index 437a6e6340..9f080ca4bf 100644
--- a/regression-test/conf/regression-conf.groovy
+++ b/regression-test/conf/regression-conf.groovy
@@ -141,3 +141,5 @@ max_failure_num=0
 
 // used for exporting test
 s3ExportBucketName = ""
+
+externalEnvIp="127.0.0.1"
diff --git 
a/regression-test/data/external_table_p2/hive/test_hive_schema_evolution.out 
b/regression-test/data/external_table_p0/hive/test_hive_schema_evolution.out
similarity index 100%
rename from 
regression-test/data/external_table_p2/hive/test_hive_schema_evolution.out
rename to 
regression-test/data/external_table_p0/hive/test_hive_schema_evolution.out
diff --git a/regression-test/pipeline/external/conf/regression-conf.groovy 
b/regression-test/pipeline/external/conf/regression-conf.groovy
index c6593865e1..7de29b74bd 100644
--- a/regression-test/pipeline/external/conf/regression-conf.groovy
+++ b/regression-test/pipeline/external/conf/regression-conf.groovy
@@ -99,3 +99,5 @@ s3BucketName = "doris-build-hk-1308700295"
 s3Region = "ap-hongkong"
 
 max_failure_num=50
+
+externalEnvIp="127.0.0.1"
diff --git a/regression-test/pipeline/p0/conf/regression-conf.groovy 
b/regression-test/pipeline/p0/conf/regression-conf.groovy
index 3d81a63fad..86fc3ba38b 100644
--- a/regression-test/pipeline/p0/conf/regression-conf.groovy
+++ b/regression-test/pipeline/p0/conf/regression-conf.groovy
@@ -95,3 +95,5 @@ s3BucketName = "doris-build-hk-1308700295"
 s3Region = "ap-hongkong"
 
 max_failure_num=50
+
+externalEnvIp="127.0.0.1"
diff --git a/regression-test/pipeline/p1/conf/regression-conf.groovy 
b/regression-test/pipeline/p1/conf/regression-conf.groovy
index a9fca37619..e88d865a62 100644
--- a/regression-test/pipeline/p1/conf/regression-conf.groovy
+++ b/regression-test/pipeline/p1/conf/regression-conf.groovy
@@ -57,3 +57,5 @@ s3BucketName = "doris-build-hk-1308700295"
 s3Region = "ap-hongkong"
 
 max_failure_num=0
+
+externalEnvIp="127.0.0.1"
diff --git a/regression-test/suites/external_table_p0/es/test_es_query.groovy 
b/regression-test/suites/external_table_p0/es/test_es_query.groovy
index bf76bdf3a1..a4e5d9705d 100644
--- a/regression-test/suites/external_table_p0/es/test_es_query.groovy
+++ b/regression-test/suites/external_table_p0/es/test_es_query.groovy
@@ -15,10 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_es_query", "p0,external,es") {
+suite("test_es_query", "p0,external,es,external_docker,external_docker_es") {
 
     String enabled = context.config.otherConfigs.get("enableEsTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
         String es_6_port = context.config.otherConfigs.get("es_6_port")
         String es_7_port = context.config.otherConfigs.get("es_7_port")
         String es_8_port = context.config.otherConfigs.get("es_8_port")
@@ -34,7 +35,7 @@ suite("test_es_query", "p0,external,es") {
             create catalog es6
             properties (
                 "type"="es",
-                "elasticsearch.hosts"="http://127.0.0.1:$es_6_port";,
+                "elasticsearch.hosts"="http://${externalEnvIp}:$es_6_port";,
                 "elasticsearch.nodes_discovery"="false",
                 "elasticsearch.keyword_sniff"="true"
             );
@@ -43,7 +44,7 @@ suite("test_es_query", "p0,external,es") {
         // test new create catalog syntax
         sql """create catalog if not exists es7 properties(
             "type"="es",
-            "hosts"="http://127.0.0.1:$es_7_port";,
+            "hosts"="http://${externalEnvIp}:$es_7_port";,
             "nodes_discovery"="false",
             "enable_keyword_sniff"="true"
         );
@@ -51,7 +52,7 @@ suite("test_es_query", "p0,external,es") {
 
         sql """create catalog if not exists es8 properties(
             "type"="es",
-            "hosts"="http://127.0.0.1:$es_8_port";,
+            "hosts"="http://${externalEnvIp}:$es_8_port";,
             "nodes_discovery"="false",
             "enable_keyword_sniff"="true"
         );
@@ -87,7 +88,7 @@ suite("test_es_query", "p0,external,es") {
             ) ENGINE=ELASTICSEARCH
             COMMENT 'ELASTICSEARCH'
             PROPERTIES (
-                "hosts" = "http://127.0.0.1:$es_8_port";,
+                "hosts" = "http://${externalEnvIp}:$es_8_port";,
                 "index" = "test1",
                 "nodes_discovery"="false",
                 "enable_keyword_sniff"="true",
@@ -127,7 +128,7 @@ suite("test_es_query", "p0,external,es") {
             ) ENGINE=ELASTICSEARCH
             COMMENT 'ELASTICSEARCH'
             PROPERTIES (
-                "hosts" = "http://127.0.0.1:$es_8_port";,
+                "hosts" = "http://${externalEnvIp}:$es_8_port";,
                 "index" = "test1",
                 "nodes_discovery"="false",
                 "enable_keyword_sniff"="true",
diff --git 
a/regression-test/suites/external_table_p0/es/test_es_query_nereids.groovy 
b/regression-test/suites/external_table_p0/es/test_es_query_nereids.groovy
index 4921ced70f..96ea2e7812 100644
--- a/regression-test/suites/external_table_p0/es/test_es_query_nereids.groovy
+++ b/regression-test/suites/external_table_p0/es/test_es_query_nereids.groovy
@@ -15,10 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_es_query_nereids", "p0") {
+suite("test_es_query_nereids", 
"p0,external,es,external_docker,external_docker_es") {
 
     String enabled = context.config.otherConfigs.get("enableEsTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
         String es_6_port = context.config.otherConfigs.get("es_6_port")
         String es_7_port = context.config.otherConfigs.get("es_7_port")
         String es_8_port = context.config.otherConfigs.get("es_8_port")
@@ -36,7 +37,7 @@ suite("test_es_query_nereids", "p0") {
             create catalog es6_nereids
             properties (
                 "type"="es",
-                "elasticsearch.hosts"="http://127.0.0.1:$es_6_port";,
+                "elasticsearch.hosts"="http://${externalEnvIp}:$es_6_port";,
                 "elasticsearch.nodes_discovery"="false",
                 "elasticsearch.keyword_sniff"="true"
             );
@@ -45,7 +46,7 @@ suite("test_es_query_nereids", "p0") {
         // test new create catalog syntax
         sql """create catalog if not exists es7_nereids properties(
             "type"="es",
-            "hosts"="http://127.0.0.1:$es_7_port";,
+            "hosts"="http://${externalEnvIp}:$es_7_port";,
             "nodes_discovery"="false",
             "enable_keyword_sniff"="true"
         );
@@ -53,7 +54,7 @@ suite("test_es_query_nereids", "p0") {
 
         sql """create catalog if not exists es8_nereids properties(
             "type"="es",
-            "hosts"="http://127.0.0.1:$es_8_port";,
+            "hosts"="http://${externalEnvIp}:$es_8_port";,
             "nodes_discovery"="false",
             "enable_keyword_sniff"="true"
         );
@@ -88,7 +89,7 @@ suite("test_es_query_nereids", "p0") {
             ) ENGINE=ELASTICSEARCH
             COMMENT 'ELASTICSEARCH'
             PROPERTIES (
-                "hosts" = "http://127.0.0.1:$es_8_port";,
+                "hosts" = "http://${externalEnvIp}:$es_8_port";,
                 "index" = "test1",
                 "nodes_discovery"="false",
                 "enable_keyword_sniff"="true",
@@ -125,7 +126,7 @@ suite("test_es_query_nereids", "p0") {
             ) ENGINE=ELASTICSEARCH
             COMMENT 'ELASTICSEARCH'
             PROPERTIES (
-                "hosts" = "http://127.0.0.1:$es_8_port";,
+                "hosts" = "http://${externalEnvIp}:$es_8_port";,
                 "index" = "test1",
                 "nodes_discovery"="false",
                 "enable_keyword_sniff"="true",
diff --git 
a/regression-test/suites/external_table_p0/es/test_es_query_no_http_url.groovy 
b/regression-test/suites/external_table_p0/es/test_es_query_no_http_url.groovy
index 3f712fe778..07c39ccf11 100644
--- 
a/regression-test/suites/external_table_p0/es/test_es_query_no_http_url.groovy
+++ 
b/regression-test/suites/external_table_p0/es/test_es_query_no_http_url.groovy
@@ -15,10 +15,11 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_es_query_no_http_url", "p0") {
+suite("test_es_query_no_http_url", 
"p0,external,es,external_docker,external_docker_es") {
 
     String enabled = context.config.otherConfigs.get("enableEsTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
         String es_6_port = context.config.otherConfigs.get("es_6_port")
         String es_7_port = context.config.otherConfigs.get("es_7_port")
         String es_8_port = context.config.otherConfigs.get("es_8_port")
@@ -34,7 +35,7 @@ suite("test_es_query_no_http_url", "p0") {
             create catalog es6
             properties (
                 "type"="es",
-                "elasticsearch.hosts"="127.0.0.1:$es_6_port",
+                "elasticsearch.hosts"="${externalEnvIp}:$es_6_port",
                 "elasticsearch.nodes_discovery"="false",
                 "elasticsearch.keyword_sniff"="true"
             );
@@ -43,7 +44,7 @@ suite("test_es_query_no_http_url", "p0") {
         // test new create catalog syntax
         sql """create catalog if not exists es7 properties(
             "type"="es",
-            "hosts"="127.0.0.1:$es_7_port",
+            "hosts"="${externalEnvIp}:$es_7_port",
             "nodes_discovery"="false",
             "enable_keyword_sniff"="true"
         );
@@ -51,7 +52,7 @@ suite("test_es_query_no_http_url", "p0") {
 
         sql """create catalog if not exists es8 properties(
             "type"="es",
-            "hosts"="127.0.0.1:$es_8_port",
+            "hosts"="${externalEnvIp}:$es_8_port",
             "nodes_discovery"="false",
             "enable_keyword_sniff"="true"
         );
@@ -87,7 +88,7 @@ suite("test_es_query_no_http_url", "p0") {
             ) ENGINE=ELASTICSEARCH
             COMMENT 'ELASTICSEARCH'
             PROPERTIES (
-                "hosts" = "127.0.0.1:$es_7_port",
+                "hosts" = "${externalEnvIp}:$es_7_port",
                 "index" = "test1",
                 "nodes_discovery"="false",
                 "enable_keyword_sniff"="true",
@@ -125,7 +126,7 @@ suite("test_es_query_no_http_url", "p0") {
             ) ENGINE=ELASTICSEARCH
             COMMENT 'ELASTICSEARCH'
             PROPERTIES (
-                "hosts" = "127.0.0.1:$es_8_port",
+                "hosts" = "${externalEnvIp}:$es_8_port",
                 "index" = "test1",
                 "nodes_discovery"="false",
                 "enable_keyword_sniff"="true",
diff --git 
a/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_orc.groovy 
b/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_orc.groovy
index c7faf2e030..a3b3e0d893 100644
--- a/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_orc.groovy
+++ b/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_orc.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_catalog_hive_orc", "p0,external,hive") {
+suite("test_catalog_hive_orc", 
"p0,external,hive,external_docker,external_docker_hive") {
 
     def q01 = { 
         sql """set exec_mem_limit=8589934592"""
@@ -801,11 +801,12 @@ order by
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String hms_port = context.config.otherConfigs.get("hms_port")
         String catalog_name = "test_catalog_hive_orc"
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
 
         sql """drop catalog if exists ${catalog_name}"""
         sql """create catalog if not exists ${catalog_name} properties (
             "type"="hms",
-            'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+            'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
         );"""
         sql """switch ${catalog_name}"""
         sql """use `tpch1_orc`"""
diff --git 
a/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_parquet.groovy 
b/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_parquet.groovy
index 04a28609a9..38abb94384 100644
--- a/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_parquet.groovy
+++ b/regression-test/suites/external_table_p0/hive/hive_tpch_sf1_parquet.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_catalog_hive_parquet", "p0,external,hive") {
+suite("test_catalog_hive_parquet", 
"p0,external,hive,external_docker,external_docker_hive") {
 
     def q01 = { 
         sql """set exec_mem_limit=8589934592"""
@@ -801,11 +801,13 @@ order by
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String hms_port = context.config.otherConfigs.get("hms_port")
         String catalog_name = "test_catalog_hive_parquet"
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+
 
         sql """drop catalog if exists ${catalog_name}"""
         sql """create catalog if not exists ${catalog_name} properties (
             "type"="hms",
-            'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+            'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
         );"""
         sql """switch ${catalog_name}"""
         sql """use `tpch1_parquet`"""
diff --git 
a/regression-test/suites/external_table_p0/hive/test_different_column_orders.groovy
 
b/regression-test/suites/external_table_p0/hive/test_different_column_orders.groovy
index 3fcb5a3c3f..31b0ca3cc0 100644
--- 
a/regression-test/suites/external_table_p0/hive/test_different_column_orders.groovy
+++ 
b/regression-test/suites/external_table_p0/hive/test_different_column_orders.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_different_column_orders", "p0") {
+suite("test_different_column_orders", 
"p0,external,hive,external_docker,external_docker_hive") {
     def q_parquet = {
         qt_q01 """
         select * from test_different_column_orders_parquet order by id;
@@ -43,10 +43,12 @@ suite("test_different_column_orders", "p0") {
         try {
             String hms_port = context.config.otherConfigs.get("hms_port")
             String catalog_name = "test_different_column_orders"
+            String externalEnvIp = 
context.config.otherConfigs.get("externalEnvIp")
+
             sql """drop catalog if exists ${catalog_name}"""
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
diff --git 
a/regression-test/suites/external_table_p0/hive/test_different_parquet_types.groovy
 
b/regression-test/suites/external_table_p0/hive/test_different_parquet_types.groovy
index e26864e66c..844d3e3c96 100644
--- 
a/regression-test/suites/external_table_p0/hive/test_different_parquet_types.groovy
+++ 
b/regression-test/suites/external_table_p0/hive/test_different_parquet_types.groovy
@@ -1,4 +1,3 @@
-package suites.external_catalog_p0.hive
 // 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
@@ -16,10 +15,12 @@ package suites.external_catalog_p0.hive
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_different_parquet_types", "p0") {
+suite("test_different_parquet_types", 
"p0,external,hive,external_docker,external_docker_hive") {
 
     String hms_port = context.config.otherConfigs.get("hms_port")
     String hdfs_port = context.config.otherConfigs.get("hdfs_port")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+
 
     // problem 01 :in hive execute "select * from delta_byte_array limit 10" 
,there will be some valid data return,but doris query return nothing
     def q01 = {
@@ -34,7 +35,7 @@ suite("test_different_parquet_types", "p0") {
             logger.info("record res" + res1_2.toString())
 
         def res1_3 = sql """
-            select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_byte_array/delta_byte_array.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+            select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_byte_array/delta_byte_array.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
             """ 
             logger.info("record res" + res1_3.toString())
     }
@@ -57,7 +58,7 @@ suite("test_different_parquet_types", "p0") {
 
         //return nothing,but no exception
         def res3_3 = sql """
-            select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_binary_packed/delta_binary_packed.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+            select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_binary_packed/delta_binary_packed.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
             """ 
             logger.info("record res" + res3_3.toString())
     }
@@ -75,7 +76,7 @@ suite("test_different_parquet_types", "p0") {
         logger.info("record res" + res4_2.toString())
 
         def res4_3 = sql """
-             select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_encoding_required_column/delta_encoding_required_column.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+             select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_encoding_required_column/delta_encoding_required_column.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
              """ 
         logger.info("record res" + res4_3.toString())
     }
@@ -94,7 +95,7 @@ suite("test_different_parquet_types", "p0") {
         logger.info("record res" + res5_2.toString())
 
          def res5_3 = sql """
-        select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_encoding_optional_column/delta_encoding_optional_column.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+        select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/delta_encoding_optional_column/delta_encoding_optional_column.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
         """ 
         logger.info("record res" + res5_3.toString())
     }
@@ -113,7 +114,7 @@ suite("test_different_parquet_types", "p0") {
         logger.info("record res" + res6_2.toString())
 
         def res6_3 = sql """
-        select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/datapage_v1_snappy_compressed_checksum/datapage_v1_snappy_compressed_checksum.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+        select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/datapage_v1_snappy_compressed_checksum/datapage_v1_snappy_compressed_checksum.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
         """ 
         logger.info("record res" + res6_3.toString())
 
@@ -132,7 +133,7 @@ suite("test_different_parquet_types", "p0") {
         logger.info("record res" + res7_2.toString())
 
          def res7_3 = sql """
-        select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/overflow_i16_page_cnt/overflow_i16_page_cnt.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+        select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/overflow_i16_page_cnt/overflow_i16_page_cnt.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
         """ 
         logger.info("record res" + res7_3.toString())
     }
@@ -151,7 +152,7 @@ suite("test_different_parquet_types", "p0") {
         logger.info("record res" + res8_2.toString())
 
         def res8_3 = sql """
-        select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/alltypes_tiny_pages/alltypes_tiny_pages.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+        select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/alltypes_tiny_pages/alltypes_tiny_pages.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
         """ 
         logger.info("record res" + res8_3.toString())
     }
@@ -169,7 +170,7 @@ suite("test_different_parquet_types", "p0") {
         logger.info("record res" + res9_2.toString())
 
          def res9_3 = sql """
-        select * from hdfs(\"uri" = 
\"hdfs://127.0.0.1:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/alltypes_tiny_pages_plain/alltypes_tiny_pages_plain.parquet\",\"fs.defaultFS\"
 = \"hdfs://127.0.0.1:${hdfs_port}\",\"format\" = \"parquet\") limit 10
+        select * from hdfs(\"uri" = 
\"hdfs://${externalEnvIp}:${hdfs_port}/user/doris/preinstalled_data/different_types_parquet/alltypes_tiny_pages_plain/alltypes_tiny_pages_plain.parquet\",\"fs.defaultFS\"
 = \"hdfs://${externalEnvIp}:${hdfs_port}\",\"format\" = \"parquet\") limit 10
         """ 
         logger.info("record res" + res9_3.toString())
     }
@@ -185,7 +186,7 @@ suite("test_different_parquet_types", "p0") {
 
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
diff --git a/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy 
b/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy
index ad53436665..e971d82340 100644
--- a/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy
+++ b/regression-test/suites/external_table_p0/hive/test_hive_orc.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_orc", "all_types,external,hive") {
+suite("test_hive_orc", 
"all_types,p0,external,hive,external_docker,external_docker_hive") {
     // Ensure that all types are parsed correctly
     def select_top50 = {
         qt_select_top50 """select * from orc_all_types order by int_col desc 
limit 50;"""
@@ -71,10 +71,12 @@ suite("test_hive_orc", "all_types,external,hive") {
         try {
             String hms_port = context.config.otherConfigs.get("hms_port")
             String catalog_name = "hive_test_orc"
+            String externalEnvIp = 
context.config.otherConfigs.get("externalEnvIp")
+
             sql """drop catalog if exists ${catalog_name}"""
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
@@ -91,7 +93,7 @@ suite("test_hive_orc", "all_types,external,hive") {
             sql """
                 create catalog if not exists ${catalog_name} properties (
                     "type"="hms",
-                    'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                    'hive.metastore.uris' = 
'thrift://${externalEnvIp}:${hms_port}'
                 );
             """
             sql """use `${catalog_name}`.`default`"""
diff --git 
a/regression-test/suites/external_table_p0/hive/test_hive_other.groovy 
b/regression-test/suites/external_table_p0/hive/test_hive_other.groovy
index f87ff337b2..b562da294c 100644
--- a/regression-test/suites/external_table_p0/hive/test_hive_other.groovy
+++ b/regression-test/suites/external_table_p0/hive/test_hive_other.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_other", "p0,external,hive") {
+suite("test_hive_other", 
"p0,external,hive,external_docker,external_docker_hive") {
 
     def q01 = {
         qt_q24 """ select name, count(1) as c from student group by name order 
by c desc;"""
@@ -54,12 +54,14 @@ suite("test_hive_other", "p0,external,hive") {
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String hms_port = context.config.otherConfigs.get("hms_port")
         String hdfs_port = context.config.otherConfigs.get("hdfs_port")
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+
         String catalog_name = "hive_test_other"
 
         sql """drop catalog if exists ${catalog_name}"""
         sql """create catalog if not exists ${catalog_name} properties (
             "type"="hms",
-            'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+            'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
         );"""
 
         // test user's grants on external catalog
diff --git 
a/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy 
b/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy
index 9c8529fac1..d2cd82281e 100644
--- a/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy
+++ b/regression-test/suites/external_table_p0/hive/test_hive_parquet.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_parquet", "p0,external,hive") {
+suite("test_hive_parquet", 
"p0,external,hive,external_docker,external_docker_hive") {
     def q01 = {
         qt_q01 """
         select * from partition_table order by l_orderkey, l_partkey, 
l_suppkey;
@@ -144,10 +144,12 @@ suite("test_hive_parquet", "p0,external,hive") {
         try {
             String hms_port = context.config.otherConfigs.get("hms_port")
             String catalog_name = "hive_test_parquet"
+            String externalEnvIp = 
context.config.otherConfigs.get("externalEnvIp")
+
             sql """drop catalog if exists ${catalog_name}"""
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
diff --git 
a/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy 
b/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy
index 50499afbce..8eae4e82e6 100644
--- a/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy
+++ b/regression-test/suites/external_table_p0/hive/test_hive_partitions.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_partitions", "p0,external,hive") {
+suite("test_hive_partitions", 
"p0,external,hive,external_docker,external_docker_hive") {
     def q01 = {
         qt_q01 """
         select id, data from table_with_pars where dt_par = '2023-02-01' order 
by id;
@@ -42,10 +42,12 @@ suite("test_hive_partitions", "p0,external,hive") {
         try {
             String hms_port = context.config.otherConfigs.get("hms_port")
             String catalog_name = "hive_test_partitions"
+            String externalEnvIp = 
context.config.otherConfigs.get("externalEnvIp")
+
             sql """drop catalog if exists ${catalog_name}"""
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_schema_evolution.groovy
 
b/regression-test/suites/external_table_p0/hive/test_hive_schema_evolution.groovy
similarity index 87%
rename from 
regression-test/suites/external_table_p2/hive/test_hive_schema_evolution.groovy
rename to 
regression-test/suites/external_table_p0/hive/test_hive_schema_evolution.groovy
index 5a97cc01c0..23dcfea991 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_schema_evolution.groovy
+++ 
b/regression-test/suites/external_table_p0/hive/test_hive_schema_evolution.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_schema_evolution", "p0,external,hive") {
+suite("test_hive_schema_evolution", 
"p0,external,hive,external_docker,external_docker_hive") {
     def q_text = {
         qt_q01 """
         select * from schema_evo_test_text order by id;
@@ -53,14 +53,16 @@ suite("test_hive_schema_evolution", "p0,external,hive") {
     }
 
     String enabled = context.config.otherConfigs.get("enableHiveTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         try {
             String hms_port = context.config.otherConfigs.get("hms_port")
-            String catalog_name = "test_hive_schema_evolution"
+            String catalog_name = 
"suites.external_table_p0.hive.test_hive_schema_evolution"
             sql """drop catalog if exists ${catalog_name}"""
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
diff --git 
a/regression-test/suites/external_table_p0/hive/test_transactional_hive.groovy 
b/regression-test/suites/external_table_p0/hive/test_transactional_hive.groovy
index d15f49749f..6c8d4d100b 100644
--- 
a/regression-test/suites/external_table_p0/hive/test_transactional_hive.groovy
+++ 
b/regression-test/suites/external_table_p0/hive/test_transactional_hive.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_transactional_hive", "p0") {
+suite("test_transactional_hive", 
"p0,external,hive,external_docker,external_docker_hive") {
     def q01 = {
         qt_q01 """
         select * from orc_full_acid order by id;
@@ -44,10 +44,12 @@ suite("test_transactional_hive", "p0") {
         try {
             String hms_port = context.config.otherConfigs.get("hms_port")
             String catalog_name = "test_transactional_hive"
+            String externalEnvIp = 
context.config.otherConfigs.get("externalEnvIp")
+
             sql """drop catalog if exists ${catalog_name}"""
             sql """create catalog if not exists ${catalog_name} properties (
                 "type"="hms",
-                'hive.metastore.uris' = 'thrift://127.0.0.1:${hms_port}'
+                'hive.metastore.uris' = 'thrift://${externalEnvIp}:${hms_port}'
             );"""
             sql """use `${catalog_name}`.`default`"""
 
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy
 
b/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy
index 8675d04931..909a57ffcf 100644
--- 
a/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy
+++ 
b/regression-test/suites/external_table_p0/jdbc/test_clickhouse_jdbc_catalog.groovy
@@ -15,24 +15,30 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_clickhouse_jdbc_catalog", "p0") {
+suite("test_clickhouse_jdbc_catalog", 
"p0,external,clickhouse,external_docker,external_docker_clickhouse") {
     String enabled = context.config.otherConfigs.get("enableJdbcTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String catalog_name = "clickhouse_catalog";
         String internal_db_name = "regression_test_jdbc_catalog_p0";
         String ex_db_name = "doris_test";
         String clickhouse_port = 
context.config.otherConfigs.get("clickhouse_22_port");
+        String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+        String s3_endpoint = getS3Endpoint()
+        String bucket = getS3BucketName()
+        String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/clickhouse-jdbc-0.4.2-all.jar";
 
         String inDorisTable = "doris_in_tb";
 
+        sql """create database if not exists ${internal_db_name}; """
+
         sql """ drop catalog if exists ${catalog_name} """
 
         sql """ create catalog if not exists ${catalog_name} properties(
                     "type"="jdbc",
                     "user"="default",
                     "password"="123456",
-                    "jdbc_url" = 
"jdbc:clickhouse://127.0.0.1:${clickhouse_port}/doris_test",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/clickhouse-jdbc-0.4.2-all.jar";,
+                    "jdbc_url" = 
"jdbc:clickhouse://${externalEnvIp}:${clickhouse_port}/doris_test",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = "com.clickhouse.jdbc.ClickHouseDriver"
         );"""
 
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy 
b/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy
index 6dde9d1e9d..5d4aea50af 100644
--- 
a/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy
+++ 
b/regression-test/suites/external_table_p0/jdbc/test_doris_jdbc_catalog.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_doris_jdbc_catalog", "p0") {
+suite("test_doris_jdbc_catalog", 
"p0,external,doris,external_docker,external_docker_doris") {
     qt_sql """select current_catalog()"""
 
     String jdbcUrl = context.config.jdbcUrl + 
"&sessionVariables=return_object_data_as_binary=true"
@@ -24,6 +24,8 @@ suite("test_doris_jdbc_catalog", "p0") {
     String s3_endpoint = getS3Endpoint()
     String bucket = getS3BucketName()
     String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+
 
     String resource_name = "jdbc_resource_catalog_doris"
     String catalog_name = "doris_jdbc_catalog";
@@ -32,6 +34,8 @@ suite("test_doris_jdbc_catalog", "p0") {
     String inDorisTable = "doris_in_tb";
     String hllTable = "bowen_hll_test"
 
+    sql """create database if not exists ${internal_db_name}; """
+
     qt_sql """select current_catalog()"""
     sql """drop catalog if exists ${catalog_name} """
 
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_mysql.groovy 
b/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_mysql.groovy
index 475b6c37dd..64831e839a 100644
--- a/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_mysql.groovy
+++ b/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_mysql.groovy
@@ -15,9 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_jdbc_query_mysql", "p0,external,mysql") {
+suite("test_jdbc_query_mysql", 
"p0,external,mysql,external_docker,external_docker_mysql") {
 
     String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
+
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String mysql_57_port = context.config.otherConfigs.get("mysql_57_port")
         String jdbcResourceMysql57 = "jdbc_resource_mysql_57_x"
@@ -37,8 +42,8 @@ suite("test_jdbc_query_mysql", "p0,external,mysql") {
                 "type"="jdbc",
                 "user"="root",
                 "password"="123456",
-                "jdbc_url"="jdbc:mysql://127.0.0.1:$mysql_57_port/doris_test",
-                
"driver_url"="https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+                
"jdbc_url"="jdbc:mysql://${externalEnvIp}:$mysql_57_port/doris_test",
+                "driver_url"="${driver_url}",
                 "driver_class"="com.mysql.cj.jdbc.Driver"
             );
             """
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_pg.groovy 
b/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_pg.groovy
index cc48990f0b..add09d8da2 100644
--- a/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_pg.groovy
+++ b/regression-test/suites/external_table_p0/jdbc/test_jdbc_query_pg.groovy
@@ -17,9 +17,15 @@
 
 import java.nio.charset.Charset;
 
-suite("test_jdbc_query_pg", "p0,external,pg") {
+suite("test_jdbc_query_pg", 
"p0,external,pg,external_docker,external_docker_pg") {
 
     String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/postgresql-42.5.0.jar";
+
+
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String pg_14_port = context.config.otherConfigs.get("pg_14_port")
         String jdbcResourcePg14 = "jdbc_resource_pg_14"
@@ -43,8 +49,8 @@ suite("test_jdbc_query_pg", "p0,external,pg") {
                 "type"="jdbc",
                 "user"="postgres",
                 "password"="123456",
-                
"jdbc_url"="jdbc:postgresql://127.0.0.1:$pg_14_port/postgres?currentSchema=doris_test",
-                
"driver_url"="https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+                
"jdbc_url"="jdbc:postgresql://${externalEnvIp}:$pg_14_port/postgres?currentSchema=doris_test",
+                "driver_url"="${driver_url}",
                 "driver_class"="org.postgresql.Driver"
             );
             """
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy 
b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
index 25287c5f1f..cc16f91345 100644
--- 
a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
+++ 
b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog.groovy
@@ -15,10 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
+suite("test_mysql_jdbc_catalog", 
"p0,external,mysql,external_docker,external_docker_mysql") {
     qt_sql """select current_catalog()"""
 
     String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String catalog_name = "mysql_jdbc_catalog";
         String internal_db_name = "regression_test_jdbc_catalog_p0";
@@ -52,14 +56,16 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
         String dt = "dt";
         String dt_null = "dt_null";
 
+        sql """create database if not exists ${internal_db_name}; """
+
         sql """drop catalog if exists ${catalog_name} """
 
         sql """create catalog if not exists ${catalog_name} properties(
             "type"="jdbc",
             "user"="root",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:mysql://127.0.0.1:${mysql_port}/doris_test?useSSL=false&zeroDateTimeBehavior=convertToNull",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false&zeroDateTimeBehavior=convertToNull",
+            "driver_url" = "${driver_url}",
             "driver_class" = "com.mysql.cj.jdbc.Driver"
         );"""
 
@@ -135,8 +141,8 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="root",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:mysql://127.0.0.1:${mysql_port}/doris_test?useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "com.mysql.cj.jdbc.Driver",
             "only_specified_database" = "true"
         );"""
@@ -152,8 +158,8 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="root",
             "password"="123456",
-            "jdbc_url" = "jdbc:mysql://127.0.0.1:${mysql_port}?useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}?useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "com.mysql.cj.jdbc.Driver",
             "only_specified_database" = "true",
             "include_database_list" = "doris_test"
@@ -170,8 +176,8 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="root",
             "password"="123456",
-            "jdbc_url" = "jdbc:mysql://127.0.0.1:${mysql_port}?useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}?useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "com.mysql.cj.jdbc.Driver",
             "only_specified_database" = "true",
             "exclude_database_list" = "doris_test"
@@ -188,8 +194,8 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="root",
             "password"="123456",
-            "jdbc_url" = "jdbc:mysql://127.0.0.1:${mysql_port}?useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}?useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "com.mysql.cj.jdbc.Driver",
             "only_specified_database" = "true",
             "include_database_list" = "doris_test",
@@ -207,8 +213,8 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "jdbc.user"="root",
             "jdbc.password"="123456",
-            "jdbc.jdbc_url" = 
"jdbc:mysql://127.0.0.1:${mysql_port}/doris_test?useSSL=false",
-            "jdbc.driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc.jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false",
+            "jdbc.driver_url" = "${driver_url}",
             "jdbc.driver_class" = "com.mysql.cj.jdbc.Driver");
         """
         sql """ switch ${catalog_name} """
@@ -226,8 +232,8 @@ suite("test_mysql_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "jdbc.user"="root",
             "jdbc.password"="123456",
-            "jdbc.jdbc_url" = 
"jdbc:mysql://127.0.0.1:${mysql_port}/doris_test?useSSL=false",
-            "jdbc.driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc.jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false",
+            "jdbc.driver_url" = "${driver_url}",
             "jdbc.driver_class" = "com.mysql.cj.jdbc.Driver");
         """
         qt_mysql_view """ select * from  view_catalog.doris_test.mysql_view 
order by col_1;"""
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog_nereids.groovy
 
b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog_nereids.groovy
index 396c5bb7b9..71191e6fa6 100644
--- 
a/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog_nereids.groovy
+++ 
b/regression-test/suites/external_table_p0/jdbc/test_mysql_jdbc_catalog_nereids.groovy
@@ -15,8 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_mysql_jdbc_catalog_nereids", "p0") {
+suite("test_mysql_jdbc_catalog_nereids", 
"p0,external,mysql,external_docker,external_docker_mysql") {
     String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String catalog_name = "mysql_jdbc_catalog_nereids";
         String internal_db_name = "regression_test_jdbc_catalog_p0";
@@ -47,6 +51,8 @@ suite("test_mysql_jdbc_catalog_nereids", "p0") {
         String test_insert = "test_insert";
         String test_insert2 = "test_insert2";
 
+        sql """create database if not exists ${internal_db_name}; """
+
         sql """ADMIN SET FRONTEND CONFIG ("enable_decimal_conversion" = 
"true");"""
         sql """drop catalog if exists ${catalog_name} """
 
@@ -57,8 +63,8 @@ suite("test_mysql_jdbc_catalog_nereids", "p0") {
             "type"="jdbc",
             "user"="root",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:mysql://127.0.0.1:${mysql_port}/doris_test?useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "com.mysql.cj.jdbc.Driver"
         );"""
         
@@ -126,8 +132,8 @@ suite("test_mysql_jdbc_catalog_nereids", "p0") {
             "type"="jdbc",
             "jdbc.user"="root",
             "jdbc.password"="123456",
-            "jdbc.jdbc_url" = 
"jdbc:mysql://127.0.0.1:${mysql_port}/doris_test?useSSL=false",
-            "jdbc.driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mysql-connector-java-8.0.25.jar";,
+            "jdbc.jdbc_url" = 
"jdbc:mysql://${externalEnvIp}:${mysql_port}/doris_test?useSSL=false",
+            "jdbc.driver_url" = "${driver_url}",
             "jdbc.driver_class" = "com.mysql.cj.jdbc.Driver");
         """
         sql """ switch ${catalog_name} """
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy 
b/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy
index ce85b618c0..a8f371db94 100644
--- 
a/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy
+++ 
b/regression-test/suites/external_table_p0/jdbc/test_oracle_jdbc_catalog.groovy
@@ -15,8 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_oracle_jdbc_catalog", "p0") {
+suite("test_oracle_jdbc_catalog", 
"p0,external,oracle,external_docker,external_docker_oracle") {
     String enabled = context.config.otherConfigs.get("enableJdbcTest");
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/ojdbc8.jar";
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String catalog_name = "oracle_catalog";
         String internal_db_name = "regression_test_jdbc_catalog_p0";
@@ -28,14 +32,16 @@ suite("test_oracle_jdbc_catalog", "p0") {
 
         String inDorisTable = "doris_in_tb";
 
+        sql """create database if not exists ${internal_db_name}; """
+
         sql """drop catalog if exists ${catalog_name} """
 
         sql """create catalog if not exists ${catalog_name} properties(
                     "type"="jdbc",
                     "user"="doris_test",
                     "password"="123456",
-                    "jdbc_url" = 
"jdbc:oracle:thin:@127.0.0.1:${oracle_port}:${SID}",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/ojdbc8.jar";,
+                    "jdbc_url" = 
"jdbc:oracle:thin:@${externalEnvIp}:${oracle_port}:${SID}",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = "oracle.jdbc.driver.OracleDriver"
         );"""
 
@@ -92,8 +98,8 @@ suite("test_oracle_jdbc_catalog", "p0") {
                     "type"="jdbc",
                     "user"="doris_test",
                     "password"="123456",
-                    "jdbc_url" = 
"jdbc:oracle:thin:@127.0.0.1:${oracle_port}:${SID}",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/ojdbc8.jar";,
+                    "jdbc_url" = 
"jdbc:oracle:thin:@${externalEnvIp}:${oracle_port}:${SID}",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = "oracle.jdbc.driver.OracleDriver",
                     "only_specified_database" = "true"
         );"""
@@ -107,8 +113,8 @@ suite("test_oracle_jdbc_catalog", "p0") {
                     "type"="jdbc",
                     "user"="doris_test",
                     "password"="123456",
-                    "jdbc_url" = 
"jdbc:oracle:thin:@127.0.0.1:${oracle_port}:${SID}",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/ojdbc8.jar";,
+                    "jdbc_url" = 
"jdbc:oracle:thin:@${externalEnvIp}:${oracle_port}:${SID}",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = "oracle.jdbc.driver.OracleDriver",
                     "only_specified_database" = "true",
                     "include_database_list" = "${ex_db_name}"
@@ -123,8 +129,8 @@ suite("test_oracle_jdbc_catalog", "p0") {
                     "type"="jdbc",
                     "user"="doris_test",
                     "password"="123456",
-                    "jdbc_url" = 
"jdbc:oracle:thin:@127.0.0.1:${oracle_port}:${SID}",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/ojdbc8.jar";,
+                    "jdbc_url" = 
"jdbc:oracle:thin:@${externalEnvIp}:${oracle_port}:${SID}",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = "oracle.jdbc.driver.OracleDriver",
                     "lower_case_table_names" = "true"
         );"""
@@ -142,8 +148,8 @@ suite("test_oracle_jdbc_catalog", "p0") {
                     "type"="jdbc",
                     "user"="doris_test",
                     "password"="123456",
-                    "jdbc_url" = 
"jdbc:oracle:thin:@127.0.0.1:${oracle_port}:${SID}",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/ojdbc8.jar";,
+                    "jdbc_url" = 
"jdbc:oracle:thin:@${externalEnvIp}:${oracle_port}:${SID}",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = "oracle.jdbc.driver.OracleDriver",
                     "lower_case_table_names" = "true"
         );"""
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy 
b/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy
index a4076475b4..730f5b34c1 100644
--- a/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy
+++ b/regression-test/suites/external_table_p0/jdbc/test_pg_jdbc_catalog.groovy
@@ -15,8 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_pg_jdbc_catalog", "p0,external,mysql") {
+suite("test_pg_jdbc_catalog", 
"p0,external,pg,external_docker,external_docker_pg") {
     String enabled = context.config.otherConfigs.get("enableJdbcTest")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/postgresql-42.5.0.jar";
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String catalog_name = "pg_jdbc_catalog";
         String internal_db_name = "regression_test_jdbc_catalog_p0";
@@ -26,14 +30,16 @@ suite("test_pg_jdbc_catalog", "p0,external,mysql") {
         String inDorisTable = "doris_in_tb";
         String test_insert = "test_insert";
 
+        sql """create database if not exists ${internal_db_name}; """
+
         sql """drop catalog if exists ${catalog_name} """
 
         sql """create catalog if not exists ${catalog_name} properties(
             "type"="jdbc",
             "user"="postgres",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:postgresql://127.0.0.1:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+            "jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "org.postgresql.Driver"
         );"""
 
@@ -96,8 +102,8 @@ suite("test_pg_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="postgres",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:postgresql://127.0.0.1:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+            "jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "org.postgresql.Driver",
             "only_specified_database" = "true"
         );"""
@@ -111,8 +117,8 @@ suite("test_pg_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="postgres",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:postgresql://127.0.0.1:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+            "jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "org.postgresql.Driver",
             "only_specified_database" = "true",
             "include_database_list" = "doris_test"
@@ -127,8 +133,8 @@ suite("test_pg_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="postgres",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:postgresql://127.0.0.1:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+            "jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "org.postgresql.Driver",
             "only_specified_database" = "true",
             "exclude_database_list" = "doris_test"
@@ -143,8 +149,8 @@ suite("test_pg_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "user"="postgres",
             "password"="123456",
-            "jdbc_url" = 
"jdbc:postgresql://127.0.0.1:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
-            "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+            "jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?currentSchema=doris_test&useSSL=false",
+            "driver_url" = "${driver_url}",
             "driver_class" = "org.postgresql.Driver",
             "only_specified_database" = "true",
             "include_database_list" = "doris_test",
@@ -159,8 +165,8 @@ suite("test_pg_jdbc_catalog", "p0,external,mysql") {
             "type"="jdbc",
             "jdbc.user"="postgres",
             "jdbc.password"="123456",
-            "jdbc.jdbc_url" = 
"jdbc:postgresql://127.0.0.1:${pg_port}/postgres?useSSL=false&currentSchema=doris_test",
-            "jdbc.driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/postgresql-42.5.0.jar";,
+            "jdbc.jdbc_url" = 
"jdbc:postgresql://${externalEnvIp}:${pg_port}/postgres?useSSL=false&currentSchema=doris_test",
+            "jdbc.driver_url" = "${driver_url}",
             "jdbc.driver_class" = "org.postgresql.Driver");
         """
 
diff --git 
a/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy
 
b/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy
index 65fa53695e..4fab5316a9 100644
--- 
a/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy
+++ 
b/regression-test/suites/external_table_p0/jdbc/test_sqlserver_jdbc_catalog.groovy
@@ -15,8 +15,12 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_sqlserver_jdbc_catalog", "p0") {
+suite("test_sqlserver_jdbc_catalog", 
"p0,external,sqlserver,external_docker,external_docker_sqlserver") {
     String enabled = context.config.otherConfigs.get("enableJdbcTest");
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+    String s3_endpoint = getS3Endpoint()
+    String bucket = getS3BucketName()
+    String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mssql-jdbc-11.2.3.jre8.jar";
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String catalog_name = "sqlserver_catalog";
         String internal_db_name = "regression_test_jdbc_catalog_p0";
@@ -31,8 +35,8 @@ suite("test_sqlserver_jdbc_catalog", "p0") {
                     "type"="jdbc",
                     "user"="SA",
                     "password"="Doris123456",
-                    "jdbc_url" = 
"jdbc:sqlserver://127.0.0.1:${sqlserver_port};encrypt=false;DataBaseName=doris_test",
-                    "driver_url" = 
"https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/jdbc_driver/mssql-jdbc-11.2.3.jre8.jar";,
+                    "jdbc_url" = 
"jdbc:sqlserver://${externalEnvIp}:${sqlserver_port};encrypt=false;DataBaseName=doris_test",
+                    "driver_url" = "${driver_url}",
                     "driver_class" = 
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
         );"""
 
diff --git 
a/regression-test/suites/external_table_p0/tvf/test_backends_tvf.groovy 
b/regression-test/suites/external_table_p0/tvf/test_backends_tvf.groovy
index 773e6cfe20..0987f1a308 100644
--- a/regression-test/suites/external_table_p0/tvf/test_backends_tvf.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_backends_tvf.groovy
@@ -16,7 +16,7 @@
 // under the License.
 
 // This suit test the `backends` tvf
-suite("test_backends_tvf") {
+suite("test_backends_tvf","p0,external,tvf,external_docker") {
     List<List<Object>> table =  sql """ select * from backends(); """
     assertTrue(table.size() > 0)
     assertEquals(23, table[0].size)
diff --git 
a/regression-test/suites/external_table_p0/tvf/test_catalogs_tvf.groovy 
b/regression-test/suites/external_table_p0/tvf/test_catalogs_tvf.groovy
index e1a98b0037..aec1a3ccc2 100644
--- a/regression-test/suites/external_table_p0/tvf/test_catalogs_tvf.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_catalogs_tvf.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_catalogs_tvf") {
+suite("test_catalogs_tvf","p0,external,tvf,external_docker") {
     List<List<Object>> table =  sql """ select * from catalogs(); """
     assertTrue(table.size() > 0)
     assertEquals(5, table[0].size)
diff --git 
a/regression-test/suites/external_table_p0/tvf/test_create_view_from_tvf.groovy 
b/regression-test/suites/external_table_p0/tvf/test_create_view_from_tvf.groovy
index c98cfb328e..cca31cab78 100644
--- 
a/regression-test/suites/external_table_p0/tvf/test_create_view_from_tvf.groovy
+++ 
b/regression-test/suites/external_table_p0/tvf/test_create_view_from_tvf.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
- suite("test_create_view_from_tvf") {
+ suite("test_create_view_from_tvf","p0,external,tvf,external_docker") {
     String testViewName = "test_view_from_number"
 
     def create_view = {createViewSql -> 
@@ -105,4 +105,3 @@
     order_qt_subquery1 """ select * from ${testViewName} """
      
  }
- 
\ No newline at end of file
diff --git 
a/regression-test/suites/external_table_p0/tvf/test_frontends_tvf.groovy 
b/regression-test/suites/external_table_p0/tvf/test_frontends_tvf.groovy
index 05f85eb85a..e247f8bdf1 100644
--- a/regression-test/suites/external_table_p0/tvf/test_frontends_tvf.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_frontends_tvf.groovy
@@ -16,7 +16,7 @@
 // under the License.
 
 // This suit test the `frontends` tvf
-suite("test_frontends_tvf") {
+suite("test_frontends_tvf","p0,external,tvf,external_docker") {
     List<List<Object>> table =  sql """ select * from `frontends`(); """
     assertTrue(table.size() > 0)
     assertTrue(table[0].size == 17)
diff --git a/regression-test/suites/external_table_p0/tvf/test_hdfs_tvf.groovy 
b/regression-test/suites/external_table_p0/tvf/test_hdfs_tvf.groovy
index 2ea9b47b5b..06d6c12c14 100644
--- a/regression-test/suites/external_table_p0/tvf/test_hdfs_tvf.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_hdfs_tvf.groovy
@@ -15,12 +15,14 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hdfs_tvf","external,hive") {
+suite("test_hdfs_tvf","external,hive,tvf,external_docker") {
     String hdfs_port = context.config.otherConfigs.get("hdfs_port")
+    String externalEnvIp = context.config.otherConfigs.get("externalEnvIp")
+
     // It's okay to use random `hdfsUser`, but can not be empty.
     def hdfsUserName = "doris"
     def format = "csv"
-    def defaultFS = "hdfs://127.0.0.1:${hdfs_port}"
+    def defaultFS = "hdfs://${externalEnvIp}:${hdfs_port}"
     def uri = ""
 
     String enabled = context.config.otherConfigs.get("enableHiveTest")
diff --git a/regression-test/suites/external_table_p0/tvf/test_numbers.groovy 
b/regression-test/suites/external_table_p0/tvf/test_numbers.groovy
index f7647b178d..1262d61acc 100644
--- a/regression-test/suites/external_table_p0/tvf/test_numbers.groovy
+++ b/regression-test/suites/external_table_p0/tvf/test_numbers.groovy
@@ -16,7 +16,7 @@
  // under the License.
 
 
- suite("test_numbers") {
+ suite("test_numbers","p0,external,external_docker") {
     // Test basic features
     qt_basic1 """ select * from numbers("number" = "1"); """
     qt_basic2 """ select * from numbers("number" = "10"); """
diff --git 
a/regression-test/suites/external_table_p2/es/test_external_catalog_es.groovy 
b/regression-test/suites/external_table_p2/es/test_external_catalog_es.groovy
index ed7f853c97..8ae5d3c04d 100644
--- 
a/regression-test/suites/external_table_p2/es/test_external_catalog_es.groovy
+++ 
b/regression-test/suites/external_table_p2/es/test_external_catalog_es.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import org.postgresql.Driver
-suite("test_external_catalog_es", "p2") {
+suite("test_external_catalog_es", 
"p2,external,es,external_remote,external_remote_es") {
 
     String enabled = context.config.otherConfigs.get("enableExternalEsTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
diff --git 
a/regression-test/suites/external_table_p2/es/test_external_es.groovy 
b/regression-test/suites/external_table_p2/es/test_external_es.groovy
index f5a902a3a7..fcec9b7de3 100644
--- a/regression-test/suites/external_table_p2/es/test_external_es.groovy
+++ b/regression-test/suites/external_table_p2/es/test_external_es.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import org.postgresql.Driver
-suite("test_external_es", "p2") {
+suite("test_external_es", "p2,external,es,external_remote,external_remote_es") 
{
 
     String enabled = context.config.otherConfigs.get("enableExternalEsTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
diff --git 
a/regression-test/suites/external_table_p2/hive/test_complex_types.groovy 
b/regression-test/suites/external_table_p2/hive/test_complex_types.groovy
index c86c8c2562..1036fd8e24 100644
--- a/regression-test/suites/external_table_p2/hive/test_complex_types.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_complex_types.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_complex_types", "p2") {
+suite("test_complex_types", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_brown.groovy 
b/regression-test/suites/external_table_p2/hive/test_external_brown.groovy
index cd8e1ee501..5ac400be64 100644
--- a/regression-test/suites/external_table_p2/hive/test_external_brown.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_external_brown.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_brown", "p2") {
+suite("test_external_brown", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_parquet", "_orc", ""]
     def CPUNetworkUtilization_order = """
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_catalog_glue_table.groovy
 
b/regression-test/suites/external_table_p2/hive/test_external_catalog_glue_table.groovy
index 26b1291ae2..db230f7e8c 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_external_catalog_glue_table.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_external_catalog_glue_table.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_catalog_glue_table", "p2") {
+suite("test_external_catalog_glue_table", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_catalog_hive.groovy
 
b/regression-test/suites/external_table_p2/hive/test_external_catalog_hive.groovy
index e0a56e89c6..d993327d40 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_external_catalog_hive.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_external_catalog_hive.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_catalog_hive", "p2") {
+suite("test_external_catalog_hive", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_catalog_hive_partition.groovy
 
b/regression-test/suites/external_table_p2/hive/test_external_catalog_hive_partition.groovy
index fc6e7fbc23..44f4353ffc 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_external_catalog_hive_partition.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_external_catalog_hive_partition.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_catalog_hive_partition", "p2") {
+suite("test_external_catalog_hive_partition", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_credit_data.groovy
 
b/regression-test/suites/external_table_p2/hive/test_external_credit_data.groovy
index 6652c05473..96478e45ec 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_external_credit_data.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_external_credit_data.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_credit_data", "p2") {
+suite("test_external_credit_data", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_github.groovy 
b/regression-test/suites/external_table_p2/hive/test_external_github.groovy
index 362f1e5f61..edd8e9436c 100644
--- a/regression-test/suites/external_table_p2/hive/test_external_github.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_external_github.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_github", "p2") {
+suite("test_external_github", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_parquet", "_orc"]
 
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_yandex.groovy 
b/regression-test/suites/external_table_p2/hive/test_external_yandex.groovy
index b995247748..05f635945f 100644
--- a/regression-test/suites/external_table_p2/hive/test_external_yandex.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_external_yandex.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_yandex", "p2") {
+suite("test_external_yandex", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_parquet", "_orc", ""]
     def duplicateAggregationKeys = "SELECT URL, EventDate, max(URL) FROM 
hitsSUFFIX WHERE CounterID = 1704509 AND UserID = 4322253409885123546 GROUP BY 
URL, EventDate, EventDate ORDER BY URL, EventDate;"
diff --git 
a/regression-test/suites/external_table_p2/hive/test_external_yandex_nereids.groovy
 
b/regression-test/suites/external_table_p2/hive/test_external_yandex_nereids.groovy
index af1a0e5d15..9874f2cad3 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_external_yandex_nereids.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_external_yandex_nereids.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_yandex_nereids", "p2") {
+suite("test_external_yandex_nereids", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_parquet"]
     def duplicateAggregationKeys = "SELECT URL, EventDate, max(URL) FROM 
hitsSUFFIX WHERE CounterID = 1704509 AND UserID = 4322253409885123546 GROUP BY 
URL, EventDate, EventDate ORDER BY URL, EventDate;"
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_analyze_db.groovy 
b/regression-test/suites/external_table_p2/hive/test_hive_analyze_db.groovy
index fd724a67f8..97148094d7 100644
--- a/regression-test/suites/external_table_p2/hive/test_hive_analyze_db.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_hive_analyze_db.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_analyze_db", "p2") {
+suite("test_hive_analyze_db", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_default_partition.groovy
 
b/regression-test/suites/external_table_p2/hive/test_hive_default_partition.groovy
index 2deddb9d2d..2f91c6dd8d 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_default_partition.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_hive_default_partition.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_default_partition", "p2") {
+suite("test_hive_default_partition", 
"p2,external,hive,external_remote,external_remote_hive") {
     def one_partition1 = """select * from one_partition order by id;"""
     def one_partition2 = """select id, part1 from one_partition where part1 is 
null order by id;"""
     def one_partition3 = """select id from one_partition where part1 is not 
null order by id;"""
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_partition_location.groovy
 
b/regression-test/suites/external_table_p2/hive/test_hive_partition_location.groovy
index 19bfbf36f1..81bc8d8bcf 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_partition_location.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_hive_partition_location.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_partition_location", "p2") {
+suite("test_hive_partition_location", 
"p2,external,hive,external_remote,external_remote_hive") {
     def one_partition1 = """select * from partition_location_1 order by id;"""
     def one_partition2 = """select * from partition_location_1 where 
part='part1';"""
     def one_partition3 = """select * from partition_location_1 where 
part='part2';"""
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_remove_partition.groovy
 
b/regression-test/suites/external_table_p2/hive/test_hive_remove_partition.groovy
index 9a475064dd..8a614eb78a 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_remove_partition.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_hive_remove_partition.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_remove_partition", "p2") {
+suite("test_hive_remove_partition", 
"p2,external,hive,external_remote,external_remote_hive") {
     def case1 = """select * from partition_manual_remove order by id;"""
 
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_same_db_table_name.groovy
 
b/regression-test/suites/external_table_p2/hive/test_hive_same_db_table_name.groovy
index 94c30c6db4..1ae209f53f 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_same_db_table_name.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_hive_same_db_table_name.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_same_db_table_name", "p2") {
+suite("test_hive_same_db_table_name", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_special_char_partition.groovy
 
b/regression-test/suites/external_table_p2/hive/test_hive_special_char_partition.groovy
index cb862469f6..563a3a68c9 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_special_char_partition.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_hive_special_char_partition.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_special_char_partition", "p2") {
+suite("test_hive_special_char_partition", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_statistic.groovy 
b/regression-test/suites/external_table_p2/hive/test_hive_statistic.groovy
index c6df0b0eaa..90da0738a9 100644
--- a/regression-test/suites/external_table_p2/hive/test_hive_statistic.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_hive_statistic.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_statistic", "p2") {
+suite("test_hive_statistic", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_statistic_cache.groovy
 
b/regression-test/suites/external_table_p2/hive/test_hive_statistic_cache.groovy
index d1399ef49b..02d46d4ece 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_hive_statistic_cache.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_hive_statistic_cache.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_statistic_cache", "p2") {
+suite("test_hive_statistic_cache", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_to_array.groovy 
b/regression-test/suites/external_table_p2/hive/test_hive_to_array.groovy
index eb9384e6c8..013d5f1cd2 100644
--- a/regression-test/suites/external_table_p2/hive/test_hive_to_array.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_hive_to_array.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_to_array", "p2") {
+suite("test_hive_to_array", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_hive_to_date.groovy 
b/regression-test/suites/external_table_p2/hive/test_hive_to_date.groovy
index cc2c7d58e2..30edf2c811 100644
--- a/regression-test/suites/external_table_p2/hive/test_hive_to_date.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_hive_to_date.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_hive_to_date", "p2") {
+suite("test_hive_to_date", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_mixed_par_locations.groovy 
b/regression-test/suites/external_table_p2/hive/test_mixed_par_locations.groovy
index ec092f99e7..6c3a13aeba 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_mixed_par_locations.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_mixed_par_locations.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_mixed_par_locations", "p2") {
+suite("test_mixed_par_locations", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_parquet", "_orc"]
     def q1 = """select * from test_mixed_par_locationsSUFFIX order by id;"""
diff --git 
a/regression-test/suites/external_table_p2/hive/test_multi_langs.groovy 
b/regression-test/suites/external_table_p2/hive/test_multi_langs.groovy
index 937fd9039a..af82fe8767 100644
--- a/regression-test/suites/external_table_p2/hive/test_multi_langs.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_multi_langs.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_multi_langs", "p2") {
+suite("test_multi_langs", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_parquet", "_orc", "_text"]
     def q1 = """select * from test_chineseSUFFIX where col1='是' order by id"""
diff --git 
a/regression-test/suites/external_table_p2/hive/test_select_count_optimize.groovy
 
b/regression-test/suites/external_table_p2/hive/test_select_count_optimize.groovy
index 2a95dc4294..074cb4c413 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_select_count_optimize.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_select_count_optimize.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_select_count_optimize", "p2") {
+suite("test_select_count_optimize", 
"p2,external,hive,external_remote,external_remote_hive") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
 
b/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
index 30e78a0512..28d4e6742e 100644
--- 
a/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
+++ 
b/regression-test/suites/external_table_p2/hive/test_upper_case_column_name.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("upper_case_column_name", "p2") {
+suite("upper_case_column_name", 
"p2,external,hive,external_remote,external_remote_hive") {
     def hiveParquet1 = """select * from hive_upper_case_parquet;"""
     def hiveParquet2 = """select * from hive_upper_case_parquet where id=1;"""
     def hiveParquet3 = """select * from hive_upper_case_parquet where id>1;"""
diff --git 
a/regression-test/suites/external_table_p2/hive/test_wide_table.groovy 
b/regression-test/suites/external_table_p2/hive/test_wide_table.groovy
index f7ba390c1f..e8de2380eb 100644
--- a/regression-test/suites/external_table_p2/hive/test_wide_table.groovy
+++ b/regression-test/suites/external_table_p2/hive/test_wide_table.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_wide_table", "p2") {
+suite("test_wide_table", 
"p2,external,hive,external_remote,external_remote_hive") {
 
     def formats = ["_orc"]
     def decimal_test1 = """select col1, col70, col71, col81, col100, col534 
from wide_table1SUFFIX where col1 is not null order by col1 limit 1;"""
diff --git 
a/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case.groovy
 
b/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case.groovy
index b4957495dc..d46d94db76 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("iceberg_partition_upper_case", "p2") {
+suite("iceberg_partition_upper_case", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     def orc_upper1 = """select * from iceberg_partition_upper_case_orc order 
by k1;"""
     def orc_upper2 = """select k1, city from iceberg_partition_upper_case_orc 
order by k1;"""
     def orc_upper3 = """select k1, k2 from iceberg_partition_upper_case_orc 
order by k1;"""
diff --git 
a/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case_nereids.groovy
 
b/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case_nereids.groovy
index 3617c4620b..5293b2800e 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case_nereids.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/iceberg_partition_upper_case_nereids.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("iceberg_partition_upper_case_nereids", "p2") {
+suite("iceberg_partition_upper_case_nereids", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     def orc_upper1 = """select * from iceberg_partition_upper_case_orc order 
by k1;"""
     def orc_upper2 = """select k1, city from iceberg_partition_upper_case_orc 
order by k1;"""
     def orc_upper3 = """select k1, k2 from iceberg_partition_upper_case_orc 
order by k1;"""
diff --git 
a/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution.groovy
 
b/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution.groovy
index 6af7b23dda..182786405a 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("iceberg_schema_evolution", "p2") {
+suite("iceberg_schema_evolution", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     def rename1 = """select * from rename_test order by rename_1;"""
     def rename2 = """select * from rename_test where rename_1 in (3, 4) order 
by rename_1;"""
     def drop1 = """select * from drop_test order by orig1;"""
diff --git 
a/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution_iceberg_catalog.groovy
 
b/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution_iceberg_catalog.groovy
index 52279ed74c..4ef7b534ea 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution_iceberg_catalog.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/iceberg_schema_evolution_iceberg_catalog.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("iceberg_schema_evolution_iceberg_catalog", "p2") {
+suite("iceberg_schema_evolution_iceberg_catalog", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     def rename1 = """select * from rename_test order by rename_1;"""
     def rename2 = """select * from rename_test where rename_1 in (3, 4) order 
by rename_1;"""
     def drop1 = """select * from drop_test order by orig1;"""
diff --git 
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_partition.groovy
 
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_partition.groovy
index 9179f22a06..9429887e8c 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_partition.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_iceberg_partition.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_catalog_iceberg_partition", "p2") {
+suite("test_external_catalog_iceberg_partition", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2.groovy
 
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2.groovy
index 4175259c36..f802f02bce 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_catalog_icebergv2", "p2") {
+suite("test_external_catalog_icebergv2", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
 
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
index ab2d45d547..771e949da1 100644
--- 
a/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
+++ 
b/regression-test/suites/external_table_p2/iceberg/test_external_catalog_icebergv2_nereids.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_external_catalog_icebergv2_nereids", "p2") {
+suite("test_external_catalog_icebergv2_nereids", 
"p2,external,iceberg,external_remote,external_remote_iceberg") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String extHiveHmsHost = 
context.config.otherConfigs.get("extHiveHmsHost")
diff --git 
a/regression-test/suites/external_table_p2/mysql/test_external_catalog_mysql.groovy
 
b/regression-test/suites/external_table_p2/mysql/test_external_catalog_mysql.groovy
index c85641c141..9d1ab73e51 100644
--- 
a/regression-test/suites/external_table_p2/mysql/test_external_catalog_mysql.groovy
+++ 
b/regression-test/suites/external_table_p2/mysql/test_external_catalog_mysql.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import com.mysql.cj.jdbc.Driver
-suite("test_external_catalog_mysql", "p2") {
+suite("test_external_catalog_mysql", 
"p2,external,mysql,external_remote,external_remote_mysql") {
 
     String enabled = context.config.otherConfigs.get("enableExternalMysqlTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
@@ -23,6 +23,9 @@ suite("test_external_catalog_mysql", "p2") {
         String extMysqlPort = context.config.otherConfigs.get("extMysqlPort")
         String extMysqlUser = context.config.otherConfigs.get("extMysqlUser")
         String extMysqlPassword = 
context.config.otherConfigs.get("extMysqlPassword")
+        String s3_endpoint = getS3Endpoint()
+        String bucket = getS3BucketName()
+        String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
         String mysqlDatabaseName01 = "external_mysql_catalog_database01"
         String mysqlCatalogName = "mysql_jdbc"
         String mysqlTableName01 = "lineorder"
@@ -42,7 +45,7 @@ suite("test_external_catalog_mysql", "p2") {
                 "user"="${extMysqlUser}",
                 "password"="${extMysqlPassword}",
                 
"jdbc_url"="jdbc:mysql://${extMysqlHost}:${extMysqlPort}/ssb?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false",
-                
"driver_url"="https://doris-community-bj-1308700295.cos.ap-beijing.myqcloud.com/jdbc_drivers/mysql-connector-java-8.0.25.jar";,
+                "driver_url"="${driver_url}",
                 "driver_class"="com.mysql.cj.jdbc.Driver"
             );
             """
diff --git 
a/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql.groovy
 
b/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql.groovy
index 4a31dab700..20b447a3bd 100644
--- 
a/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql.groovy
+++ 
b/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import com.mysql.cj.jdbc.Driver
-suite("test_external_resource_mysql", "p2") {
+suite("test_external_resource_mysql", 
"p2,external,mysql,external_remote,external_remote_mysql") {
 
     String enabled = context.config.otherConfigs.get("enableExternalMysqlTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
@@ -23,6 +23,9 @@ suite("test_external_resource_mysql", "p2") {
         String extMysqlPort = context.config.otherConfigs.get("extMysqlPort")
         String extMysqlUser = context.config.otherConfigs.get("extMysqlUser")
         String extMysqlPassword = 
context.config.otherConfigs.get("extMysqlPassword")
+        String s3_endpoint = getS3Endpoint()
+        String bucket = getS3BucketName()
+        String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
         String mysqlResourceName = "jdbc_resource_mysql_57_y"
         String mysqlDatabaseName01 = "external_mysql_database_ssb"
         String mysqlTableNameLineOrder = "external_mysql_table_lineorder"
@@ -44,7 +47,7 @@ suite("test_external_resource_mysql", "p2") {
                 "user"="${extMysqlUser}",
                 "password"="${extMysqlPassword}",
                 
"jdbc_url"="jdbc:mysql://${extMysqlHost}:${extMysqlPort}/ssb?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false",
-                
"driver_url"="https://doris-community-bj-1308700295.cos.ap-beijing.myqcloud.com/jdbc_drivers/mysql-connector-java-8.0.25.jar";,
+                "driver_url"="${driver_url}",
                 "driver_class"="com.mysql.cj.jdbc.Driver"
             );
             """
diff --git 
a/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql_nereids.groovy
 
b/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql_nereids.groovy
index 68e7e56b85..86b49bd251 100644
--- 
a/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql_nereids.groovy
+++ 
b/regression-test/suites/external_table_p2/mysql/test_external_resource_mysql_nereids.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import com.mysql.cj.jdbc.Driver
-suite("test_external_resource_mysql_nereids", "p2") {
+suite("test_external_resource_mysql_nereids", 
"p2,external,mysql,external_remote,external_remote_mysql") {
 
     String enabled = context.config.otherConfigs.get("enableExternalMysqlTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
@@ -23,6 +23,9 @@ suite("test_external_resource_mysql_nereids", "p2") {
         String extMysqlPort = context.config.otherConfigs.get("extMysqlPort")
         String extMysqlUser = context.config.otherConfigs.get("extMysqlUser")
         String extMysqlPassword = 
context.config.otherConfigs.get("extMysqlPassword")
+        String s3_endpoint = getS3Endpoint()
+        String bucket = getS3BucketName()
+        String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/mysql-connector-java-8.0.25.jar";
         String mysqlResourceName = "jdbc_resource_mysql_57_n"
         String mysqlDatabaseName01 = "external_mysql_database_ssb_n"
         String mysqlTableNameLineOrder = "external_mysql_table_lineorder_n"
@@ -46,7 +49,7 @@ suite("test_external_resource_mysql_nereids", "p2") {
                 "user"="${extMysqlUser}",
                 "password"="${extMysqlPassword}",
                 
"jdbc_url"="jdbc:mysql://${extMysqlHost}:${extMysqlPort}/ssb?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=false",
-                
"driver_url"="https://doris-community-bj-1308700295.cos.ap-beijing.myqcloud.com/jdbc_drivers/mysql-connector-java-8.0.25.jar";,
+                "driver_url"="${driver_url}",
                 "driver_class"="com.mysql.cj.jdbc.Driver"
             );
             """
diff --git 
a/regression-test/suites/external_table_p2/pg/test_external_pg.groovy 
b/regression-test/suites/external_table_p2/pg/test_external_pg.groovy
index b165f01805..099f2e243c 100644
--- a/regression-test/suites/external_table_p2/pg/test_external_pg.groovy
+++ b/regression-test/suites/external_table_p2/pg/test_external_pg.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import org.postgresql.Driver
-suite("test_external_pg", "p2") {
+suite("test_external_pg", "p2,external,pg,external_remote,external_remote_pg") 
{
 
     String enabled = context.config.otherConfigs.get("enableExternalPgTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
@@ -23,6 +23,9 @@ suite("test_external_pg", "p2") {
         String extPgPort = context.config.otherConfigs.get("extPgPort")
         String extPgUser = context.config.otherConfigs.get("extPgUser")
         String extPgPassword = context.config.otherConfigs.get("extPgPassword")
+        String s3_endpoint = getS3Endpoint()
+        String bucket = getS3BucketName()
+        String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/postgresql-42.5.0.jar";
         String jdbcResourcePg14 = "jdbc_resource_pg_14"
         String jdbcPg14Database1 = "jdbc_pg_14_database1"
         String pgTableNameLineOrder = "jdbc_pg_14_table1"
@@ -42,7 +45,7 @@ suite("test_external_pg", "p2") {
                 "user"="${extPgUser}",
                 "password"="${extPgPassword}",
                 
"jdbc_url"="jdbc:postgresql://${extPgHost}:${extPgPort}/ssb?currentSchema=ssb&useCursorFetch=true",
-                
"driver_url"="https://doris-community-bj-1308700295.cos.ap-beijing.myqcloud.com/jdbc_drivers/postgresql-42.5.0.jar";,
+                "driver_url"="${driver_url}",
                 "driver_class"="org.postgresql.Driver"
             );
             """
diff --git 
a/regression-test/suites/external_table_p2/pg/test_external_pg_nereids.groovy 
b/regression-test/suites/external_table_p2/pg/test_external_pg_nereids.groovy
index 02eb12851f..dc88bd4a22 100644
--- 
a/regression-test/suites/external_table_p2/pg/test_external_pg_nereids.groovy
+++ 
b/regression-test/suites/external_table_p2/pg/test_external_pg_nereids.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 //import org.postgresql.Driver
-suite("test_external_pg_nereids", "p2") {
+suite("test_external_pg_nereids", 
"p2,external,pg,external_remote,external_remote_pg") {
 
     String enabled = context.config.otherConfigs.get("enableExternalPgTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
@@ -23,6 +23,9 @@ suite("test_external_pg_nereids", "p2") {
         String extPgPort = context.config.otherConfigs.get("extPgPort")
         String extPgUser = context.config.otherConfigs.get("extPgUser")
         String extPgPassword = context.config.otherConfigs.get("extPgPassword")
+        String s3_endpoint = getS3Endpoint()
+        String bucket = getS3BucketName()
+        String driver_url = 
"https://${bucket}.${s3_endpoint}/regression/jdbc_driver/postgresql-42.5.0.jar";
         String jdbcResourcePg14 = "jdbc_resource_pg_14_n"
         String jdbcPg14Database1 = "jdbc_pg_14_database1_n"
         String pgTableNameLineOrder = "jdbc_pg_14_table1_n"
@@ -44,7 +47,7 @@ suite("test_external_pg_nereids", "p2") {
                 "user"="${extPgUser}",
                 "password"="${extPgPassword}",
                 
"jdbc_url"="jdbc:postgresql://${extPgHost}:${extPgPort}/ssb?currentSchema=ssb&useCursorFetch=true",
-                
"driver_url"="https://doris-community-bj-1308700295.cos.ap-beijing.myqcloud.com/jdbc_drivers/postgresql-42.5.0.jar";,
+                "driver_url"="${driver_url}",
                 "driver_class"="org.postgresql.Driver"
             );
             """
diff --git a/regression-test/suites/external_table_p2/tvf/test_tvf_p2.groovy 
b/regression-test/suites/external_table_p2/tvf/test_tvf_p2.groovy
index 030e66b372..e2097dee8b 100644
--- a/regression-test/suites/external_table_p2/tvf/test_tvf_p2.groovy
+++ b/regression-test/suites/external_table_p2/tvf/test_tvf_p2.groovy
@@ -15,7 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 
-suite("test_tvf_p2", "p2") {
+suite("test_tvf_p2", "p2,external,tvf,external_remote,external_remote_tvf") {
     String enabled = context.config.otherConfigs.get("enableExternalHiveTest")
     if (enabled != null && enabled.equalsIgnoreCase("true")) {
         String nameNodeHost = context.config.otherConfigs.get("extHiveHmsHost")


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to