You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by kx...@apache.org on 2023/06/19 13:38:10 UTC

[doris] branch master updated: Revert "[Test](regression) CCR syncer thrift interface regression test (#20935)" (#20990)

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

kxiao 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 2a294801f1 Revert "[Test](regression) CCR syncer thrift interface regression test (#20935)" (#20990)
2a294801f1 is described below

commit 2a294801f1324a999570158eea3224239eefbb29
Author: DeadlineFen <11...@users.noreply.github.com>
AuthorDate: Mon Jun 19 21:38:03 2023 +0800

    Revert "[Test](regression) CCR syncer thrift interface regression test (#20935)" (#20990)
    
    This reverts commit dd482b74c849b022862e7cfb1f1d0b933a84e3d2.
---
 .gitignore                                         |   1 -
 regression-test/conf/regression-conf.groovy        |   6 -
 .../storage/test_dup_table_auto_inc_col.out        |   4 +-
 .../test_duplicate_table_without_keys.out          |   8 +-
 regression-test/data/ddl_p0/test_ctas.out          |   4 +-
 regression-test/data/ddl_p0/test_ctl.out           |   2 +-
 regression-test/data/ddl_p0/test_recover.out       | 224 +++----
 regression-test/data/ddl_p0/test_unicode_name.out  |   2 +-
 .../nereids_p0/show/test_array_show_create.out     |   2 +-
 .../data/query_p0/show/test_array_show_create.out  |   2 +-
 .../data/query_p0/show/test_map_show_create.out    |   2 +-
 .../data/query_p0/show/test_show_create_table.out  |   4 +-
 .../data/query_p0/show/test_struct_show_create.out |   2 +-
 regression-test/framework/pom.xml                  |  11 -
 .../org/apache/doris/regression/Config.groovy      |  67 +--
 .../apache/doris/regression/ConfigOptions.groovy   |  40 --
 .../apache/doris/regression/RegressionTest.groovy  |   1 +
 .../apache/doris/regression/json/BinlogData.groovy |  53 --
 .../org/apache/doris/regression/suite/Suite.groovy |  14 +-
 .../doris/regression/suite/SuiteContext.groovy     |  32 -
 .../apache/doris/regression/suite/Syncer.groovy    | 670 ---------------------
 .../doris/regression/suite/SyncerContext.groovy    | 212 -------
 .../suite/client/BackendClientImpl.groovy          |  48 --
 .../suite/client/FrontendClientImpl.groovy         |  40 --
 .../doris/regression/util/SyncerUtils.groovy       | 114 ----
 regression-test/pipeline/p0/conf/be.conf           |   1 -
 regression-test/pipeline/p0/conf/fe.conf           |   1 -
 regression-test/pipeline/p1/conf/be.conf           |   1 -
 regression-test/pipeline/p1/conf/fe.conf           |   2 -
 .../ccr_syncer_p0/test_binlog_config_change.groovy | 106 ----
 .../suites/ccr_syncer_p0/test_get_binlog.groovy    | 140 -----
 .../suites/ccr_syncer_p0/test_ingest_binlog.groovy | 119 ----
 .../suites/ccr_syncer_p0/test_multi_buckets.groovy |  96 ---
 .../suites/ccr_syncer_p0/test_txn_case.groovy      | 298 ---------
 .../ccr_syncer_p1/test_backup_restore.groovy       |  68 ---
 run-regression-test.sh                             |  13 -
 36 files changed, 138 insertions(+), 2272 deletions(-)

diff --git a/.gitignore b/.gitignore
index e6981ccb7a..f5b7d9fbe6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,7 +60,6 @@ regression-test/realdata/*
 regression-test/cacheData/*
 regression-test/conf/regression-conf-custom.groovy
 regression-test/framework/bin/*
-regression-test/framework/src/main/groovy/org/apache/doris/thrift
 regression-test/certificate.p12
 
 samples/doris-demo/remote-udf-python-demo/*_pb2.py
diff --git a/regression-test/conf/regression-conf.groovy b/regression-test/conf/regression-conf.groovy
index fe06831e59..798e86fa14 100644
--- a/regression-test/conf/regression-conf.groovy
+++ b/regression-test/conf/regression-conf.groovy
@@ -25,15 +25,9 @@ defaultDb = "regression_test"
 // at each time we connect.
 // add allowLoadLocalInfile so that the jdbc can execute mysql load data from client.
 jdbcUrl = "jdbc:mysql://127.0.0.1:9030/?useLocalSessionState=true&allowLoadLocalInfile=true"
-targetJdbcUrl = "jdbc:mysql://127.0.0.1:9030/?useLocalSessionState=true&allowLoadLocalInfile=true"
 jdbcUser = "root"
 jdbcPassword = ""
 
-feSourceThriftAddress = "127.0.0.1:9020"
-feTargetThriftAddress = "127.0.0.1:9020"
-feSyncerUser = "root"
-feSyncerPassword = ""
-
 feHttpAddress = "127.0.0.1:8030"
 feHttpUser = "root"
 feHttpPassword = ""
diff --git a/regression-test/data/data_model_p0/duplicate/storage/test_dup_table_auto_inc_col.out b/regression-test/data/data_model_p0/duplicate/storage/test_dup_table_auto_inc_col.out
index 4fae5fe51a..053b5f077f 100644
--- a/regression-test/data/data_model_p0/duplicate/storage/test_dup_table_auto_inc_col.out
+++ b/regression-test/data/data_model_p0/duplicate/storage/test_dup_table_auto_inc_col.out
@@ -4,14 +4,14 @@ id	BIGINT	No	true	\N	AUTO_INCREMENT
 value	INT	No	false	\N	NONE
 
 -- !sql --
-test_dup_tab_auto_inc_col1	CREATE TABLE `test_dup_tab_auto_inc_col1` (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `value` int(11) NOT NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`id`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`id`) BUCKETS 1\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_seconds" = "9223372036854775807",\n"binlog.max_bytes" [...]
+test_dup_tab_auto_inc_col1	CREATE TABLE `test_dup_tab_auto_inc_col1` (\n  `id` bigint(20) NOT NULL AUTO_INCREMENT,\n  `value` int(11) NOT NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`id`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`id`) BUCKETS 1\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "false"\n);
 
 -- !desc --
 id	INT	No	true	\N	
 value	BIGINT	No	false	\N	NONE,AUTO_INCREMENT
 
 -- !sql --
-test_dup_tab_auto_inc_col2	CREATE TABLE `test_dup_tab_auto_inc_col2` (\n  `id` int(11) NOT NULL,\n  `value` bigint(20) NOT NULL AUTO_INCREMENT\n) ENGINE=OLAP\nDUPLICATE KEY(`id`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`id`) BUCKETS 1\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_seconds" = "9223372036854775807",\n"binlog.max_bytes" [...]
+test_dup_tab_auto_inc_col2	CREATE TABLE `test_dup_tab_auto_inc_col2` (\n  `id` int(11) NOT NULL,\n  `value` bigint(20) NOT NULL AUTO_INCREMENT\n) ENGINE=OLAP\nDUPLICATE KEY(`id`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`id`) BUCKETS 1\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "false"\n);
 
 -- !sql --
 1
diff --git a/regression-test/data/data_model_p0/duplicate/test_duplicate_table_without_keys.out b/regression-test/data/data_model_p0/duplicate/test_duplicate_table_without_keys.out
index d504d39396..2210dd8df9 100644
--- a/regression-test/data/data_model_p0/duplicate/test_duplicate_table_without_keys.out
+++ b/regression-test/data/data_model_p0/duplicate/test_duplicate_table_without_keys.out
@@ -11,7 +11,7 @@ k3	INT	Yes	true	\N
 int_value	INT	Yes	false	\N	NONE
 
 -- !show_dup_table --
-test_default_data_model	CREATE TABLE `test_default_data_model` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`, `k2`, `k3`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_seconds" = "9223372036854 [...]
+test_default_data_model	CREATE TABLE `test_default_data_model` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`, `k2`, `k3`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "false"\n);
 
 -- !select_dup_table --
 0	1	2	3
@@ -25,7 +25,7 @@ k3	INT	Yes	false	\N	NONE
 int_value	INT	Yes	false	\N	NONE
 
 -- !show_dup_table --
-test_default_data_model_no_keys	CREATE TABLE `test_default_data_model_no_keys` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_seconds" = "9223372036854775807",\n"binlog [...]
+test_default_data_model_no_keys	CREATE TABLE `test_default_data_model_no_keys` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "false",\n"enable_duplicate_without_keys_by_d [...]
 
 -- !select_dup_table --
 0	1	2	0	3
@@ -40,7 +40,7 @@ new_col1	INT	Yes	false	0	NONE
 int_value	INT	Yes	false	\N	NONE
 
 -- !show_dup_table --
-test_default_data_model_no_keys	CREATE TABLE `test_default_data_model_no_keys` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `new_col1` int(11) NULL DEFAULT "0",\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_se [...]
+test_default_data_model_no_keys	CREATE TABLE `test_default_data_model_no_keys` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `new_col1` int(11) NULL DEFAULT "0",\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "fals [...]
 
 -- !desc_dup_table --
 k1	INT	Yes	false	\N	NONE
@@ -50,5 +50,5 @@ new_col1	INT	Yes	false	0	NONE
 int_value	INT	Yes	false	\N	NONE
 
 -- !show_dup_table --
-test_default_data_model_no_keys_like	CREATE TABLE `test_default_data_model_no_keys_like` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `new_col1` int(11) NULL DEFAULT "0",\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"bin [...]
+test_default_data_model_no_keys_like	CREATE TABLE `test_default_data_model_no_keys_like` (\n  `k1` int(11) NULL,\n  `k2` int(11) NULL,\n  `k3` int(11) NULL,\n  `new_col1` int(11) NULL DEFAULT "0",\n  `int_value` int(11) NULL\n) ENGINE=OLAP\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 5\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compactio [...]
 
diff --git a/regression-test/data/ddl_p0/test_ctas.out b/regression-test/data/ddl_p0/test_ctas.out
index a321492cfa..c9c9965f8e 100644
--- a/regression-test/data/ddl_p0/test_ctas.out
+++ b/regression-test/data/ddl_p0/test_ctas.out
@@ -1,12 +1,12 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-test_ctas1	CREATE TABLE `test_ctas1` (\n  `test_varchar` varchar(65533) NULL,\n  `test_text` text NULL,\n  `test_datetime` datetime NULL,\n  `test_default_timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=OLAP\nDUPLICATE KEY(`test_varchar`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`test_varchar`) BUCKETS 10\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.e [...]
+test_ctas1	CREATE TABLE `test_ctas1` (\n  `test_varchar` varchar(65533) NULL,\n  `test_text` text NULL,\n  `test_datetime` datetime NULL,\n  `test_default_timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=OLAP\nDUPLICATE KEY(`test_varchar`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`test_varchar`) BUCKETS 10\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_s [...]
 
 -- !select --
 2
 
 -- !select --
-test_ctas2	CREATE TABLE `test_ctas2` (\n  `test_varchar` varchar(65533) NULL,\n  `test_text` text NULL,\n  `test_datetime` datetime NULL,\n  `test_default_timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=OLAP\nDUPLICATE KEY(`test_varchar`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`test_varchar`) BUCKETS 10\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.e [...]
+test_ctas2	CREATE TABLE `test_ctas2` (\n  `test_varchar` varchar(65533) NULL,\n  `test_text` text NULL,\n  `test_datetime` datetime NULL,\n  `test_default_timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=OLAP\nDUPLICATE KEY(`test_varchar`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`test_varchar`) BUCKETS 10\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_s [...]
 
 -- !select --
 2
diff --git a/regression-test/data/ddl_p0/test_ctl.out b/regression-test/data/ddl_p0/test_ctl.out
index f298358fb2..f5762edcd7 100644
--- a/regression-test/data/ddl_p0/test_ctl.out
+++ b/regression-test/data/ddl_p0/test_ctl.out
@@ -1,4 +1,4 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-test_ctl1	CREATE TABLE `test_ctl1` (\n  `test_varchar` varchar(150) NULL,\n  `test_datetime` datetime NULL,\n  `test_default_timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=OLAP\nUNIQUE KEY(`test_varchar`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`test_varchar`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_sec [...]
+test_ctl1	CREATE TABLE `test_ctl1` (\n  `test_varchar` varchar(150) NULL,\n  `test_datetime` datetime NULL,\n  `test_default_timestamp` datetime NULL DEFAULT CURRENT_TIMESTAMP\n) ENGINE=OLAP\nUNIQUE KEY(`test_varchar`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`test_varchar`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "false"\n);
 
diff --git a/regression-test/data/ddl_p0/test_recover.out b/regression-test/data/ddl_p0/test_recover.out
index bf1b3360c9..c51aac97fd 100644
--- a/regression-test/data/ddl_p0/test_recover.out
+++ b/regression-test/data/ddl_p0/test_recover.out
@@ -1,42 +1,42 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -94,7 +94,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -104,43 +104,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -198,7 +198,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -208,43 +208,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -302,7 +302,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -312,43 +312,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -406,7 +406,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -416,43 +416,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -510,7 +510,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -520,43 +520,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -614,7 +614,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -624,43 +624,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -718,7 +718,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
@@ -728,43 +728,43 @@ test_recover_tb_2
 test_recover_tb_2
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("1000"), ("2000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("2000"), ("3000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("3000"), ("4000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction"  [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema [...]
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("3000"), ("4000")),\nPARTITION p2000 VALUES [("4000"), ("5000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default [...]
 
 -- !select --
 
@@ -822,7 +822,7 @@ test_recover_db	CREATE DATABASE `test_recover_db`
 test_recover_db_new	CREATE DATABASE `test_recover_db_new`
 
 -- !select --
-test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
+test_recover_tb	CREATE TABLE `test_recover_tb` (\n  `k1` int(11) NULL,\n  `k2` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`k1`)\nCOMMENT 'OLAP'\nPARTITION BY RANGE(`k1`)\n(PARTITION p111 VALUES [("-1000"), ("111")),\nPARTITION p222 VALUES [("111"), ("222")),\nPARTITION p333 VALUES [("222"), ("333")),\nPARTITION p1000 VALUES [("333"), ("1000")))\nDISTRIBUTED BY HASH(`k1`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_ [...]
 
 -- !select --
 test_recover_tb
diff --git a/regression-test/data/ddl_p0/test_unicode_name.out b/regression-test/data/ddl_p0/test_unicode_name.out
index 9d33db6c49..3894657f1b 100644
--- a/regression-test/data/ddl_p0/test_unicode_name.out
+++ b/regression-test/data/ddl_p0/test_unicode_name.out
@@ -1,4 +1,4 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-中文表名_1	CREATE TABLE `中文表名_1` (\n  `字符串_字段名_test` varchar(150) NULL,\n  `时间_字段名_test` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`字符串_字段名_test`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`字符串_字段名_test`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"binlog.enable" = "false",\n"binlog.ttl_seconds" = "9223372036854775807",\n"binlog.max_bytes" = "9223372036854775807",\n [...]
+中文表名_1	CREATE TABLE `中文表名_1` (\n  `字符串_字段名_test` varchar(150) NULL,\n  `时间_字段名_test` datetime NULL\n) ENGINE=OLAP\nUNIQUE KEY(`字符串_字段名_test`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`字符串_字段名_test`) BUCKETS 3\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compaction" = "false",\n"enable_single_replica_compaction" = "false"\n);
 
diff --git a/regression-test/data/nereids_p0/show/test_array_show_create.out b/regression-test/data/nereids_p0/show/test_array_show_create.out
index f5b3e1b5e2..ab255c57b0 100644
--- a/regression-test/data/nereids_p0/show/test_array_show_create.out
+++ b/regression-test/data/nereids_p0/show/test_array_show_create.out
@@ -1,4 +1,4 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-test_array_show_create	CREATE TABLE `test_array_show_create` (\n  `k1` int(11) NULL,\n  `k2` array<smallint(6)> NOT NULL,\n  `k3` array<int(11)> NOT NULL,\n  `k4` array<bigint(20)> NOT NULL,\n  `k5` array<char(1)> NOT NULL,\n  `k6` array<varchar(20)> NULL,\n  `k7` array<datev2> NOT NULL,\n  `k8` array<datetimev2(0)> NOT NULL,\n  `k9` array<float> NOT NULL,\n  `k10` array<double> NOT NULL,\n  `k11` array<decimalv3(20, 6)> NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`)\nCOMMENT 'OLAP'\nDISTRIBUT [...]
+test_array_show_create	CREATE TABLE `test_array_show_create` (\n  `k1` int(11) NULL,\n  `k2` array<smallint(6)> NOT NULL,\n  `k3` array<int(11)> NOT NULL,\n  `k4` array<bigint(20)> NOT NULL,\n  `k5` array<char(1)> NOT NULL,\n  `k6` array<varchar(20)> NULL,\n  `k7` array<datev2> NOT NULL,\n  `k8` array<datetimev2(0)> NOT NULL,\n  `k9` array<float> NOT NULL,\n  `k10` array<double> NOT NULL,\n  `k11` array<decimalv3(20, 6)> NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`)\nCOMMENT 'OLAP'\nDISTRIBUT [...]
 
diff --git a/regression-test/data/query_p0/show/test_array_show_create.out b/regression-test/data/query_p0/show/test_array_show_create.out
index f5b3e1b5e2..ab255c57b0 100644
--- a/regression-test/data/query_p0/show/test_array_show_create.out
+++ b/regression-test/data/query_p0/show/test_array_show_create.out
@@ -1,4 +1,4 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-test_array_show_create	CREATE TABLE `test_array_show_create` (\n  `k1` int(11) NULL,\n  `k2` array<smallint(6)> NOT NULL,\n  `k3` array<int(11)> NOT NULL,\n  `k4` array<bigint(20)> NOT NULL,\n  `k5` array<char(1)> NOT NULL,\n  `k6` array<varchar(20)> NULL,\n  `k7` array<datev2> NOT NULL,\n  `k8` array<datetimev2(0)> NOT NULL,\n  `k9` array<float> NOT NULL,\n  `k10` array<double> NOT NULL,\n  `k11` array<decimalv3(20, 6)> NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`)\nCOMMENT 'OLAP'\nDISTRIBUT [...]
+test_array_show_create	CREATE TABLE `test_array_show_create` (\n  `k1` int(11) NULL,\n  `k2` array<smallint(6)> NOT NULL,\n  `k3` array<int(11)> NOT NULL,\n  `k4` array<bigint(20)> NOT NULL,\n  `k5` array<char(1)> NOT NULL,\n  `k6` array<varchar(20)> NULL,\n  `k7` array<datev2> NOT NULL,\n  `k8` array<datetimev2(0)> NOT NULL,\n  `k9` array<float> NOT NULL,\n  `k10` array<double> NOT NULL,\n  `k11` array<decimalv3(20, 6)> NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`)\nCOMMENT 'OLAP'\nDISTRIBUT [...]
 
diff --git a/regression-test/data/query_p0/show/test_map_show_create.out b/regression-test/data/query_p0/show/test_map_show_create.out
index dbc426efe3..bc45e352c8 100644
--- a/regression-test/data/query_p0/show/test_map_show_create.out
+++ b/regression-test/data/query_p0/show/test_map_show_create.out
@@ -1,6 +1,6 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-test_map_show_create	CREATE TABLE `test_map_show_create` (\n  `k1` int(11) NULL,\n  `k2` MAP<smallint(6),text> NULL,\n  `k3` MAP<int(11),text> NULL,\n  `k4` MAP<datev2,int(11)> NULL,\n  `k5` MAP<datetimev2(0),text> NULL,\n  `k6` MAP<float,int(11)> NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 1\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compact [...]
+test_map_show_create	CREATE TABLE `test_map_show_create` (\n  `k1` int(11) NULL,\n  `k2` MAP<smallint(6),text> NULL,\n  `k3` MAP<int(11),text> NULL,\n  `k4` MAP<datev2,int(11)> NULL,\n  `k5` MAP<datetimev2(0),text> NULL,\n  `k6` MAP<float,int(11)> NULL\n) ENGINE=OLAP\nDUPLICATE KEY(`k1`)\nCOMMENT 'OLAP'\nDISTRIBUTED BY HASH(`k1`) BUCKETS 1\nPROPERTIES (\n"replication_allocation" = "tag.location.default: 1",\n"storage_format" = "V2",\n"light_schema_change" = "true",\n"disable_auto_compact [...]
 
 -- !select --
 1	1	1	1	1
diff --git a/regression-test/data/query_p0/show/test_show_create_table.out b/regression-test/data/query_p0/show/test_show_create_table.out
index 7c32be9bc3..56447a96b4 100644
--- a/regression-test/data/query_p0/show/test_show_create_table.out
+++ b/regression-test/data/query_p0/show/test_show_create_table.out
@@ -1,7 +1,7 @@
 -- This file is automatically generated. You should know what you did if you want to edit this
 -- !select --
-tb_show_create_table	CREATE TABLE `tb_show_create_table` (\n  `datek1` date NULL COMMENT 'a',\n  `datetimek1` datetime NULL COMMENT 'b',\n  `datetimek2` datetime NULL COMMENT 'c',\n  `datetimek3` datetime NULL COMMENT 'd',\n  `datev1` date MAX NOT NULL COMMENT 'e',\n  `datetimev1` datetime MAX NOT NULL COMMENT 'f',\n  `datetimev2` datetime MAX NOT NULL COMMENT 'g',\n  `datetimev3` datetime MAX NOT NULL COMMENT 'h'\n) ENGINE=OLAP\nAGGREGATE KEY(`datek1`, `datetimek1`, `datetimek2`, `datet [...]
+tb_show_create_table	CREATE TABLE `tb_show_create_table` (\n  `datek1` date NULL COMMENT 'a',\n  `datetimek1` datetime NULL COMMENT 'b',\n  `datetimek2` datetime NULL COMMENT 'c',\n  `datetimek3` datetime NULL COMMENT 'd',\n  `datev1` date MAX NOT NULL COMMENT 'e',\n  `datetimev1` datetime MAX NOT NULL COMMENT 'f',\n  `datetimev2` datetime MAX NOT NULL COMMENT 'g',\n  `datetimev3` datetime MAX NOT NULL COMMENT 'h'\n) ENGINE=OLAP\nAGGREGATE KEY(`datek1`, `datetimek1`, `datetimek2`, `datet [...]
 
 -- !select --
-tb_show_create_table	CREATE TABLE `tb_show_create_table` (\n  `datek1` date NULL COMMENT 'a',\n  `datetimek1` datetime NULL COMMENT 'b',\n  `datetimek2` datetime NULL COMMENT 'c',\n  `datetimek3` datetime NULL COMMENT 'd',\n  `datev1` date NOT NULL COMMENT 'e',\n  `datetimev1` datetime NOT NULL COMMENT 'f',\n  `datetimev2` datetime NOT NULL COMMENT 'g',\n  `datetimev3` datetime NOT NULL COMMENT 'h'\n) ENGINE=OLAP\nDUPLICATE KEY(`datek1`, `datetimek1`, `datetimek2`, `datetimek3`)\nCOMMENT [...]
+tb_show_create_table	CREATE TABLE `tb_show_create_table` (\n  `datek1` date NULL COMMENT 'a',\n  `datetimek1` datetime NULL COMMENT 'b',\n  `datetimek2` datetime NULL COMMENT 'c',\n  `datetimek3` datetime NULL COMMENT 'd',\n  `datev1` date NOT NULL COMMENT 'e',\n  `datetimev1` datetime NOT NULL COMMENT 'f',\n  `datetimev2` datetime NOT NULL COMMENT 'g',\n  `datetimev3` datetime NOT NULL COMMENT 'h'\n) ENGINE=OLAP\nDUPLICATE KEY(`datek1`, `datetimek1`, `datetimek2`, `datetimek3`)\nCOMMENT [...]
 
diff --git a/regression-test/data/query_p0/show/test_struct_show_create.out b/regression-test/data/query_p0/show/test_struct_show_create.out
index 93bb386bce..fc1d9527d4 100644
--- a/regression-test/data/query_p0/show/test_struct_show_create.out
+++ b/regression-test/data/query_p0/show/test_struct_show_create.out
@@ -3,5 +3,5 @@
 1	1	1	1	1	1	1	1	1	1
 
 -- !select --
-test_struct_show_create	CREATE TABLE `test_struct_show_create` (\n  `k1` int(11) NULL,\n  `k2` STRUCT<f1:smallint(6)> NOT NULL,\n  `k3` STRUCT<f1:smallint(6),f2:int(11)> NOT NULL,\n  `k4` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20)> NOT NULL,\n  `k5` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20),f4:char(1)> NOT NULL,\n  `k6` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20),f4:char(1),f5:varchar(20)> NULL,\n  `k7` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20),f4:char(1),f5:varchar(20), [...]
+test_struct_show_create	CREATE TABLE `test_struct_show_create` (\n  `k1` int(11) NULL,\n  `k2` STRUCT<f1:smallint(6)> NOT NULL,\n  `k3` STRUCT<f1:smallint(6),f2:int(11)> NOT NULL,\n  `k4` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20)> NOT NULL,\n  `k5` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20),f4:char(1)> NOT NULL,\n  `k6` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20),f4:char(1),f5:varchar(20)> NULL,\n  `k7` STRUCT<f1:smallint(6),f2:int(11),f3:bigint(20),f4:char(1),f5:varchar(20), [...]
 
diff --git a/regression-test/framework/pom.xml b/regression-test/framework/pom.xml
index d96eca6288..9d836d56e8 100644
--- a/regression-test/framework/pom.xml
+++ b/regression-test/framework/pom.xml
@@ -199,17 +199,6 @@ under the License.
     </build>
 
     <dependencies>
-        <!-- https://mvnrepository.com/artifact/org.apache.thrift/libthrift -->
-        <dependency>
-            <groupId>org.apache.thrift</groupId>
-            <artifactId>libthrift</artifactId>
-            <version>0.16.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.code.gson</groupId>
-            <artifactId>gson</artifactId>
-            <version>2.10.1</version>
-        </dependency>
         <dependency>
             <groupId>org.codehaus.groovy</groupId>
             <artifactId>groovy-all</artifactId>
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
index 19dce1e9f5..6f21cbfaaf 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy
@@ -22,17 +22,18 @@ import groovy.util.logging.Slf4j
 
 import com.google.common.collect.Maps
 import org.apache.commons.cli.CommandLine
+import org.apache.commons.cli.Option
 import org.apache.doris.regression.util.FileUtils
 import org.apache.doris.regression.util.JdbcUtils
 
 import java.sql.Connection
 import java.sql.DriverManager
+import java.util.concurrent.atomic.AtomicReference
 import java.util.function.Predicate
 
+import static java.lang.Math.random
 import static org.apache.doris.regression.ConfigOptions.*
 
-import org.apache.doris.thrift.TNetworkAddress;
-
 @Slf4j
 @CompileStatic
 class Config {
@@ -41,11 +42,6 @@ class Config {
     public String jdbcPassword
     public String defaultDb
 
-    public String feSourceThriftAddress
-    public String feTargetThriftAddress
-    public String feSyncerUser
-    public String feSyncerPassword
-
     public String feHttpAddress
     public String feHttpUser
     public String feHttpPassword
@@ -82,8 +78,6 @@ class Config {
     public Set<String> excludeGroupSet = new HashSet<>()
     public Set<String> excludeDirectorySet = new HashSet<>()
 
-    public TNetworkAddress feSourceThriftNetworkAddress
-    public TNetworkAddress feTargetThriftNetworkAddress
     public InetSocketAddress feHttpInetSocketAddress
     public InetSocketAddress metaServiceHttpInetSocketAddress
     public Integer parallel
@@ -95,7 +89,6 @@ class Config {
     Config() {}
 
     Config(String defaultDb, String jdbcUrl, String jdbcUser, String jdbcPassword,
-           String feSourceThriftAddress, String feTargetThriftAddress, String feSyncerUser, String feSyncerPassword,
            String feHttpAddress, String feHttpUser, String feHttpPassword, String metaServiceHttpAddress,
            String suitePath, String dataPath, String realDataPath, String cacheDataPath, Boolean enableCacheData,
            String testGroups, String excludeGroups, String testSuites, String excludeSuites,
@@ -104,10 +97,6 @@ class Config {
         this.jdbcUrl = jdbcUrl
         this.jdbcUser = jdbcUser
         this.jdbcPassword = jdbcPassword
-        this.feSourceThriftAddress = feSourceThriftAddress
-        this.feTargetThriftAddress = feTargetThriftAddress
-        this.feSyncerUser = feSyncerUser
-        this.feSyncerPassword = feSyncerPassword
         this.feHttpAddress = feHttpAddress
         this.feHttpUser = feHttpUser
         this.feHttpPassword = feHttpPassword
@@ -190,24 +179,6 @@ class Config {
             config.groups = ["p0"].toSet()
         }
 
-        config.feSourceThriftAddress = cmd.getOptionValue(feSourceThriftAddressOpt, config.feSourceThriftAddress)
-        try {
-            String host = config.feSourceThriftAddress.split(":")[0]
-            int port = Integer.valueOf(config.feSourceThriftAddress.split(":")[1])
-            config.feSourceThriftNetworkAddress = new TNetworkAddress(host, port)
-        } catch (Throwable t) {
-            throw new IllegalStateException("Can not parse fe thrift address: ${config.feSourceThriftAddress}", t)
-        }
-
-        config.feTargetThriftAddress = cmd.getOptionValue(feTargetThriftAddressOpt, config.feTargetThriftAddress)
-        try {
-            String host = config.feTargetThriftAddress.split(":")[0]
-            int port = Integer.valueOf(config.feTargetThriftAddress.split(":")[1])
-            config.feTargetThriftNetworkAddress = new TNetworkAddress(host, port)
-        } catch (Throwable t) {
-            throw new IllegalStateException("Can not parse fe thrift address: ${config.feTargetThriftAddress}", t)
-        }
-
         config.feHttpAddress = cmd.getOptionValue(feHttpAddressOpt, config.feHttpAddress)
         try {
             Inet4Address host = Inet4Address.getByName(config.feHttpAddress.split(":")[0]) as Inet4Address
@@ -231,8 +202,6 @@ class Config {
         config.jdbcUrl = cmd.getOptionValue(jdbcOpt, config.jdbcUrl)
         config.jdbcUser = cmd.getOptionValue(userOpt, config.jdbcUser)
         config.jdbcPassword = cmd.getOptionValue(passwordOpt, config.jdbcPassword)
-        config.feSyncerUser = cmd.getOptionValue(feSyncerUserOpt, config.feSyncerUser)
-        config.feSyncerPassword = cmd.getOptionValue(feSyncerPasswordOpt, config.feSyncerPassword)
         config.feHttpUser = cmd.getOptionValue(feHttpUserOpt, config.feHttpUser)
         config.feHttpPassword = cmd.getOptionValue(feHttpPasswordOpt, config.feHttpPassword)
         config.generateOutputFile = cmd.hasOption(genOutOpt)
@@ -266,10 +235,6 @@ class Config {
             configToString(obj.jdbcUrl),
             configToString(obj.jdbcUser),
             configToString(obj.jdbcPassword),
-            configToString(obj.feSourceThriftAddress),
-            configToString(obj.feTargetThriftAddress),
-            configToString(obj.feSyncerUser),
-            configToString(obj.feSyncerPassword),
             configToString(obj.feHttpAddress),
             configToString(obj.feHttpUser),
             configToString(obj.feHttpPassword),
@@ -324,16 +289,6 @@ class Config {
             log.info("Set jdbcPassword to empty because not specify.".toString())
         }
 
-        if (config.feSourceThriftAddress == null) {
-            config.feSourceThriftAddress = "127.0.0.1:9020"
-            log.info("Set feThriftAddress to '${config.feSourceThriftAddress}' because not specify.".toString())
-        }
-
-        if (config.feTargetThriftAddress == null) {
-            config.feTargetThriftAddress = "127.0.0.1:9020"
-            log.info("Set feThriftAddress to '${config.feTargetThriftAddress}' because not specify.".toString())
-        }
-
         if (config.feHttpAddress == null) {
             config.feHttpAddress = "127.0.0.1:8030"
             log.info("Set feHttpAddress to '${config.feHttpAddress}' because not specify.".toString())
@@ -344,16 +299,6 @@ class Config {
             log.info("Set metaServiceHttpAddress to '${config.metaServiceHttpAddress}' because not specify.".toString())
         }
 
-        if (config.feSyncerUser == null) {
-            config.feSyncerUser = "root"
-            log.info("Set feSyncerUser to '${config.feSyncerUser}' because not specify.".toString())
-        }
-
-        if (config.feSyncerPassword == null) {
-            config.feSyncerPassword = ""
-            log.info("Set feSyncerPassword to empty because not specify.".toString())
-        }
-
         if (config.feHttpUser == null) {
             config.feHttpUser = "root"
             log.info("Set feHttpUser to '${config.feHttpUser}' because not specify.".toString())
@@ -463,7 +408,11 @@ class Config {
         return null
     }
 
-    void tryCreateDbIfNotExist(String dbName = defaultDb) {
+    void tryCreateDbIfNotExist() {
+        tryCreateDbIfNotExist(defaultDb)
+    }
+
+    void tryCreateDbIfNotExist(String dbName) {
         // connect without specify default db
         try {
             String sql = "CREATE DATABASE IF NOT EXISTS ${dbName}"
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy
index 3f8824c38b..5355f8a14c 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy
@@ -32,10 +32,6 @@ class ConfigOptions {
     static Option jdbcOpt
     static Option userOpt
     static Option passwordOpt
-    static Option feSourceThriftAddressOpt
-    static Option feTargetThriftAddressOpt
-    static Option feSyncerUserOpt
-    static Option feSyncerPasswordOpt
     static Option feHttpAddressOpt
     static Option feHttpUserOpt
     static Option feHttpPasswordOpt
@@ -217,38 +213,6 @@ class ConfigOptions {
                 .longOpt("excludeDirectories")
                 .desc("the use cases in these directories will not be tested")
                 .build()
-        feSourceThriftAddressOpt = Option.builder("stfa")
-                .argName("address")
-                .required(false)
-                .hasArg(true)
-                .type(String.class)
-                .longOpt("feSourceThriftAddressOpt")
-                .desc("the fe source thrift address, format is ip:port")
-                .build()
-        feTargetThriftAddressOpt = Option.builder("ttfa")
-                .argName("address")
-                .required(false)
-                .hasArg(true)
-                .type(String.class)
-                .longOpt("feTargetThriftAddressOpt")
-                .desc("the fe target thrift address, format is ip:port")
-                .build()
-        feSyncerUserOpt = Option.builder("syncu")
-                .argName("userName")
-                .required(false)
-                .hasArg(true)
-                .type(String.class)
-                .longOpt("feSyncerUser")
-                .desc("the user of syncer")
-                .build()
-        feSyncerPasswordOpt = Option.builder("syncp")
-                .argName("password")
-                .required(false)
-                .hasArg(true)
-                .type(String.class)
-                .longOpt("feSyncerPassword")
-                .desc("the password of syncer")
-                .build()
         feHttpAddressOpt = Option.builder("ha")
                 .argName("address")
                 .required(false)
@@ -371,10 +335,6 @@ class ConfigOptions {
                 .addOption(excludeGroupsOpt)
                 .addOption(directoriesOpt)
                 .addOption(excludeDirectoriesOpt)
-                .addOption(feSourceThriftAddressOpt)
-                .addOption(feTargetThriftAddressOpt)
-                .addOption(feSyncerUserOpt)
-                .addOption(feSyncerPasswordOpt)
                 .addOption(feHttpAddressOpt)
                 .addOption(feHttpUserOpt)
                 .addOption(feHttpPasswordOpt)
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
index 4e7a5793aa..e33577528c 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy
@@ -194,6 +194,7 @@ class RegressionTest {
         log.info('Start to run scripts')
         runScripts(config, recorder, directoryFilter,
                 { fileName -> fileName.substring(0, fileName.lastIndexOf(".")) != "load" })
+
         return recorder
     }
 
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/json/BinlogData.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/json/BinlogData.groovy
deleted file mode 100644
index 868a363828..0000000000
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/json/BinlogData.groovy
+++ /dev/null
@@ -1,53 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.regression.json
-
-class PartitionData {
-    public Long partitionId
-    public Long version
-
-    String toString() {
-        return "(" + partitionId.toString() + ", " + version.toString() + ")"
-    }
-}
-
-class PartitionRecords {
-    public List<PartitionData> partitionRecords
-
-    String toString() {
-        return partitionRecords.toString()
-    }
-}
-
-class BinlogData {
-    public Long commitSeq
-    public Long txnId
-    public String timeStamp
-    public String label
-    public Long dbId
-    public Map<Long, PartitionRecords> tableRecords
-
-    String toString() {
-        return "(" + commitSeq.toString() + ", " +
-                     txnId.toString() + ", " +
-                     timeStamp + label + ", " +
-                     dbId.toString() + ", " +
-                     tableRecords.toString()
-    }
-}
-
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
index c307aba605..7106965929 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Suite.groovy
@@ -43,6 +43,7 @@ import groovy.util.logging.Slf4j
 import java.util.concurrent.Callable
 import java.util.concurrent.Future
 import java.util.concurrent.atomic.AtomicBoolean
+import java.util.Map;
 import java.util.stream.Collectors
 import java.util.stream.LongStream
 import static org.apache.doris.regression.util.DataUtils.sortByToString
@@ -190,10 +191,6 @@ class Suite implements GroovyInterceptable {
         return context.connect(user, password, url, actionSupplier)
     }
 
-    Syncer getSyncer() {
-        return context.getSyncer(this)
-    }
-
     List<List<Object>> sql(String sqlStr, boolean isOrder = false) {
         logger.info("Execute ${isOrder ? "order_" : ""}sql: ${sqlStr}".toString())
         def (result, meta) = JdbcUtils.executeToList(context.getConnection(), sqlStr)
@@ -203,15 +200,6 @@ class Suite implements GroovyInterceptable {
         return result
     }
 
-    List<List<Object>> target_sql(String sqlStr, boolean isOrder = false) {
-        logger.info("Execute ${isOrder ? "order_" : ""}target_sql: ${sqlStr}".toString())
-        def (result, meta) = JdbcUtils.executeToList(context.getTargetConnection(this), sqlStr)
-        if (isOrder) {
-            result = DataUtils.sortByToString(result)
-        }
-        return result
-    }
-
     List<List<String>> sql_meta(String sqlStr, boolean isOrder = false) {
         logger.info("Execute ${isOrder ? "order_" : ""}sql: ${sqlStr}".toString())
         def (tmp, rsmd) = JdbcUtils.executeToList(context.getConnection(), sqlStr)
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
index 1eec3d9c15..1f02ae2d22 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
@@ -36,7 +36,6 @@ class SuiteContext implements Closeable {
     public final String group
     public final String dbName
     public final ThreadLocal<Connection> threadLocalConn = new ThreadLocal<>()
-    private final ThreadLocal<Syncer> syncer = new ThreadLocal<>()
     public final Config config
     public final File dataPath
     public final File outputFile
@@ -103,15 +102,6 @@ class SuiteContext implements Closeable {
         return className
     }
 
-    Syncer getSyncer(Suite suite) {
-        Syncer syncerImpl = syncer.get()
-        if (syncerImpl == null) {
-            syncerImpl = new Syncer(suite, config)
-            syncer.set(syncerImpl)
-        }
-        return syncerImpl
-    }
-
     // compatible to context.conn
     Connection getConn() {
         return getConnection()
@@ -126,14 +116,6 @@ class SuiteContext implements Closeable {
         return threadConn
     }
 
-    Connection getTargetConnection(Suite suite) {
-        def context = getSyncer(suite).context
-        if (context.targetConnection == null) {
-            context.targetConnection = config.getConnectionByDbName("TEST_" + dbName)
-        }
-        return context.targetConnection
-    }
-
     public <T> T connect(String user, String password, String url, Closure<T> actionSupplier) {
         def originConnection = threadLocalConn.get()
         try {
@@ -224,20 +206,6 @@ class SuiteContext implements Closeable {
             }
         }
 
-        Syncer syncerImpl = syncer.get()
-        if (syncerImpl != null) {
-            syncer.remove()
-            SyncerContext context = syncerImpl.getContext()
-            if (context != null) {
-                try {
-                    syncerImpl.context.closeAllClients()
-                    syncerImpl.context.closeConn()
-                } catch (Throwable t) {
-                    log.warn("Close syncer failed", t)
-                }
-            }
-        }
-
         Connection conn = threadLocalConn.get()
         if (conn != null) {
             threadLocalConn.remove()
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Syncer.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Syncer.groovy
deleted file mode 100644
index e0ee01a4f6..0000000000
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/Syncer.groovy
+++ /dev/null
@@ -1,670 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.regression.suite
-
-import com.google.gson.Gson
-import org.apache.doris.regression.Config
-import org.apache.doris.regression.suite.client.BackendClientImpl
-import org.apache.doris.regression.suite.client.FrontendClientImpl
-import org.apache.doris.regression.util.SyncerUtils
-import org.apache.doris.thrift.TBeginTxnResult
-import org.apache.doris.thrift.TBinlog
-import org.apache.doris.regression.json.BinlogData
-import org.apache.doris.thrift.TBinlogType
-import org.apache.doris.thrift.TCommitTxnResult
-import org.apache.doris.thrift.TGetBinlogResult
-import org.apache.doris.thrift.TGetSnapshotResult
-import org.apache.doris.thrift.TIngestBinlogRequest
-import org.apache.doris.thrift.TIngestBinlogResult
-import org.apache.doris.thrift.TNetworkAddress
-import org.apache.doris.thrift.TRestoreSnapshotResult
-import org.apache.doris.thrift.TStatus
-import org.apache.doris.thrift.TStatusCode
-import org.apache.doris.thrift.TTabletCommitInfo
-import org.apache.doris.thrift.TUniqueId
-import org.apache.thrift.transport.TTransportException
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-import groovy.util.logging.Slf4j
-
-import java.util.Map.Entry
-
-@Slf4j
-class Syncer {
-    final SyncerContext context
-    final Suite suite
-    final Logger logger = LoggerFactory.getLogger(Syncer.class)
-
-    Syncer(Suite suite, Config config) {
-        this.suite = suite
-        context = new SyncerContext(suite.context.dbName, config)
-    }
-
-    enum ccrCluster {
-        SOURCE,
-        TARGET
-    }
-
-    private Boolean checkBinlog(TBinlog binlog, Boolean update) {
-
-        // step 1: check binlog availability
-        if (binlog == null) {
-            return false
-        }
-
-        // step 2: check and set seq to context
-        if (binlog.isSetCommitSeq()) {
-            context.seq = binlog.getCommitSeq()
-            logger.info("Now last seq is ${context.seq}")
-        } else {
-            logger.error("Invalid binlog! binlog seq is unset.")
-            return false
-        }
-
-        // step 3: print binlog type
-        if (binlog.isSetType()) {
-            String typeName
-            switch (binlog.getType()) {
-                case TBinlogType.UPSERT:
-                    typeName = "UPSERT"
-                    break
-                case TBinlogType.CREATE_TABLE:
-                    typeName = "CREATE_TABLE"
-                    break
-                case TBinlogType.ADD_PARTITION:
-                    typeName = "ADD_PARTITION"
-                    break
-                default:
-                    typeName = "UNKNOWN"
-                    break
-            }
-            logger.info("binlog type name is ${typeName}")
-        }
-
-        // step 4: check binlog data is set and get metadata
-        if (binlog.isSetData()) {
-            String data = binlog.getData()
-            logger.info("binlog data is ${data}")
-            if (update) {
-                Gson gson = new Gson()
-                getSourceMeta(gson.fromJson(data, BinlogData.class))
-                logger.info("Source tableId: ${context.sourceTableMap}, ${context.sourceTableMap}")
-            }
-        } else {
-            logger.error("binlog data is not contains data!")
-            return false
-        }
-
-        return true
-    }
-
-    private Boolean checkGetBinlog(String table, TGetBinlogResult result, Boolean update) {
-        TBinlog binlog = null
-
-        // step 1: check status
-        if (result != null && result.isSetStatus()) {
-            TStatus status = result.getStatus()
-            if (status.isSetStatusCode()) {
-                TStatusCode code = status.getStatusCode()
-                switch (code) {
-                    case TStatusCode.BINLOG_TOO_OLD_COMMIT_SEQ:
-                    case TStatusCode.OK:
-                        if (result.isSetBinlogs()) {
-                            binlog = result.getBinlogs().first()
-                        }
-                        break
-                    case TStatusCode.BINLOG_DISABLE:
-                        logger.error("Binlog is disabled!")
-                        break
-                    case TStatusCode.BINLOG_TOO_NEW_COMMIT_SEQ:
-                        logger.error("Binlog is too new! Msg: ${status.getErrorMsgs()}")
-                        break
-                    case TStatusCode.BINLOG_NOT_FOUND_DB:
-                        logger.error("Binlog not found DB! DB: ${context.db}")
-                        break
-                    case TStatusCode.BINLOG_NOT_FOUND_TABLE:
-                        logger.error("Binlog not found table ${table}!")
-                        break
-                    case TStatusCode.ANALYSIS_ERROR:
-                        logger.error("Binlog result analysis error: ${status.getErrorMsgs()}")
-                        break
-                    default:
-                        logger.error("Binlog result is an unexpected code: ${code}")
-                        break
-                }
-            } else {
-                logger.error("Invalid TStatus! StatusCode is unset.")
-            }
-        } else {
-            logger.error("Invalid TGetBinlogResult! result: ${result}")
-        }
-
-        // step 2: check binlog
-        return checkBinlog(binlog, update)
-    }
-
-    private Boolean checkBeginTxn(TBeginTxnResult result) {
-        Boolean isCheckedOK = false
-
-        // step 1: check status
-        if (result != null && result.isSetStatus()) {
-            TStatus status = result.getStatus()
-            if (status.isSetStatusCode()) {
-                TStatusCode code = status.getStatusCode()
-                switch (code) {
-                    case TStatusCode.OK:
-                        isCheckedOK = true
-                        break
-                    case TStatusCode.LABEL_ALREADY_EXISTS:
-                        logger.error("Begin transaction label is exist! job status: ${result.getJobStatus()}")
-                        break
-                    case TStatusCode.ANALYSIS_ERROR:
-                        logger.error("Begin transaction analysis error! error massage: ${status.getErrorMsgs()}")
-                        break
-                    case TStatusCode.INTERNAL_ERROR:
-                        logger.error("Begin transaction internal error! error massage: ${status.getErrorMsgs()}")
-                        break
-                    default:
-                        logger.error("Begin transaction result is an unexpected code: ${code}")
-                        break
-                }
-            } else {
-                logger.error("Invalid TStatus! StatusCode is unset.")
-            }
-        } else {
-            logger.error("Invalid TBeginTxnResult! result: ${result}")
-        }
-
-        // step 2: check and set txnId to context
-        if (isCheckedOK && result.isSetTxnId()) {
-            logger.info("Begin transaction id is ${result.getTxnId()}")
-            context.txnId = result.getTxnId()
-        } else {
-            logger.error("Begin transaction txnId is unset!")
-            isCheckedOK = false
-        }
-
-        // step 3: print result information
-        if (isCheckedOK) {
-            if (result.isSetDbId()) {
-                logger.info("Begin transaction db id is ${result.getDbId()}")
-            }
-        }
-        return isCheckedOK
-    }
-
-    private Boolean checkIngestBinlog(TIngestBinlogResult result) {
-        Boolean isCheckedOK = false
-        if (result != null && result.isSetStatus()) {
-            TStatus status = result.getStatus()
-            if (status.isSetStatusCode()) {
-                TStatusCode code = status.getStatusCode()
-                switch (code) {
-                    case TStatusCode.OK:
-                        isCheckedOK = true
-                        break
-                    case TStatusCode.NOT_IMPLEMENTED_ERROR:
-                        logger.error("Ingest binlog enable feature binlog is false! job status: ${status.getErrorMsgs()}")
-                        break
-                    case TStatusCode.ANALYSIS_ERROR:
-                        logger.error("Ingest binlog analysis error! error massage: ${status.getErrorMsgs()}")
-                        break
-                    case TStatusCode.RUNTIME_ERROR:
-                        logger.error("Ingest binlog runtime error! error massage: ${status.getErrorMsgs()}")
-                        break
-                    default:
-                        logger.error("Ingest binlog result is an unexpected code: ${code}")
-                        break
-                }
-            } else {
-                logger.error("Invalid TStatus! StatusCode is unset.")
-            }
-        } else {
-            logger.error("Invalid TIngestBinlogResult! result: ${result}")
-        }
-        return isCheckedOK
-    }
-
-    private Boolean checkCommitTxn(TCommitTxnResult result) {
-        Boolean isCheckedOK = false
-
-        // step 1: check status
-        if (result != null && result.isSetStatus()) {
-            TStatus status = result.getStatus()
-            if (status.isSetStatusCode()) {
-                TStatusCode code = status.getStatusCode()
-                switch (code) {
-                    case TStatusCode.OK:
-                        isCheckedOK = true
-                        break
-                    case TStatusCode.PUBLISH_TIMEOUT:
-                        logger.error("Commit transaction publish timeout! job status: ${status.getErrorMsgs()}")
-                        break
-                    case TStatusCode.ANALYSIS_ERROR:
-                        logger.error("Commit transaction analysis error! error massage: ${status.getErrorMsgs()}")
-                        break
-                    case TStatusCode.INTERNAL_ERROR:
-                        logger.error("Commit transaction internal error! error massage: ${status.getErrorMsgs()}")
-                        break
-                    default:
-                        logger.error("Commit transaction result is an unexpected code: ${code}")
-                        break
-                }
-            } else {
-                logger.error("Invalid TStatus! StatusCode is unset.")
-            }
-        } else {
-            logger.error("Invalid TCommitTxnResult! result: ${result}")
-        }
-
-        if (isCheckedOK) {
-            logger.info("CommitInfos: ${context.commitInfos}")
-            context.commitInfos.clear()
-        }
-
-        return isCheckedOK
-    }
-
-    Boolean checkRestoreSnapshot(TRestoreSnapshotResult result) {
-        Boolean isCheckedOK = false
-
-        // step 1: check status
-        if (result != null && result.isSetStatus()) {
-            TStatus status = result.getStatus()
-            if (status.isSetStatusCode()) {
-                TStatusCode code = status.getStatusCode()
-                switch (code) {
-                    case TStatusCode.OK:
-                        isCheckedOK = true
-                        break
-                    default:
-                        logger.error("Restore SnapShot result code is: ${code}")
-                        break
-                }
-            } else {
-                logger.error("Invalid TStatus! StatusCode is unset.")
-            }
-        } else {
-            logger.error("Invalid TRestoreSnapshotResult! result: ${result}")
-        }
-
-        return isCheckedOK
-    }
-
-    Boolean checkSnapshotFinish() {
-        String checkSQL = "SHOW BACKUP FROM " + context.db
-        List<Object> row = suite.sql(checkSQL)[0]
-        logger.info("Now row is ${row}")
-
-        return (row[3] as String) == "FINISHED"
-    }
-
-    Boolean checkRestoreFinish() {
-        String checkSQL = "SHOW RESTORE FROM " + context.db
-        List<Object> row = suite.sql(checkSQL)[0]
-        logger.info("Now row is ${row}")
-
-        return (row[4] as String) == "FINISHED"
-    }
-
-    Boolean checkGetSnapshot() {
-        TGetSnapshotResult result = context.getSnapshotResult
-        Boolean isCheckedOK = false
-
-        // step 1: check status
-        if (result != null && result.isSetStatus()) {
-            TStatus status = result.getStatus()
-            if (status.isSetStatusCode()) {
-                TStatusCode code = status.getStatusCode()
-                switch (code) {
-                    case TStatusCode.OK:
-                        if (!result.isSetMeta()) {
-                            logger.error("TGetSnapshotResult meta is unset.")
-                        } else if (!result.isSetJobInfo()) {
-                            logger.error("TGetSnapshotResult job info is unset.")
-                        } else {
-                            isCheckedOK = true
-                        }
-                        break
-                    default:
-                        logger.error("Get SnapShot result code is: ${code}")
-                        break
-                }
-            } else {
-                logger.error("Invalid TStatus! StatusCode is unset.")
-            }
-        } else {
-            logger.error("Invalid TGetSnapshotResult! result: ${result}")
-        }
-
-        return isCheckedOK
-    }
-
-    HashMap<Long, BackendClientImpl> getBackendClientsImpl(ccrCluster cluster) throws TTransportException {
-        HashMap<Long, BackendClientImpl> clientsMap = new HashMap<Long, BackendClientImpl>()
-        String backendSQL = "SHOW PROC '/backends'"
-        List<List<Object>> backendInformation
-        if (cluster == ccrCluster.SOURCE) {
-            backendInformation = suite.sql(backendSQL)
-        } else {
-            backendInformation = suite.target_sql(backendSQL)
-        }
-        for (List<Object> row : backendInformation) {
-            TNetworkAddress address = new TNetworkAddress(row[1] as String, row[3] as int)
-            BackendClientImpl client = new BackendClientImpl(address, row[4] as int)
-            clientsMap.put(row[0] as Long, client)
-        }
-        return clientsMap
-    }
-
-    void getSourceMeta(BinlogData binlogData) {
-        logger.info("data struct: ${binlogData}")
-        context.sourceTableIdToName.clear()
-        context.sourceTableMap.clear()
-
-        context.sourceDbId = binlogData.dbId
-
-        String metaSQL = "SHOW PROC '/dbs/" + binlogData.dbId.toString()
-        List<List<Object>> sqlInfo = suite.sql(metaSQL + "'")
-
-        // Get table information
-        for (List<Object> row : sqlInfo) {
-            context.sourceTableIdToName.put(row[0] as Long, row[1] as String)
-        }
-
-        // Get table meta in binlog
-        binlogData.tableRecords.forEach((tableId, partitionRecord) -> {
-            String tableName = context.sourceTableIdToName.get(tableId)
-            TableMeta tableMeta = new TableMeta(tableId)
-
-            partitionRecord.partitionRecords.forEach {
-                String partitionSQL = metaSQL + "/" + tableId.toString() + "/partitions/" + it.partitionId.toString()
-                sqlInfo = suite.sql(partitionSQL + "'")
-                PartitionMeta partitionMeta = new PartitionMeta(sqlInfo[0][0] as Long, it.version)
-                partitionSQL += "/" + partitionMeta.indexId.toString()
-                sqlInfo = suite.sql(partitionSQL + "'")
-                sqlInfo.forEach(row -> {
-                    partitionMeta.tabletMeta.put((row[0] as Long), (row[2] as Long))
-                })
-                tableMeta.partitionMap.put(it.partitionId, partitionMeta)
-            }
-            context.sourceTableMap.put(tableName, tableMeta)
-        })
-    }
-
-    ArrayList<TTabletCommitInfo> copyCommitInfos() {
-        return new ArrayList<TTabletCommitInfo>(context.commitInfos)
-    }
-
-    ArrayList<TTabletCommitInfo> resetCommitInfos() {
-        def info = copyCommitInfos()
-        context.commitInfos = new ArrayList<TTabletCommitInfo>()
-        return info
-    }
-
-    void addCommitInfo(long tabletId, long backendId) {
-        context.commitInfos.add(new TTabletCommitInfo(tabletId, backendId))
-    }
-
-    Boolean getBackendClients() {
-        logger.info("Begin to get backend's maps.")
-
-        // get source backend clients
-        try {
-            context.sourceBackendClients = getBackendClientsImpl(ccrCluster.SOURCE)
-        } catch (TTransportException e) {
-            logger.error("Create source cluster backend client fail: ${e.toString()}")
-            return false
-        }
-
-        // get target backend clients
-        try {
-            context.targetBackendClients = getBackendClientsImpl(ccrCluster.TARGET)
-        } catch (TTransportException e) {
-            logger.error("Create target cluster backend client fail: ${e.toString()}")
-            return false
-        }
-        return true
-    }
-
-    void closeBackendClients() {
-        context.closeBackendClients()
-    }
-
-    Boolean restoreSnapshot() {
-        logger.info("Restore snapshot ${context.labelName}")
-        FrontendClientImpl clientImpl = context.getSourceFrontClient()
-
-        // step 1: recode job info
-        Gson gson = new Gson()
-        Map jsonMap = gson.fromJson(new String(context.getSnapshotResult.getJobInfo()), Map.class)
-        getBackendClients()
-        jsonMap.put("extra_info", context.genExtraInfo())
-        logger.info("json map ${jsonMap}.")
-        context.getSnapshotResult.setJobInfo(gson.toJson(jsonMap).getBytes())
-
-        // step 2: restore
-        TRestoreSnapshotResult result = SyncerUtils.restoreSnapshot(clientImpl, context)
-        return checkRestoreSnapshot(result)
-    }
-
-    Boolean getSnapshot(String labelName, String table) {
-        logger.info("Get snapshot ${labelName}")
-        FrontendClientImpl clientImpl = context.getSourceFrontClient()
-        context.getSnapshotResult = SyncerUtils.getSnapshot(clientImpl, labelName, table, context)
-        context.labelName = labelName
-        context.tableName = table
-        return checkGetSnapshot()
-    }
-
-    Boolean getTargetMeta(String table = "") {
-        logger.info("Get target cluster meta data.")
-        String baseSQL = "SHOW PROC '/dbs"
-        List<List<Object>> sqlInfo
-
-        // step 1: get target dbId
-        Long dbId = -1
-        sqlInfo = suite.target_sql(baseSQL + "'")
-        for (List<Object> row : sqlInfo) {
-            String[] dbName = (row[1] as String).split(":")
-            if (dbName[1] == ("TEST_" + context.db)) {
-                dbId = row[0] as Long
-                break
-            }
-        }
-        if (dbId == -1) {
-            logger.error("Target cluster get ${context.db} db error.")
-            return false
-        }
-        context.targetDbId = dbId
-
-        // step 2: get target dbId/tableId
-        baseSQL += "/" + dbId.toString()
-        sqlInfo = suite.target_sql(baseSQL + "'")
-        if (table == "") {
-            for (List<Object> row : sqlInfo) {
-                context.targetTableMap.put(row[1] as String, new TableMeta(row[0] as long))
-            }
-        } else {
-            for (List<Object> row : sqlInfo) {
-                if ((row[1] as String) == table) {
-                    context.targetTableMap.put(row[1] as String, new TableMeta(row[0] as long))
-                    break
-                }
-            }
-        }
-
-
-        // step 3: get partitionIds
-        context.targetTableMap.values().forEach {
-            baseSQL += "/" + it.id.toString() + "/partitions"
-            ArrayList<Long> partitionIds = new ArrayList<Long>()
-            sqlInfo = suite.target_sql(baseSQL + "'")
-            for (List<Object> row : sqlInfo) {
-                partitionIds.add(row[0] as Long)
-            }
-            if (partitionIds.isEmpty()) {
-                logger.error("Target cluster get partitions fault.")
-                return false
-            }
-
-            // step 4: get partitionMetas
-            for (Long id : partitionIds) {
-
-                // step 4.1: get partition/indexId
-                String partitionSQl = baseSQL + "/" + id.toString()
-                sqlInfo = suite.target_sql(partitionSQl + "'")
-                if (sqlInfo.isEmpty()) {
-                    logger.error("Target cluster partition-${id} indexId fault.")
-                    return false
-                }
-                PartitionMeta meta = new PartitionMeta(sqlInfo[0][0] as Long, -1)
-
-                // step 4.2: get partition/indexId/tabletId
-                partitionSQl += "/" + meta.indexId.toString()
-                sqlInfo = suite.target_sql(partitionSQl + "'")
-                for (List<Object> row : sqlInfo) {
-                    meta.tabletMeta.put(row[0] as Long, row[2] as Long)
-                }
-                if (meta.tabletMeta.isEmpty()) {
-                    logger.error("Target cluster get (partitionId/indexId)-(${id}/${meta.indexId}) tabletIds fault.")
-                    return false
-                }
-
-                it.partitionMap.put(id, meta)
-            }
-        }
-
-
-        logger.info("Target cluster metadata: ${context.targetTableMap}")
-        return true
-    }
-
-    Boolean checkTargetVersion() {
-        logger.info("Check target tablets version")
-        context.targetTableMap.values().forEach {
-            String baseSQL = "SHOW PROC '/dbs/" + context.targetDbId.toString() + "/" +
-                    it.id.toString() + "/partitions/"
-            it.partitionMap.forEach((id, meta) -> {
-                String versionSQL = baseSQL + id.toString() + "/" + meta.indexId.toString()
-                List<List<Object>> sqlInfo = suite.target_sql(versionSQL + "'")
-                for (List<Object> row : sqlInfo) {
-                    Long tabletVersion = row[4] as Long
-                    if (tabletVersion != meta.version) {
-                        logger.error(
-                                "Version miss match! partitionId: ${id}, tabletId: ${row[0] as Long}," +
-                                " Now version is ${meta.version}, but tablet version is ${tabletVersion}")
-                        return false
-                    }
-                }
-            })
-        }
-
-        return true
-    }
-
-    Boolean getBinlog(String table = "", Boolean update = true) {
-        logger.info("Get binlog from source cluster ${context.config.feSourceThriftNetworkAddress}, binlog seq: ${context.seq}")
-        FrontendClientImpl clientImpl = context.getSourceFrontClient()
-        TGetBinlogResult result = SyncerUtils.getBinLog(clientImpl, context, table)
-        return checkGetBinlog(table, result, update)
-    }
-
-    Boolean beginTxn(String table) {
-        logger.info("Begin transaction to target cluster ${context.config.feTargetThriftNetworkAddress}")
-        FrontendClientImpl clientImpl = context.getTargetFrontClient()
-        TBeginTxnResult result = SyncerUtils.beginTxn(clientImpl, context, table)
-        return checkBeginTxn(result)
-    }
-
-    Boolean ingestBinlog(long fakePartitionId = -1, long fakeVersion = -1) {
-        logger.info("Begin to ingest binlog.")
-
-        // step 1: Check meta data is valid
-        if (!context.metaIsValid()) {
-            logger.error("Meta data miss match, src: ${context.sourceTableMap}, target: ${context.targetTableMap}")
-            return false
-        }
-
-        // step 2: Begin ingest binlog
-        // step 2.1: ingest each table in meta
-        for (Entry<String, TableMeta> tableInfo : context.sourceTableMap) {
-            String tableName = tableInfo.key
-            TableMeta srcTableMeta = tableInfo.value
-            TableMeta tarTableMeta = context.targetTableMap.get(tableName)
-
-            Iterator sourcePartitionIter = srcTableMeta.partitionMap.iterator()
-            Iterator targetPartitionIter = tarTableMeta.partitionMap.iterator()
-            // step 2.2: ingest each partition in the table
-            while (sourcePartitionIter.hasNext()) {
-                Entry srcPartition = sourcePartitionIter.next()
-                Entry tarPartition = targetPartitionIter.next()
-                Iterator srcTabletIter = srcPartition.value.tabletMeta.iterator()
-                Iterator tarTabletIter = tarPartition.value.tabletMeta.iterator()
-
-                // step 2.3: ingest each tablet in the partition
-                while (srcTabletIter.hasNext()) {
-                    Entry srcTabletMap = srcTabletIter.next()
-                    Entry tarTabletMap = tarTabletIter.next()
-
-                    BackendClientImpl srcClient = context.sourceBackendClients.get(srcTabletMap.value)
-                    if (srcClient == null) {
-                        logger.error("Can't find src tabletId-${srcTabletMap.key} -> beId-${srcTabletMap.value}")
-                        return false
-                    }
-                    BackendClientImpl tarClient = context.targetBackendClients.get(tarTabletMap.value)
-                    if (tarClient == null) {
-                        logger.error("Can't find target tabletId-${tarTabletMap.key} -> beId-${tarTabletMap.value}")
-                        return false
-                    }
-
-                    tarPartition.value.version = srcPartition.value.version
-                    long partitionId = fakePartitionId == -1 ? srcPartition.key : fakePartitionId
-                    long version = fakeVersion == -1 ? srcPartition.value.version : fakeVersion
-
-                    TIngestBinlogRequest request = new TIngestBinlogRequest()
-                    TUniqueId uid = new TUniqueId(-1, -1)
-                    request.setTxnId(context.txnId)
-                    request.setRemoteTabletId(srcTabletMap.key)
-                    request.setBinlogVersion(version)
-                    request.setRemoteHost(srcClient.address.hostname)
-                    request.setRemotePort(srcClient.httpPort.toString())
-                    request.setPartitionId(partitionId)
-                    request.setLocalTabletId(tarTabletMap.key)
-                    request.setLoadId(uid)
-                    logger.info("request -> ${request}")
-                    TIngestBinlogResult result = tarClient.client.ingestBinlog(request)
-                    if (!checkIngestBinlog(result)) {
-                        return false
-                    }
-
-                    addCommitInfo(tarTabletMap.key, tarTabletMap.value)
-                }
-            }
-        }
-
-        return true
-    }
-
-    Boolean commitTxn() {
-        logger.info("Commit transaction to target cluster ${context.config.feTargetThriftNetworkAddress}, txnId: ${context.txnId}")
-        FrontendClientImpl clientImpl = context.getTargetFrontClient()
-        TCommitTxnResult result = SyncerUtils.commitTxn(clientImpl, context)
-        return checkCommitTxn(result)
-    }
-}
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SyncerContext.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SyncerContext.groovy
deleted file mode 100644
index 1b00c9caa6..0000000000
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SyncerContext.groovy
+++ /dev/null
@@ -1,212 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.regression.suite
-
-import org.apache.doris.regression.Config
-import org.apache.doris.regression.suite.client.BackendClientImpl
-import org.apache.doris.regression.suite.client.FrontendClientImpl
-import org.apache.doris.thrift.TTabletCommitInfo
-import org.apache.doris.thrift.TGetSnapshotResult
-import com.google.gson.annotations.SerializedName
-
-import java.sql.Connection
-
-class PartitionMeta {
-    public long version
-    public long indexId
-    public TreeMap<Long, Long> tabletMeta
-
-    PartitionMeta(long indexId, long version) {
-        this.indexId = indexId
-        this.version = version
-        this.tabletMeta = new TreeMap<Long, Long>()
-    }
-
-    String toString() {
-        return "PartitionMeta: { version: " + version.toString() + ", " + tabletMeta.toString() + " }"
-    }
-}
-
-class TableMeta {
-    public long id
-    public TreeMap<Long, PartitionMeta> partitionMap = new TreeMap<>()
-
-    TableMeta(long tableId) {
-        this.id = tableId
-    }
-
-    String toString() {
-        return "TableMeta: { id: " + id.toString() + ", " + partitionMap.toString() + " }"
-    }
-}
-
-class ExtraInfo {
-    class NetworkAddr {
-        @SerializedName("ip")
-        String ip
-        @SerializedName("port")
-        int port
-
-        NetworkAddr(String ip, int port) {
-            this.ip = ip
-            this.port = port
-        }
-
-        String toString() {
-            return String.format("Addr: { Ip: %s, port %d }", ip, port)
-        }
-    }
-
-    @SerializedName("be_network_map")
-    HashMap<Long, NetworkAddr> beNetworkMap
-    @SerializedName("token")
-    String token
-
-    ExtraInfo(String token) {
-        this.token = token
-        this.beNetworkMap = new HashMap<>()
-    }
-
-    String toString() {
-        return String.format("ExtraInfo: { token: %s, beNetwork:%s }", token, beNetworkMap.toString())
-    }
-
-    void addBackendNetaddr(Long beId, String ip, int port) {
-        beNetworkMap.put(beId, new NetworkAddr(ip, port))
-    }
-}
-
-class SyncerContext {
-    protected Connection targetConnection
-    protected FrontendClientImpl sourceFrontendClient
-    protected FrontendClientImpl targetFrontendClient
-
-    protected Long sourceDbId
-    protected HashMap<Long, String> sourceTableIdToName = new HashMap<>()
-    protected HashMap<String, TableMeta> sourceTableMap = new HashMap<>()
-    protected Long targetDbId
-    protected HashMap<String, TableMeta> targetTableMap = new HashMap<>()
-
-    protected HashMap<Long, BackendClientImpl> sourceBackendClients = new HashMap<Long, BackendClientImpl>()
-    protected HashMap<Long, BackendClientImpl> targetBackendClients = new HashMap<Long, BackendClientImpl>()
-
-    public ArrayList<TTabletCommitInfo> commitInfos = new ArrayList<TTabletCommitInfo>()
-
-    public String labelName
-    public String tableName
-    public TGetSnapshotResult getSnapshotResult
-
-    public Config config
-    public String user
-    public String passwd
-    public String db
-    public long txnId
-    public long seq
-
-    SyncerContext(String dbName, Config config) {
-        this.db = dbName
-        this.config = config
-        this.user = config.feSyncerUser
-        this.passwd = config.feSyncerPassword
-        this.seq = -1
-    }
-
-    ExtraInfo genExtraInfo() {
-        ExtraInfo info = new ExtraInfo("5ff161c3-2c08-4079-b108-26c8850b6598")
-        sourceBackendClients.forEach((id, client) -> {
-            info.addBackendNetaddr(id, client.address.hostname, client.httpPort)
-        })
-        return info
-    }
-
-    FrontendClientImpl getSourceFrontClient() {
-        if (sourceFrontendClient == null) {
-            sourceFrontendClient = new FrontendClientImpl(config.feSourceThriftNetworkAddress)
-        }
-        return sourceFrontendClient
-    }
-
-    FrontendClientImpl getTargetFrontClient() {
-        if (targetFrontendClient == null) {
-            targetFrontendClient = new FrontendClientImpl(config.feTargetThriftNetworkAddress)
-        }
-        return targetFrontendClient
-    }
-
-    Boolean metaIsValid() {
-        if (sourceTableMap.isEmpty() && targetTableMap.isEmpty()) {
-            return false
-        } else if (sourceTableMap.size() != targetTableMap.size()) {
-            return false
-        }
-
-        sourceTableMap.forEach((tableName, srcTableMeta) -> {
-            TableMeta tarTableMeta = targetTableMap.get(tableName)
-            if (tarTableMeta == null) {
-                return false
-            } else if (srcTableMeta.partitionMap.isEmpty() && tarTableMeta.partitionMap.isEmpty()) {
-                return false
-            } else if (srcTableMeta.partitionMap.size() != tarTableMeta.partitionMap.size()) {
-                return false
-            }
-
-            Iterator srcPartitionIter = srcTableMeta.partitionMap.iterator()
-            Iterator tarPartitionIter = tarTableMeta.partitionMap.iterator()
-            while (srcPartitionIter.hasNext()) {
-                Map srcTabletMeta = srcPartitionIter.next().value.tabletMeta
-                Map tarTabletMeta = tarPartitionIter.next().value.tabletMeta
-
-                if (srcTabletMeta.isEmpty() && tarTabletMeta.isEmpty()) {
-                    return false
-                } else if (srcTabletMeta.size() != tarTabletMeta.size()) {
-                    return false
-                }
-            }
-        })
-
-        return true
-    }
-
-    void closeBackendClients() {
-        if (!sourceBackendClients.isEmpty()) {
-            for (BackendClientImpl client in sourceBackendClients.values()) {
-                client.close()
-            }
-        }
-        sourceBackendClients.clear()
-        if (!targetBackendClients.isEmpty()) {
-            for (BackendClientImpl client in targetBackendClients.values()) {
-                client.close()
-            }
-        }
-        targetBackendClients.clear()
-    }
-
-    void closeAllClients() {
-        if (sourceFrontendClient != null) {
-            sourceFrontendClient.close()
-        }
-        if (targetFrontendClient != null) {
-            targetFrontendClient.close()
-        }
-    }
-
-    void closeConn() {
-        targetConnection.close()
-    }
-}
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/client/BackendClientImpl.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/client/BackendClientImpl.groovy
deleted file mode 100644
index 5695baa729..0000000000
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/client/BackendClientImpl.groovy
+++ /dev/null
@@ -1,48 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.regression.suite.client
-
-import org.apache.doris.thrift.BackendService
-import org.apache.doris.thrift.TNetworkAddress
-import org.apache.thrift.protocol.TBinaryProtocol
-import org.apache.thrift.transport.TSocket
-import org.apache.thrift.transport.TTransportException
-
-class BackendClientImpl {
-    private TSocket tSocket
-
-    public TNetworkAddress address
-    public int httpPort
-    public BackendService.Client client
-
-    BackendClientImpl(TNetworkAddress address, int httpPort) throws TTransportException {
-        this.address = address
-        this.httpPort = httpPort
-        this.tSocket = new TSocket(address.hostname, address.port)
-        this.client = new BackendService.Client(new TBinaryProtocol(this.tSocket))
-        this.tSocket.open()
-    }
-
-    String toString() {
-        return "BackendClientImpl: {" + address.toString() + " }"
-    }
-
-    void close() {
-        tSocket.close()
-    }
-}
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/client/FrontendClientImpl.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/client/FrontendClientImpl.groovy
deleted file mode 100644
index af7af1c93c..0000000000
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/client/FrontendClientImpl.groovy
+++ /dev/null
@@ -1,40 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.regression.suite.client
-
-import org.apache.doris.thrift.FrontendService
-import org.apache.doris.thrift.TNetworkAddress
-import org.apache.thrift.protocol.TBinaryProtocol
-import org.apache.thrift.transport.TSocket
-import org.apache.thrift.transport.TTransportException
-
-
-class FrontendClientImpl {
-    private TSocket tSocket
-    public FrontendService.Client client
-
-    FrontendClientImpl(TNetworkAddress address) throws TTransportException {
-        this.tSocket = new TSocket(address.hostname, address.port)
-        this.client = new FrontendService.Client(new TBinaryProtocol(tSocket))
-        this.tSocket.open()
-    }
-
-    void close() {
-        this.tSocket.close()
-    }
-}
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/SyncerUtils.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/SyncerUtils.groovy
deleted file mode 100644
index d622923d35..0000000000
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/SyncerUtils.groovy
+++ /dev/null
@@ -1,114 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-package org.apache.doris.regression.util
-
-
-import org.apache.doris.regression.suite.SyncerContext
-import org.apache.doris.regression.suite.client.BackendClientImpl
-import org.apache.doris.regression.suite.client.FrontendClientImpl
-import org.apache.doris.thrift.TBeginTxnRequest
-import org.apache.doris.thrift.TBeginTxnResult
-import org.apache.doris.thrift.TCommitTxnRequest
-import org.apache.doris.thrift.TCommitTxnResult
-import org.apache.doris.thrift.TGetSnapshotRequest
-import org.apache.doris.thrift.TGetSnapshotResult
-import org.apache.doris.thrift.TIngestBinlogRequest
-import org.apache.doris.thrift.TIngestBinlogResult
-import org.apache.doris.thrift.TRestoreSnapshotRequest
-import org.apache.doris.thrift.TRestoreSnapshotResult
-import org.apache.doris.thrift.TSnapshotType
-import org.apache.thrift.TException
-import org.apache.doris.thrift.TGetBinlogRequest
-import org.apache.doris.thrift.TGetBinlogResult
-
-class SyncerUtils {
-    private static <T> void setAuthorInformation(T request, SyncerContext context) {
-        request.setUser(context.user)
-        request.setPasswd(context.passwd)
-    }
-
-    private static String newLabel(SyncerContext context, String table) {
-        return String.format("ccr_sync_job:%s:%s:%d", context.db, table, context.seq)
-    }
-
-    static TGetBinlogResult getBinLog(FrontendClientImpl clientImpl, SyncerContext context, String table) throws TException {
-        TGetBinlogRequest request = new TGetBinlogRequest()
-        setAuthorInformation(request, context)
-        request.setDb(context.db)
-        if (!table.isEmpty()) {
-            request.setTable(table)
-        }
-        request.setPrevCommitSeq(context.seq)
-        return clientImpl.client.getBinlog(request)
-    }
-
-    static TBeginTxnResult beginTxn(FrontendClientImpl clientImpl, SyncerContext context, String table) throws TException {
-        TBeginTxnRequest request = new TBeginTxnRequest()
-        setAuthorInformation(request, context)
-        request.setDb("TEST_" + context.db)
-        if (table != null) {
-            request.addToTables(table)
-        }
-        request.setLabel(newLabel(context, table))
-        return clientImpl.client.beginTxn(request)
-
-    }
-
-    static TIngestBinlogResult ingestBinlog(BackendClientImpl clientImpl, TIngestBinlogRequest request) throws TException {
-        return clientImpl.client.ingestBinlog(request)
-    }
-
-    static TCommitTxnResult commitTxn(FrontendClientImpl clientImpl, SyncerContext context) throws TException {
-        TCommitTxnRequest request = new TCommitTxnRequest()
-        setAuthorInformation(request, context)
-        request.setDb("TEST_" + context.db)
-        request.setCommitInfos(context.commitInfos)
-        request.setTxnId(context.txnId)
-        return clientImpl.client.commitTxn(request)
-    }
-
-    static TGetSnapshotResult getSnapshot(FrontendClientImpl clientImpl, String labelName, String table, SyncerContext context) throws TException {
-        TGetSnapshotRequest request = new TGetSnapshotRequest()
-        setAuthorInformation(request, context)
-        request.setDb(context.db)
-        request.setLabelName(labelName)
-        if (table != null) {
-            request.setTable(table)
-        }
-        request.setSnapshotType(TSnapshotType.LOCAL)
-        request.setSnapshotName("")
-        return clientImpl.client.getSnapshot(request)
-    }
-
-    static TRestoreSnapshotResult restoreSnapshot(FrontendClientImpl clientImpl, SyncerContext context) throws TException {
-        TRestoreSnapshotRequest request = new TRestoreSnapshotRequest()
-        setAuthorInformation(request, context)
-        request.setDb(context.db)
-        if (context.tableName != null) {
-            request.setTable(context.tableName)
-        }
-        request.setRepoName("__keep_on_local__")
-        request.setLabelName(context.labelName)
-        HashMap<String, String> properties = new HashMap<>()
-        properties.put("reserve_replica", "true")
-        request.setProperties(properties)
-        request.setMeta(context.getSnapshotResult.getMeta())
-        request.setJobInfo(context.getSnapshotResult.getJobInfo())
-        return clientImpl.client.restoreSnapshot(request)
-    }
-}
diff --git a/regression-test/pipeline/p0/conf/be.conf b/regression-test/pipeline/p0/conf/be.conf
index ec37da6867..9e9525d25a 100644
--- a/regression-test/pipeline/p0/conf/be.conf
+++ b/regression-test/pipeline/p0/conf/be.conf
@@ -71,4 +71,3 @@ fragment_pool_thread_num_max=5000
 enable_fuzzy_mode=true
 max_depth_of_expr_tree=200
 enable_set_in_bitmap_value=true
-enable_feature_binlog=true
diff --git a/regression-test/pipeline/p0/conf/fe.conf b/regression-test/pipeline/p0/conf/fe.conf
index 677545c0f9..377be6ea11 100644
--- a/regression-test/pipeline/p0/conf/fe.conf
+++ b/regression-test/pipeline/p0/conf/fe.conf
@@ -76,7 +76,6 @@ use_fuzzy_session_variable=true
 
 enable_map_type=true
 enable_struct_type=true
-enable_feature_binlog=true
 
 # enable mtmv
 enable_mtmv = true
diff --git a/regression-test/pipeline/p1/conf/be.conf b/regression-test/pipeline/p1/conf/be.conf
index 730cfaba3d..002ded1d55 100644
--- a/regression-test/pipeline/p1/conf/be.conf
+++ b/regression-test/pipeline/p1/conf/be.conf
@@ -68,4 +68,3 @@ tablet_map_shard_size=256
 fragment_pool_thread_num_max=5000
 enable_fuzzy_mode=true
 enable_set_in_bitmap_value=true
-enable_feature_binlog=true
diff --git a/regression-test/pipeline/p1/conf/fe.conf b/regression-test/pipeline/p1/conf/fe.conf
index 51c6cb2d2a..8e8b2de969 100644
--- a/regression-test/pipeline/p1/conf/fe.conf
+++ b/regression-test/pipeline/p1/conf/fe.conf
@@ -83,5 +83,3 @@ enable_auto_collect_statistics=true
 auto_check_statistics_in_sec=60
 
 dynamic_partition_check_interval_seconds=3
-
-enable_feature_binlog=true
diff --git a/regression-test/suites/ccr_syncer_p0/test_binlog_config_change.groovy b/regression-test/suites/ccr_syncer_p0/test_binlog_config_change.groovy
deleted file mode 100644
index b9cccb0fc4..0000000000
--- a/regression-test/suites/ccr_syncer_p0/test_binlog_config_change.groovy
+++ /dev/null
@@ -1,106 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_binlog_config_change") {
-
-    def syncer = getSyncer()
-    def tableName = "tbl_binlog_config_change"
-    def test_num = 0
-    def insert_num = 5
-
-    sql "DROP TABLE IF EXISTS ${tableName}"
-    sql """
-        CREATE TABLE if NOT EXISTS ${tableName} 
-        (
-            `test` INT,
-            `id` INT
-        )
-        ENGINE=OLAP
-        UNIQUE KEY(`test`, `id`)
-        DISTRIBUTED BY HASH(id) BUCKETS 1 
-        PROPERTIES ( 
-            "replication_allocation" = "tag.location.default: 1"
-        )
-    """
-    sql """ALTER TABLE ${tableName} set ("binlog.enable" = "true")"""
-
-    target_sql "DROP TABLE IF EXISTS ${tableName}"
-    target_sql """
-        CREATE TABLE if NOT EXISTS ${tableName} 
-        (
-            `test` INT,
-            `id` INT
-        )
-        ENGINE=OLAP
-        UNIQUE KEY(`test`, `id`)
-        DISTRIBUTED BY HASH(id) BUCKETS 1 
-        PROPERTIES ( 
-            "replication_allocation" = "tag.location.default: 1"
-        )
-    """
-    assertTrue(syncer.getTargetMeta("${tableName}"))
-
-    // test 1: target cluster follow source cluster
-    logger.info("=== Test 1: Target cluster follow source cluster case ===")
-    test_num = 1
-    for (int index = 0; index < insert_num; index++) {
-        sql """
-            INSERT INTO ${tableName} VALUES (${test_num}, ${index})
-            """
-        assertTrue(syncer.getBinlog("${tableName}"))
-        assertTrue(syncer.beginTxn("${tableName}"))
-        assertTrue(syncer.getBackendClients())
-        assertTrue(syncer.ingestBinlog())
-        assertTrue(syncer.commitTxn())
-        assertTrue(syncer.checkTargetVersion())
-        syncer.closeBackendClients()
-    }
-
-    def res = target_sql """SELECT * FROM ${tableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == insert_num)
-
-    // TODO: bugfix
-    // test 2: source cluster disable and re-enable binlog
-    // target_sql "DROP TABLE IF EXISTS ${tableName}"
-    // target_sql """
-    //     CREATE TABLE if NOT EXISTS ${tableName} 
-    //     (
-    //         `test` INT,
-    //         `id` INT
-    //     )
-    //     ENGINE=OLAP
-    //     UNIQUE KEY(`test`, `id`)
-    //     DISTRIBUTED BY HASH(id) BUCKETS 1 
-    //     PROPERTIES ( 
-    //         "replication_allocation" = "tag.location.default: 1"
-    //     )
-    // """
-    // sql """ALTER TABLE ${tableName} set ("binlog.enable" = "false")"""
-    // sql """ALTER TABLE ${tableName} set ("binlog.enable" = "true")"""
-
-    // syncer.context.seq = -1
-
-    // assertTrue(syncer.getBinlog("${tableName}"))
-    // assertTrue(syncer.beginTxn("${tableName}"))
-    // assertTrue(syncer.ingestBinlog())
-    // assertTrue(syncer.commitTxn())
-    // assertTrue(syncer.checkTargetVersion())
-
-    // res = target_sql """SELECT * FROM ${tableName} WHERE test=${test_num}"""
-    // assertTrue(res.size() == insert_num)
-
-}
\ No newline at end of file
diff --git a/regression-test/suites/ccr_syncer_p0/test_get_binlog.groovy b/regression-test/suites/ccr_syncer_p0/test_get_binlog.groovy
deleted file mode 100644
index a4b7e18e15..0000000000
--- a/regression-test/suites/ccr_syncer_p0/test_get_binlog.groovy
+++ /dev/null
@@ -1,140 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_get_binlog_case") {
-
-    def create_table = { TableName ->
-        sql "DROP TABLE IF EXISTS ${TableName}"
-        sql """
-            CREATE TABLE if NOT EXISTS ${TableName} 
-            (
-                `test` INT,
-                `id` INT
-            )
-            ENGINE=OLAP
-            UNIQUE KEY(`test`, `id`)
-            DISTRIBUTED BY HASH(id) BUCKETS 1 
-            PROPERTIES ( 
-                "replication_allocation" = "tag.location.default: 1"
-            )
-        """
-    }
-    
-    def syncer = getSyncer()
-    def seqTableName = "tbl_get_binlog_case"
-    def test_num = 0
-    def insert_num = 5
-    long seq = -1
-    create_table.call(seqTableName)
-    sql """ALTER TABLE ${seqTableName} set ("binlog.enable" = "true")"""
-    sql """
-            INSERT INTO ${seqTableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${seqTableName}"))
-    long firstSeq = syncer.context.seq
-
-
-
-
-    logger.info("=== Test 1: normal case ===")
-    test_num = 1
-    for (int index = 0; index < insert_num; index++) {
-        sql """
-            INSERT INTO ${seqTableName} VALUES (${test_num}, ${index})
-            """
-        assertTrue(syncer.getBinlog("${seqTableName}"))
-    }
-
-    long endSeq = syncer.context.seq
-
-
-
-
-    logger.info("=== Test 2: Abnormal seq case ===")
-    logger.info("=== Test 2.1: too old seq case ===")
-    syncer.context.seq = -1
-    assertTrue(syncer.context.seq == -1)
-    assertTrue(syncer.getBinlog("${seqTableName}"))
-    assertTrue(syncer.context.seq == firstSeq)
-
-
-    logger.info("=== Test 2.2: too new seq case ===")
-    syncer.context.seq = endSeq + 100
-    assertTrue((syncer.getBinlog("${seqTableName}")) == false)
-
-
-    logger.info("=== Test 2.3: not find table case ===")
-    assertTrue(syncer.getBinlog("this_is_an_invalid_tbl") == false)
-
-
-    logger.info("=== Test 2.4: seq between first and end case ===")
-    long midSeq = (firstSeq + endSeq) / 2
-    syncer.context.seq = midSeq
-    assertTrue(syncer.getBinlog("${seqTableName}"))
-    long test5Seq = syncer.context.seq
-    assertTrue(firstSeq <= test5Seq && test5Seq <= endSeq)
-
-    
-
-
-
-    logger.info("=== Test 3: Get binlog with different priv user case ===")
-    logger.info("=== Test 3.1: read only user get binlog case ===")
-    // TODO: bugfix
-    // syncer.context.seq = -1
-    // readOnlyUser = "read_only_user"
-    // sql """DROP USER IF EXISTS ${readOnlyUser}"""
-    // sql """CREATE USER ${readOnlyUser} IDENTIFIED BY '123456'"""
-    // sql """GRANT ALL ON ${context.config.defaultDb}.* TO ${readOnlyUser}"""
-    // sql """GRANT SELECT_PRIV ON TEST_${context.dbName}.${seqTableName} TO ${readOnlyUser}"""
-    // syncer.context.user = "${readOnlyUser}"
-    // syncer.context.passwd = "123456"
-    // assertTrue(syncer.getBinlog("${seqTableName}"))
-
-    
-    logger.info("=== Test 3.2: no priv user get binlog case ===")
-    syncer.context.seq = -1
-    noPrivUser = "no_priv_user"
-    emptyTable = "tbl_empty_test"
-    sql "DROP TABLE IF EXISTS ${emptyTable}"
-    sql """
-        CREATE TABLE if NOT EXISTS ${emptyTable} 
-        (
-            `test` INT,
-            `id` INT
-        )
-        ENGINE=OLAP
-        UNIQUE KEY(`test`, `id`)
-        DISTRIBUTED BY HASH(id) BUCKETS 1 
-        PROPERTIES ( 
-            "replication_allocation" = "tag.location.default: 1"
-        )
-    """
-    sql """DROP USER IF EXISTS ${noPrivUser}"""
-    sql """CREATE USER ${noPrivUser} IDENTIFIED BY '123456'"""
-    sql """GRANT ALL ON ${context.config.defaultDb}.* TO ${noPrivUser}"""
-    sql """GRANT ALL ON TEST_${context.dbName}.${emptyTable} TO ${noPrivUser}"""
-    syncer.context.user = "${noPrivUser}"
-    syncer.context.passwd = "123456"
-    assertTrue((syncer.getBinlog("${seqTableName}")) == false)
-    
-
-    logger.info("=== Test 3.3: Non-existent user set in syncer get binlog case ===")
-    syncer.context.user = "this_is_an_invalid_user"
-    syncer.context.passwd = "this_is_an_invalid_user"
-    assertTrue(syncer.getBinlog("${seqTableName}", false) == false)
-}
\ No newline at end of file
diff --git a/regression-test/suites/ccr_syncer_p0/test_ingest_binlog.groovy b/regression-test/suites/ccr_syncer_p0/test_ingest_binlog.groovy
deleted file mode 100644
index ec38890d9a..0000000000
--- a/regression-test/suites/ccr_syncer_p0/test_ingest_binlog.groovy
+++ /dev/null
@@ -1,119 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_ingest_binlog") {
-
-    def syncer = getSyncer()
-    def tableName = "tbl_ingest_binlog"
-    def insert_num = 5
-    def test_num = 0
-    sql "DROP TABLE IF EXISTS ${tableName}"
-    sql """
-           CREATE TABLE if NOT EXISTS ${tableName} 
-           (
-               `test` INT,
-               `id` INT
-           )
-           ENGINE=OLAP
-           UNIQUE KEY(`test`, `id`)
-           DISTRIBUTED BY HASH(id) BUCKETS 1 
-           PROPERTIES ( 
-               "replication_allocation" = "tag.location.default: 1"
-           )
-        """
-    sql """ALTER TABLE ${tableName} set ("binlog.enable" = "true")"""
-
-    target_sql "DROP TABLE IF EXISTS ${tableName}"
-    target_sql """
-                  CREATE TABLE if NOT EXISTS ${tableName} 
-                  (
-                      `test` INT,
-                      `id` INT
-                  )
-                  ENGINE=OLAP
-                  UNIQUE KEY(`test`, `id`)
-                  DISTRIBUTED BY HASH(id) BUCKETS 1 
-                  PROPERTIES ( 
-                      "replication_allocation" = "tag.location.default: 1"
-                  )
-              """
-    assertTrue(syncer.getTargetMeta("${tableName}"))
-
-
-
-
-    logger.info("=== Test 1: Common ingest binlog case ===")
-    test_num = 1
-    for (int index = 0; index < insert_num; index++) {
-        sql """
-            INSERT INTO ${tableName} VALUES (${test_num}, ${index})
-        """
-        assertTrue(syncer.getBinlog("${tableName}"))
-        assertTrue(syncer.beginTxn("${tableName}"))
-        assertTrue(syncer.getBackendClients())
-        assertTrue(syncer.ingestBinlog())
-        assertTrue(syncer.commitTxn())
-        assertTrue(syncer.checkTargetVersion())
-        syncer.closeBackendClients()
-    }
-
-    res = target_sql """SELECT * FROM ${tableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == insert_num)
-
-
-
-
-    logger.info("=== Test 2: Wrong IngestBinlogRequest case ===")
-    test_num = 2
-    sql """
-            INSERT INTO ${tableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${tableName}"))
-    assertTrue(syncer.beginTxn("${tableName}"))
-    assertTrue(syncer.getBackendClients())
-
-
-    logger.info("=== Test 2.1: Wrong txnId case ===")
-    // TODO: bugfix
-    // def originTxnId = syncer.context.txnId
-    // syncer.context.txnId = -1
-    // assertTrue(syncer.ingestBinlog() == false)
-    // syncer.context.txnId = originTxnId
-
-
-    logger.info("=== Test 2.2: Wrong binlog version case ===")
-    // -1 means use the number of syncer.context
-    // Boolean ingestBinlog(long fakePartitionId = -1, long fakeVersion = -1)
-    assertTrue(syncer.ingestBinlog(-1, 1) == false)
-
-
-    logger.info("=== Test 2.3: Wrong partitionId case ===")
-    // TODO: bugfix
-    // assertTrue(syncer.ingestBinlog(1, -1) == false)
-
-
-    logger.info("=== Test 2.4: Right case ===")
-    assertTrue(syncer.ingestBinlog())
-    assertTrue(syncer.commitTxn())
-    assertTrue(syncer.checkTargetVersion())
-    res = target_sql """SELECT * FROM ${tableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == 1)
-
-
-    // End Test 2
-    syncer.closeBackendClients()
-}
\ No newline at end of file
diff --git a/regression-test/suites/ccr_syncer_p0/test_multi_buckets.groovy b/regression-test/suites/ccr_syncer_p0/test_multi_buckets.groovy
deleted file mode 100644
index 04dbf8e827..0000000000
--- a/regression-test/suites/ccr_syncer_p0/test_multi_buckets.groovy
+++ /dev/null
@@ -1,96 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_multi_buckets") {
-
-    def syncer = getSyncer()
-    def tableName = "tbl_multi_buckets"
-    def test_num = 0
-    def insert_num = 5
-
-    sql "DROP TABLE IF EXISTS ${tableName}"
-    sql """
-        CREATE TABLE if NOT EXISTS ${tableName} 
-        (
-            `test` INT,
-            `id` INT
-        )
-        ENGINE=OLAP
-        UNIQUE KEY(`test`, `id`)
-        DISTRIBUTED BY HASH(id) BUCKETS 3
-        PROPERTIES ( 
-            "replication_allocation" = "tag.location.default: 1"
-        )
-    """
-    sql """ALTER TABLE ${tableName} set ("binlog.enable" = "true")"""
-
-    target_sql "DROP TABLE IF EXISTS ${tableName}"
-    target_sql """
-               CREATE TABLE if NOT EXISTS ${tableName} 
-               (
-                   `test` INT,
-                   `id` INT
-               )
-               ENGINE=OLAP
-               UNIQUE KEY(`test`, `id`)
-               DISTRIBUTED BY HASH(id) BUCKETS 3
-               PROPERTIES ( 
-                   "replication_allocation" = "tag.location.default: 1"
-               )
-               """
-    assertTrue(syncer.getTargetMeta("${tableName}"))
-
-
-
-
-    logger.info("=== Test 1: Blank row set case ===")
-    test_num = 1
-    sql """
-        INSERT INTO ${tableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${tableName}"))
-    assertTrue(syncer.beginTxn("${tableName}"))
-    assertTrue(syncer.getBackendClients())
-    assertTrue(syncer.ingestBinlog())
-    assertTrue(syncer.commitTxn())
-    syncer.closeBackendClients()
-    assertTrue(syncer.checkTargetVersion())
-    def res = target_sql """SELECT * FROM ${tableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == 1)
-
-
-
-
-    logger.info("=== Test 2: Upsert case ===")
-    test_num = 2
-    for (int index = 0; index < insert_num; index++) {
-        sql """
-            INSERT INTO ${tableName} VALUES (${test_num}, ${index})
-        """
-        assertTrue(syncer.getBinlog("${tableName}"))
-        assertTrue(syncer.beginTxn("${tableName}"))
-        assertTrue(syncer.getBackendClients())
-        assertTrue(syncer.ingestBinlog())
-        assertTrue(syncer.commitTxn())
-        assertTrue(syncer.checkTargetVersion())
-        syncer.closeBackendClients()
-    }
-
-    res = target_sql """SELECT * FROM ${tableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == insert_num)
-
-}
diff --git a/regression-test/suites/ccr_syncer_p0/test_txn_case.groovy b/regression-test/suites/ccr_syncer_p0/test_txn_case.groovy
deleted file mode 100644
index 40c70fed62..0000000000
--- a/regression-test/suites/ccr_syncer_p0/test_txn_case.groovy
+++ /dev/null
@@ -1,298 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_txn_case") {
-
-    // TODO: bugfix
-    def fullPriv = ["SELECT_PRIV"/*, "LOAD_PRIV"*/, "ALTER_PRIV", "CREATE_PRIV", "DROP_PRIV"]
-    def nowPriv = []
-    def recursionPriv = { fullPrivList, idx, nowPrivList, num, callback ->
-        for (; (num - nowPrivList.size() <= fullPrivList.size() - idx) && (nowPrivList.size()) < num; ++idx) {
-            nowPrivList.push(fullPrivList[idx])
-            call(fullPrivList, idx + 1, nowPrivList, num, callback)
-            nowPrivList.pop()
-        }
-        if (nowPrivList.size() == num) {
-            String privStr = ""
-            for (int i = 0; i < num; ++i) {
-                privStr += nowPrivList[i]
-                if (i < num - 1) {
-                    privStr += ", "
-                }
-            }
-            callback.call(privStr)
-        }
-    }
-
-    def syncer = getSyncer()
-    def txnTableName = "tbl_txn_case"
-    def test_num = 0
-    sql "DROP TABLE IF EXISTS ${txnTableName}"
-    sql """
-           CREATE TABLE if NOT EXISTS ${txnTableName} 
-           (
-               `test` INT,
-               `id` INT
-           )
-           ENGINE=OLAP
-           UNIQUE KEY(`test`, `id`)
-           DISTRIBUTED BY HASH(id) BUCKETS 1 
-           PROPERTIES ( 
-               "replication_allocation" = "tag.location.default: 1"
-           )
-        """
-    sql """ALTER TABLE ${txnTableName} set ("binlog.enable" = "true")"""
-
-    target_sql "DROP TABLE IF EXISTS ${txnTableName}"
-    target_sql """
-                  CREATE TABLE if NOT EXISTS ${txnTableName} 
-                  (
-                      `test` INT,
-                      `id` INT
-                  )
-                  ENGINE=OLAP
-                  UNIQUE KEY(`test`, `id`)
-                  DISTRIBUTED BY HASH(id) BUCKETS 1 
-                  PROPERTIES ( 
-                      "replication_allocation" = "tag.location.default: 1"
-                  )
-              """
-    assertTrue(syncer.getTargetMeta("${txnTableName}"))
-
-    
-
-
-    logger.info("=== Test 1: common txn case ===")
-    test_num = 1
-    sql """
-            INSERT INTO ${txnTableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${txnTableName}"))
-    assertTrue(syncer.getBackendClients())
-    assertTrue(syncer.beginTxn("${txnTableName}"))
-    assertTrue(syncer.ingestBinlog())
-    assertTrue(syncer.commitTxn())
-    assertTrue(syncer.checkTargetVersion())
-    def res = target_sql """SELECT * FROM ${txnTableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == 1)
-
-
-
-
-    logger.info("=== Test 2: Wrong BeginTxnRequest context case ===")
-
-
-    logger.info("=== Test 2.1: Begin a txn with non-existent table case ===")
-    assertTrue(syncer.beginTxn("tbl_non_existent") == false)
-
-
-    logger.info("=== Test 2.2: Begin a txn with duplicate labels case ===")
-    assertTrue(syncer.beginTxn("${txnTableName}") == false)
-
-
-    // End Test 2
-    syncer.closeBackendClients()
-
-
-
-
-    logger.info("=== Test 3: Begin a txn with different priv user case ===")
-    test_num = 3
-    sql """
-            INSERT INTO ${txnTableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${txnTableName}"))
-
-
-    logger.info("=== Test 3.1: Begin a txn with non-existent user set in syncer case ===")
-    syncer.context.user = "this_is_an_invalid_user"
-    syncer.context.passwd = "this_is_an_invalid_user"
-    assertTrue(syncer.beginTxn("${txnTableName}") == false)
-
-
-    logger.info("=== Test 3.2: Begin a txn with no priv user case ===")
-    def noPrivUser = "no_priv_user"
-    def emptyTable = "tbl_empty_test"
-    target_sql "DROP TABLE IF EXISTS ${emptyTable}"
-    target_sql """
-                CREATE TABLE if NOT EXISTS ${emptyTable} 
-                (
-                    `test` INT,
-                    `id` INT
-                )
-                ENGINE=OLAP
-                UNIQUE KEY(`test`, `id`)
-                DISTRIBUTED BY HASH(id) BUCKETS 1 
-                PROPERTIES ( 
-                    "replication_allocation" = "tag.location.default: 1"
-                )
-            """
-    target_sql """DROP USER IF EXISTS ${noPrivUser}"""
-    target_sql """CREATE USER ${noPrivUser} IDENTIFIED BY '123456'"""
-    target_sql """GRANT ALL ON ${context.config.defaultDb}.* TO ${noPrivUser}"""
-    target_sql """GRANT ALL ON TEST_${context.dbName}.${emptyTable} TO ${noPrivUser}"""
-    syncer.context.user = "${noPrivUser}"
-    syncer.context.passwd = "123456"
-    assertTrue(syncer.beginTxn("${txnTableName}") == false)
-
-    // TODO: bugfix
-    // Recursively selecting privileges, 
-    // if not all privileges are obtained, txn should not be began
-    logger.info("=== Test 3.3: Begin a txn with low priv user case ===")
-    def lowPrivUser = "low_priv_user"
-    target_sql """DROP USER IF EXISTS ${lowPrivUser}"""
-    target_sql """CREATE USER ${lowPrivUser} IDENTIFIED BY '123456'"""
-    target_sql """GRANT ALL ON ${context.config.defaultDb}.* TO ${lowPrivUser}"""
-    syncer.context.user = "${lowPrivUser}"
-    syncer.context.passwd = "123456"
-
-    def beginTxnCallback = { privStr ->
-        target_sql """GRANT ${privStr} ON TEST_${context.dbName}.${txnTableName} TO ${lowPrivUser}"""
-        assertTrue((syncer.beginTxn("${txnTableName}")) == false)
-        target_sql """REVOKE ${privStr} ON TEST_${context.dbName}.${txnTableName} FROM ${lowPrivUser}"""
-    }
-
-    for (int i = 1; i <= 4; ++i) {
-        recursionPriv.call(fullPriv, 0, nowPriv, i, beginTxnCallback)
-    }
-
-    logger.info("=== Test 3.4: Complete the txn with SHOW_PRIV user case ===")
-    def showPrivUser = "show_priv_user"
-    target_sql """DROP USER IF EXISTS ${showPrivUser}"""
-    target_sql """CREATE USER ${showPrivUser} IDENTIFIED BY '123456'"""
-    target_sql """GRANT ALL ON ${context.config.defaultDb}.* TO ${showPrivUser}"""
-    target_sql """
-                  GRANT 
-                  SELECT_PRIV, LOAD_PRIV, ALTER_PRIV, CREATE_PRIV, DROP_PRIV 
-                  ON TEST_${context.dbName}.${txnTableName}
-                  TO ${showPrivUser}
-               """
-    syncer.context.user = "${showPrivUser}"
-    syncer.context.passwd = "123456"
-    assertTrue(syncer.beginTxn("${txnTableName}"))
-    assertTrue(syncer.getBackendClients())
-    assertTrue(syncer.ingestBinlog())
-    assertTrue(syncer.commitTxn())
-    assertTrue(syncer.checkTargetVersion())
-    res = target_sql """SELECT * FROM ${txnTableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == 1)
-
-    // End Test 3
-    syncer.context.user = context.config.feSyncerUser
-    syncer.context.passwd = context.config.feSyncerPassword
-    syncer.closeBackendClients()
-
-
-
-
-    logger.info("=== Test 4: Wrong CommitTxnRequest context case ===")
-    test_num = 4
-    sql """
-            INSERT INTO ${txnTableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${txnTableName}"))
-    assertTrue(syncer.getBackendClients())
-    assertTrue(syncer.beginTxn("${txnTableName}"))
-    assertTrue(syncer.ingestBinlog())
-
-    
-    logger.info("=== Test 4.1: Wrong txnId case ===")
-    def originTxnId = syncer.context.txnId
-    syncer.context.txnId = -1
-    assertTrue(syncer.commitTxn() == false)
-    syncer.context.txnId = originTxnId
-
-
-    logger.info("=== Test 4.2: Wrong commit info case ===")
-    // TODO: bugfix
-    // def originCommitInfos = syncer.resetCommitInfos()
-    // syncer.context.addCommitInfo(-1, -1)
-    // assertTrue(syncer.commitTxn()) == false)
-
-
-    logger.info("=== Test 4.3: Empty commit info case ===")
-    // TODO: bugfix
-    // assertTrue(syncer.commitTxn() == false)
-
-
-    logger.info("=== Test 4.4: duplicate txnId case ===")
-    // TODO: bugfix
-    // def lastCommitInfo = syncer.copyCommitInfos()
-    assertTrue(syncer.commitTxn())
-    assertTrue(syncer.checkTargetVersion())
-    res = target_sql """SELECT * FROM ${txnTableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == 1)
-    // syncer.context.commitInfos = lastCommitInfo
-    // assertTrue(syncer.commitTxn() == false)
-
-    // End Test 4
-    syncer.closeBackendClients()
-    
-
-
-
-    logger.info("=== Test 5: User root beginTxn, Other user commitTxn case ===")
-    test_num = 5
-    sql """
-            INSERT INTO ${txnTableName} VALUES (${test_num}, 0)
-        """
-    assertTrue(syncer.getBinlog("${txnTableName}"))
-    assertTrue(syncer.getBackendClients())
-    assertTrue(syncer.beginTxn("${txnTableName}"))
-    assertTrue(syncer.ingestBinlog())
-
-
-    logger.info("=== Test 5.1: Non-existent user commitTxn case ===")
-    syncer.context.user = "this_is_an_invalid_user"
-    syncer.context.passwd = "this_is_an_invalid_user"
-    assertTrue(syncer.commitTxn() == false)
-
-
-    logger.info("=== Test 5.2: No priv user commitTxn case ===")
-    syncer.context.user = "${noPrivUser}"
-    syncer.context.passwd = "123456"
-    assertTrue(syncer.commitTxn() == false)
-
-
-    logger.info("=== Test 5.3: Low priv user commitTxn case ===")
-    syncer.context.user = "${lowPrivUser}"
-    syncer.context.passwd = "123456"
-
-    def commitTxnCallback = { privStr ->
-        target_sql """GRANT ${privStr} ON TEST_${context.dbName}.${txnTableName} TO ${lowPrivUser}"""
-        assertTrue(syncer.commitTxn() == false)
-        target_sql """REVOKE ${privStr} ON TEST_${context.dbName}.${txnTableName} FROM ${lowPrivUser}"""
-    }
-    for (int i = 1; i <= 4; ++i) {
-        recursionPriv.call(fullPriv, 0, nowPriv, i, commitTxnCallback)
-    }
-
-
-    logger.info("=== Test 5.4: SHOW_PRIV user commitTxn case ===")
-    syncer.context.user = "${showPrivUser}"
-    syncer.context.passwd = "123456"
-    assertTrue(syncer.commitTxn())
-    assertTrue(syncer.checkTargetVersion())
-    res = target_sql """SELECT * FROM ${txnTableName} WHERE test=${test_num}"""
-    assertTrue(res.size() == 1)
-
-    // End Test 5
-    syncer.context.user = context.config.feSyncerUser
-    syncer.context.passwd = context.config.feSyncerPassword
-    syncer.closeBackendClients()
-    
-}
\ No newline at end of file
diff --git a/regression-test/suites/ccr_syncer_p1/test_backup_restore.groovy b/regression-test/suites/ccr_syncer_p1/test_backup_restore.groovy
deleted file mode 100644
index e5cc5e9d08..0000000000
--- a/regression-test/suites/ccr_syncer_p1/test_backup_restore.groovy
+++ /dev/null
@@ -1,68 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements.  See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership.  The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License.  You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.  See the License for the
-// specific language governing permissions and limitations
-// under the License.
-
-suite("test_backup_restore") {
-
-    def syncer = getSyncer()
-    def tableName = "tbl_backup_restore"
-    def test_num = 0
-    def insert_num = 5
-
-    sql "DROP TABLE IF EXISTS ${tableName}"
-    sql """
-           CREATE TABLE if NOT EXISTS ${tableName} 
-           (
-               `test` INT,
-               `id` INT
-           )
-           ENGINE=OLAP
-           UNIQUE KEY(`test`, `id`)
-           DISTRIBUTED BY HASH(id) BUCKETS 1 
-           PROPERTIES ( 
-               "replication_allocation" = "tag.location.default: 1"
-           )
-        """
-    sql """ALTER TABLE ${tableName} set ("binlog.enable" = "true")"""
-
-    logger.info("=== Test 1: Common backup and restore ===")
-    test_num = 1
-    def snapshotName = "snapshot_test_1"
-    for (int i = 0; i < insert_num; ++i) {
-        sql """
-               INSERT INTO ${tableName} VALUES (${test_num}, ${i})
-            """ 
-    }
-    def res = sql "SELECT * FROM ${tableName}"
-    assertTrue(res.size() == insert_num)
-    sql """ 
-            BACKUP SNAPSHOT ${context.dbName}.${snapshotName} 
-            TO `__keep_on_local__` 
-            ON (${tableName})
-            PROPERTIES ("type" = "full")
-        """
-    while (syncer.checkSnapshotFinish() == false) {
-        Thread.sleep(3000)
-    }
-    assertTrue(syncer.getSnapshot("${snapshotName}", "${tableName}"))
-    sql "DROP TABLE IF EXISTS ${tableName}"
-    assertTrue(syncer.restoreSnapshot())
-    while (syncer.checkRestoreFinish() == false) {
-        Thread.sleep(3000)
-    }
-    res = sql "SELECT * FROM ${tableName}"
-    assertTrue(res.size() == insert_num)
-}
\ No newline at end of file
diff --git a/run-regression-test.sh b/run-regression-test.sh
index 78523ea220..5b6d0f396b 100755
--- a/run-regression-test.sh
+++ b/run-regression-test.sh
@@ -135,16 +135,10 @@ LOG_CONFIG_FILE="${CONF_DIR}/logback.xml"
 
 FRAMEWORK_SOURCE_DIR="${DORIS_HOME}/regression-test/framework"
 REGRESSION_TEST_BUILD_DIR="${FRAMEWORK_SOURCE_DIR}/target"
-FRAMEWORK_APACHE_DIR="${FRAMEWORK_SOURCE_DIR}/src/main/groovy/org/apache"
 
 OUTPUT_DIR="${DORIS_HOME}/output/regression-test"
 LOG_OUTPUT_FILE="${OUTPUT_DIR}/log"
 RUN_JAR="${OUTPUT_DIR}/lib/regression-test-*.jar"
-if [[ -z "${DORIS_THIRDPARTY}" ]]; then
-    export DORIS_THIRDPARTY="${DORIS_HOME}/thirdparty"
-fi
-
-rm -rf "${FRAMEWORK_APACHE_DIR}/doris/thrift"
 
 if [[ "${CLEAN}" -eq 1 ]]; then
     rm -rf "${REGRESSION_TEST_BUILD_DIR}"
@@ -158,13 +152,6 @@ fi
 
 if ! test -f ${RUN_JAR:+${RUN_JAR}}; then
     echo "===== Build Regression Test Framework ====="
-
-    # echo "Build generated code"
-    cd "${DORIS_HOME}/gensrc/thrift"
-    make
-
-    cp -rf "${DORIS_HOME}/gensrc/build/gen_java/org/apache/doris/thrift" "${FRAMEWORK_APACHE_DIR}/doris/"
-
     cd "${DORIS_HOME}/regression-test/framework"
     "${MVN_CMD}" package
     cd "${DORIS_HOME}"


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