You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by zh...@apache.org on 2026/03/16 06:06:18 UTC
(doris) branch branch-4.1 updated: branch-4.1: [opt](nereids) support order by clause in create table (#60684) (#61363)
This is an automated email from the ASF dual-hosted git repository.
zhangstar333 pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.1 by this push:
new c37af871e43 branch-4.1: [opt](nereids) support order by clause in create table (#60684) (#61363)
c37af871e43 is described below
commit c37af871e4356be15d1c8c329ab8d2e2019f556a
Author: zhangstar333 <zh...@selectdb.com>
AuthorDate: Mon Mar 16 14:06:11 2026 +0800
branch-4.1: [opt](nereids) support order by clause in create table (#60684) (#61363)
Problem Summary:
cherry-pick from master (#60684)
---
.../main/java/org/apache/doris/common/Config.java | 6 +-
.../antlr4/org/apache/doris/nereids/DorisParser.g4 | 4 +-
.../src/main/java/org/apache/doris/DorisFE.java | 4 +-
.../java/org/apache/doris/analysis/KeysDesc.java | 46 +++----
.../main/java/org/apache/doris/catalog/Env.java | 16 ++-
.../apache/doris/datasource/InternalCatalog.java | 6 +-
.../datasource/iceberg/IcebergExternalTable.java | 35 +++++
.../datasource/iceberg/IcebergMetadataOps.java | 41 +++++-
.../doris/nereids/parser/LogicalPlanBuilder.java | 56 +++++++-
.../trees/plans/commands/info/CreateMTMVInfo.java | 2 +-
.../trees/plans/commands/info/CreateTableInfo.java | 141 ++++++++++++++-------
.../trees/plans/commands/info/SortFieldInfo.java | 67 ++++++++++
.../org/apache/doris/planner/IcebergTableSink.java | 6 +
.../org/apache/doris/regression/Config.groovy | 8 +-
.../org/apache/doris/regression/suite/Suite.groovy | 2 +-
.../compaction/test_compaction_uniq_keys_ck.groovy | 2 +-
.../test_compaction_uniq_keys_row_store_ck.groovy | 2 +-
...test_compaction_uniq_keys_with_delete_ck.groovy | 2 +-
.../compaction/test_full_compaction_ck.groovy | 2 +-
.../test_vertical_compaction_uniq_keys_ck.groovy | 2 +-
.../iceberg/write/test_iceberg_create_table.groovy | 26 ++++
.../test_index_compaction_unique_keys_arr.groovy | 2 +-
.../suites/nereids_p0/delete/delete_cte_ck.groovy | 4 +-
.../suites/point_query_p0/load_ck.groovy | 2 +-
.../point_query_p0/test_point_query_ck.groovy | 6 +-
.../test_point_query_partition_ck.groovy | 4 +-
.../suites/point_query_p0/test_rowstore_ck.groovy | 14 +-
.../point_query_p0/test_rowstore_query_ck.groovy | 2 +-
.../unique_ck/test_schema_change_unique.groovy | 2 +-
.../unique_ck/test_unique_schema_value_drop.groovy | 14 +-
.../test_unique_schema_value_modify.groovy | 20 +--
.../test_unique_schema_value_modify1.groovy | 10 +-
.../test_unique_schema_value_modify2.groovy | 14 +-
.../test_unique_schema_value_modify3.groovy | 6 +-
.../test_segcompaction_unique_keys_mow_ck.groovy | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/call_center.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/catalog_page.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/catalog_returns.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/catalog_sales.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/customer.sql | 2 +-
.../ddl/customer_address.sql | 2 +-
.../ddl/customer_demographics.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/date_dim.sql | 2 +-
.../ddl/household_demographics.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/income_band.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/inventory.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/item.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/promotion.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/reason.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/ship_mode.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/store.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/store_returns.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/store_sales.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/time_dim.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/warehouse.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/web_page.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/web_returns.sql | 2 +-
.../tpcds_sf1_unique_ck_p1/ddl/web_sales.sql | 2 +-
.../suites/tpcds_sf1_unique_ck_p1/ddl/web_site.sql | 2 +-
.../tpch_sf0.1_unique_ck_p1/ddl/customer.sql | 2 +-
.../tpch_sf0.1_unique_ck_p1/ddl/lineitem.sql | 2 +-
.../suites/tpch_sf0.1_unique_ck_p1/ddl/nation.sql | 2 +-
.../suites/tpch_sf0.1_unique_ck_p1/ddl/orders.sql | 2 +-
.../suites/tpch_sf0.1_unique_ck_p1/ddl/part.sql | 2 +-
.../tpch_sf0.1_unique_ck_p1/ddl/partsupp.sql | 2 +-
.../suites/tpch_sf0.1_unique_ck_p1/ddl/region.sql | 2 +-
.../tpch_sf0.1_unique_ck_p1/ddl/supplier.sql | 2 +-
.../partial_update/test_mix_partial_update.groovy | 8 +-
.../test_new_partial_update_delete.groovy | 2 +-
.../partial_update/test_partial_update.groovy | 8 +-
.../test_partial_update_2pc_schema_change.groovy | 2 +-
.../test_partial_update_after_delete.groovy | 4 +-
.../test_partial_update_auto_inc.groovy | 2 +-
.../test_partial_update_case_insensitivity.groovy | 2 +-
.../test_partial_update_complex_type.groovy | 2 +-
...artial_update_complex_type_schema_change.groovy | 2 +-
.../test_partial_update_default_value.groovy | 2 +-
.../test_partial_update_delete.groovy | 4 +-
.../test_partial_update_delete_sign.groovy | 8 +-
...partial_update_delete_sign_with_conflict.groovy | 2 +-
...artial_update_insert_light_schema_change.groovy | 10 +-
...test_partial_update_insert_schema_change.groovy | 10 +-
.../test_partial_update_insert_seq_col.groovy | 4 +-
.../test_partial_update_native_insert_stmt.groovy | 14 +-
...artial_update_native_insert_stmt_complex.groovy | 4 +-
.../partial_update/test_partial_update_orc.groovy | 2 +-
.../test_partial_update_parallel.groovy | 10 +-
.../test_partial_update_publish.groovy | 2 +-
.../test_partial_update_schema_change.groovy | 20 +--
...t_partial_update_schema_change_row_store.groovy | 20 +--
.../test_partial_update_with_update_stmt.groovy | 6 +-
.../ssb_unique_load_zstd/ddl/customer_create.sql | 2 +-
.../ddl/customer_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/date_create.sql | 2 +-
.../ddl/date_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/lineorder_create.sql | 2 +-
.../ddl/lineorder_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/part_create.sql | 2 +-
.../ddl/part_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/supplier_create.sql | 2 +-
.../ddl/supplier_sequence_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/customer_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/date_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/lineorder_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/part_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/supplier_create.sql | 2 +-
.../test_compact_multi_segments.groovy | 2 +-
.../unique_with_mow_c_p0/test_compact_seg.groovy | 2 +-
.../test_compact_with_seq.groovy | 2 +-
.../test_compact_with_seq2.groovy | 2 +-
...est_compaction_with_multi_append_columns.groovy | 2 +-
.../unique_with_mow_c_p0/test_create_table.groovy | 71 ++++++++---
.../unique_with_mow_c_p0/test_delete_sign.groovy | 8 +-
.../test_delete_sign_delete_bitmap.groovy | 4 +-
.../test_mow_full_clone_exception.groovy | 2 +-
.../test_mow_with_null_sequence.groovy | 4 +-
.../unique_with_mow_c_p0/test_pk_uk_case.groovy | 2 +-
.../test_primary_key_simple_case.groovy | 2 +-
.../unique_with_mow_c_p0/test_schema_change.groovy | 2 +-
.../test_schema_change_add_key_column.groovy | 2 +-
.../test_schema_change_and_compaction.groovy | 2 +-
.../test_schema_change_ck.groovy | 6 +-
.../suites/unique_with_mow_c_p0/test_select.groovy | 2 +-
.../test_unique_mow_sequence.groovy | 2 +-
.../suites/unique_with_mow_c_p0/test_update.groovy | 2 +-
.../ssb_unique_load_zstd/ddl/customer_create.sql | 2 +-
.../ddl/customer_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/date_create.sql | 2 +-
.../ddl/date_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/lineorder_create.sql | 2 +-
.../ddl/lineorder_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/part_create.sql | 2 +-
.../ddl/part_sequence_create.sql | 2 +-
.../ssb_unique_load_zstd/ddl/supplier_create.sql | 2 +-
.../ddl/supplier_sequence_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/customer_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/date_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/lineorder_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/part_create.sql | 2 +-
.../ssb_unique_sql_zstd/ddl/supplier_create.sql | 2 +-
.../unique_with_mow_c_p2/test_pk_uk_case.groovy | 2 +-
141 files changed, 650 insertions(+), 325 deletions(-)
diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index d19c6304edb..c074fb6ab76 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -644,9 +644,9 @@ public class Config extends ConfigBase {
"Default timeout for insert load job, in seconds."})
public static int insert_load_default_timeout_second = 14400; // 4 hour
- @ConfField(mutable = true, masterOnly = true, description = {"对 mow 表随机设置 cluster keys,用于测试",
- "random set cluster keys for mow table for test"})
- public static boolean random_add_cluster_keys_for_mow = false;
+ @ConfField(mutable = true, masterOnly = true, description = {"对 mow 表随机设置 order by keys,用于测试",
+ "random set order by keys for mow table for test"})
+ public static boolean random_add_order_by_keys_for_mow = false;
@ConfField(mutable = true, masterOnly = true, description = {
"在 fuzzy 测试中随机选择部分表使用 V3 storage_format(ext_meta),用于增强覆盖",
diff --git a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4 b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
index e07b45f751f..3ec546ccc0a 100644
--- a/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
+++ b/fe/fe-core/src/main/antlr4/org/apache/doris/nereids/DorisParser.g4
@@ -189,8 +189,8 @@ supportedCreateStatement
: CREATE (EXTERNAL | TEMPORARY)? TABLE (IF NOT EXISTS)? name=multipartIdentifier
((ctasCols=identifierList)? | (LEFT_PAREN columnDefs (COMMA indexDefs)? COMMA? RIGHT_PAREN))
(ENGINE EQ engine=identifier)?
- ((AGGREGATE | UNIQUE | DUPLICATE) KEY keys=identifierList
- (CLUSTER BY clusterKeys=identifierList)?)?
+ ((AGGREGATE | UNIQUE | DUPLICATE) KEY keys=identifierList)?
+ (ORDER BY LEFT_PAREN sortItems+=sortItem (COMMA sortItems+=sortItem)* RIGHT_PAREN)?
(COMMENT STRING_LITERAL)?
(partition=partitionTable)?
(DISTRIBUTED BY (HASH hashKeys=identifierList | RANDOM)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java b/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java
index 26f9389741c..73742497226 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/DorisFE.java
@@ -599,8 +599,8 @@ public class DorisFE {
// Keep global fuzzy knobs that are not session-based.
if (Config.fuzzy_test_type.equalsIgnoreCase("daily")
|| Config.fuzzy_test_type.equalsIgnoreCase("rqg")) {
- Config.random_add_cluster_keys_for_mow = (LocalDate.now().getDayOfMonth() % 2 == 0);
- LOG.info("fuzzy set random_add_cluster_keys_for_mow={}", Config.random_add_cluster_keys_for_mow);
+ Config.random_add_order_by_keys_for_mow = (LocalDate.now().getDayOfMonth() % 2 == 0);
+ LOG.info("fuzzy set random_add_order_by_keys_for_mow={}", Config.random_add_order_by_keys_for_mow);
}
setFuzzyForCatalog();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/KeysDesc.java b/fe/fe-core/src/main/java/org/apache/doris/analysis/KeysDesc.java
index 5c4d489dcd4..e594b6c14b0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/KeysDesc.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/KeysDesc.java
@@ -28,7 +28,7 @@ import java.util.List;
public class KeysDesc {
private KeysType type;
private List<String> keysColumnNames;
- private List<String> clusterKeysColumnNames;
+ private List<String> orderByKeysColumnNames;
public KeysDesc() {
this.type = KeysType.AGG_KEYS;
@@ -40,9 +40,9 @@ public class KeysDesc {
this.keysColumnNames = keysColumnNames;
}
- public KeysDesc(KeysType type, List<String> keysColumnNames, List<String> clusterKeyColumnNames) {
+ public KeysDesc(KeysType type, List<String> keysColumnNames, List<String> orderByKeysColumnNames) {
this(type, keysColumnNames);
- this.clusterKeysColumnNames = clusterKeyColumnNames;
+ this.orderByKeysColumnNames = orderByKeysColumnNames;
}
public KeysType getKeysType() {
@@ -53,8 +53,8 @@ public class KeysDesc {
return keysColumnNames.size();
}
- public List<String> getClusterKeysColumnNames() {
- return clusterKeysColumnNames;
+ public List<String> getOrderByKeysColumnNames() {
+ return orderByKeysColumnNames;
}
public boolean containsCol(String colName) {
@@ -107,39 +107,39 @@ public class KeysDesc {
}
}
- if (clusterKeysColumnNames != null) {
- analyzeClusterKeys(cols);
+ if (orderByKeysColumnNames != null) {
+ analyzeOrderByKeys(cols);
}
}
- private void analyzeClusterKeys(List<ColumnDef> cols) throws AnalysisException {
+ private void analyzeOrderByKeys(List<ColumnDef> cols) throws AnalysisException {
if (type != KeysType.UNIQUE_KEYS) {
- throw new AnalysisException("Cluster keys only support unique keys table");
+ throw new AnalysisException("Order by keys only support unique keys table");
}
- // check that cluster keys is not duplicated
- for (int i = 0; i < clusterKeysColumnNames.size(); i++) {
- String name = clusterKeysColumnNames.get(i);
+ // check that order by keys is not duplicated
+ for (int i = 0; i < orderByKeysColumnNames.size(); i++) {
+ String name = orderByKeysColumnNames.get(i);
for (int j = 0; j < i; j++) {
- if (clusterKeysColumnNames.get(j).equalsIgnoreCase(name)) {
- throw new AnalysisException("Duplicate cluster key column[" + name + "].");
+ if (orderByKeysColumnNames.get(j).equalsIgnoreCase(name)) {
+ throw new AnalysisException("Duplicate order by key column[" + name + "].");
}
}
}
- // check that cluster keys is not equal to primary keys
- int minKeySize = Math.min(keysColumnNames.size(), clusterKeysColumnNames.size());
+ // check that order by keys is not equal to primary keys
+ int minKeySize = Math.min(keysColumnNames.size(), orderByKeysColumnNames.size());
boolean sameKey = true;
for (int i = 0; i < minKeySize; i++) {
- if (!keysColumnNames.get(i).equalsIgnoreCase(clusterKeysColumnNames.get(i))) {
+ if (!keysColumnNames.get(i).equalsIgnoreCase(orderByKeysColumnNames.get(i))) {
sameKey = false;
break;
}
}
- if (sameKey && !Config.random_add_cluster_keys_for_mow) {
+ if (sameKey && !Config.random_add_order_by_keys_for_mow) {
throw new AnalysisException("Unique keys and cluster keys should be different.");
}
// check that cluster key column exists
- for (int i = 0; i < clusterKeysColumnNames.size(); i++) {
- String name = clusterKeysColumnNames.get(i);
+ for (int i = 0; i < orderByKeysColumnNames.size(); i++) {
+ String name = orderByKeysColumnNames.get(i);
for (int j = 0; j < cols.size(); j++) {
if (cols.get(j).getName().equalsIgnoreCase(name)) {
cols.get(j).setClusterKeyId(i);
@@ -164,10 +164,10 @@ public class KeysDesc {
i++;
}
stringBuilder.append(")");
- if (clusterKeysColumnNames != null) {
- stringBuilder.append("\nCLUSTER BY (");
+ if (orderByKeysColumnNames != null) {
+ stringBuilder.append("\nORDER BY (");
i = 0;
- for (String columnName : clusterKeysColumnNames) {
+ for (String columnName : orderByKeysColumnNames) {
if (i != 0) {
stringBuilder.append(", ");
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index 4a8ab20c1ff..af9449d93f4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -4011,9 +4011,9 @@ public class Env {
}
}
sb.append(Joiner.on(", ").join(keysColumnNames)).append(")");
- // show cluster keys
+ // show order keys
if (!clusterKeysColumnNamesToId.isEmpty()) {
- sb.append("\n").append("CLUSTER BY (`");
+ sb.append("\n").append("ORDER BY (`");
sb.append(Joiner.on("`, `").join(clusterKeysColumnNamesToId.values())).append("`)");
}
}
@@ -4238,6 +4238,9 @@ public class Env {
} else if (table.getType() == TableType.ICEBERG_EXTERNAL_TABLE) {
addTableComment(table, sb);
IcebergExternalTable icebergExternalTable = (IcebergExternalTable) table;
+ if (icebergExternalTable.hasSortOrder()) {
+ sb.append("\n").append(icebergExternalTable.getSortOrderSql());
+ }
sb.append("\nLOCATION '").append(icebergExternalTable.location()).append("'");
sb.append("\nPROPERTIES (");
Iterator<Entry<String, String>> iterator = icebergExternalTable.properties().entrySet().iterator();
@@ -4420,9 +4423,9 @@ public class Env {
}
}
sb.append(Joiner.on(", ").join(keysColumnNames)).append(")");
- // show cluster keys
+ // show order keys
if (!clusterKeysColumnNamesToId.isEmpty()) {
- sb.append("\n").append("CLUSTER BY (`");
+ sb.append("\n").append("ORDER BY (`");
sb.append(Joiner.on("`, `").join(clusterKeysColumnNamesToId.values())).append("`)");
}
}
@@ -4653,6 +4656,9 @@ public class Env {
} else if (table.getType() == TableType.ICEBERG_EXTERNAL_TABLE) {
addTableComment(table, sb);
IcebergExternalTable icebergExternalTable = (IcebergExternalTable) table;
+ if (icebergExternalTable.hasSortOrder()) {
+ sb.append("\n").append(icebergExternalTable.getSortOrderSql());
+ }
sb.append("\nLOCATION '").append(icebergExternalTable.location()).append("'");
sb.append("\nPROPERTIES (");
Iterator<Entry<String, String>> iterator = icebergExternalTable.properties().entrySet().iterator();
@@ -5350,7 +5356,7 @@ public class Env {
break;
}
}
- if (sameKey && !Config.random_add_cluster_keys_for_mow) {
+ if (sameKey && !Config.random_add_order_by_keys_for_mow) {
throw new DdlException(shortKeyColumnCount + " short keys is a part of unique keys");
}
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 9a719c8bef1..7f93fa1008e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -2659,8 +2659,8 @@ public class InternalCatalog implements CatalogIf<Database> {
olapTable.setStorageDictPageSize(storageDictPageSize);
// check data sort properties
- int keyColumnSize = CollectionUtils.isEmpty(keysDesc.getClusterKeysColumnNames()) ? keysDesc.keysColumnSize() :
- keysDesc.getClusterKeysColumnNames().size();
+ int keyColumnSize = CollectionUtils.isEmpty(keysDesc.getOrderByKeysColumnNames()) ? keysDesc.keysColumnSize() :
+ keysDesc.getOrderByKeysColumnNames().size();
DataSortInfo dataSortInfo = PropertyAnalyzer.analyzeDataSortInfo(properties, keysType,
keyColumnSize, storageFormat);
olapTable.setDataSortInfo(dataSortInfo);
@@ -2673,7 +2673,7 @@ public class InternalCatalog implements CatalogIf<Database> {
throw new DdlException(e.getMessage());
}
if (enableUniqueKeyMergeOnWrite && !enableLightSchemaChange && !CollectionUtils.isEmpty(
- keysDesc.getClusterKeysColumnNames())) {
+ keysDesc.getOrderByKeysColumnNames())) {
throw new DdlException(
"Unique merge-on-write tables with cluster keys require light schema change to be enabled.");
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java
index 5f421199b86..1695c96a38d 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergExternalTable.java
@@ -38,6 +38,7 @@ import org.apache.doris.mtmv.MTMVRefreshContext;
import org.apache.doris.mtmv.MTMVRelatedTableIf;
import org.apache.doris.mtmv.MTMVSnapshotIdSnapshot;
import org.apache.doris.mtmv.MTMVSnapshotIf;
+import org.apache.doris.nereids.trees.plans.commands.info.SortFieldInfo;
import org.apache.doris.statistics.AnalysisInfo;
import org.apache.doris.statistics.BaseAnalysisTask;
import org.apache.doris.statistics.ExternalAnalysisTask;
@@ -377,4 +378,38 @@ public class IcebergExternalTable extends ExternalTable implements MTMVRelatedTa
Table table = getIcebergTable();
return table.spec().isPartitioned();
}
+
+ /**
+ * Get sort order SQL clause from iceberg table
+ * @return SQL string representing ORDER BY clause, or empty string if no sort order
+ */
+ public String getSortOrderSql() {
+ Table table = getIcebergTable();
+ org.apache.iceberg.SortOrder sortOrder = table.sortOrder();
+ if (sortOrder == null || sortOrder.isUnsorted() || sortOrder.fields().isEmpty()) {
+ return "";
+ }
+
+ List<String> sortItems = new java.util.ArrayList<>();
+ for (org.apache.iceberg.SortField sortField : sortOrder.fields()) {
+ String columnName = table.schema().findColumnName(sortField.sourceId());
+ if (columnName != null) {
+ boolean isAscending = sortField.direction() != org.apache.iceberg.SortDirection.DESC;
+ boolean isNullFirst = sortField.nullOrder() == org.apache.iceberg.NullOrder.NULLS_FIRST;
+ SortFieldInfo sortFieldInfo = new SortFieldInfo(columnName, isAscending, isNullFirst);
+ sortItems.add(sortFieldInfo.toSql());
+ }
+ }
+ return "ORDER BY (" + String.join(", ", sortItems) + ")";
+ }
+
+ /**
+ * Check if table has sort order defined
+ * @return true if table has sort order
+ */
+ public boolean hasSortOrder() {
+ Table table = getIcebergTable();
+ org.apache.iceberg.SortOrder sortOrder = table.sortOrder();
+ return sortOrder != null && !sortOrder.isUnsorted();
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
index 76ee84db216..a82e59157ba 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/iceberg/IcebergMetadataOps.java
@@ -47,6 +47,7 @@ import org.apache.doris.nereids.trees.plans.commands.info.CreateOrReplaceTagInfo
import org.apache.doris.nereids.trees.plans.commands.info.CreateTableInfo;
import org.apache.doris.nereids.trees.plans.commands.info.DropBranchInfo;
import org.apache.doris.nereids.trees.plans.commands.info.DropTagInfo;
+import org.apache.doris.nereids.trees.plans.commands.info.SortFieldInfo;
import org.apache.doris.nereids.trees.plans.commands.info.TagOptions;
import com.google.common.annotations.VisibleForTesting;
@@ -360,7 +361,17 @@ public class IcebergMetadataOps implements ExternalMetadataOps {
properties.put(ExternalCatalog.DORIS_VERSION, ExternalCatalog.DORIS_VERSION_VALUE);
PartitionSpec partitionSpec = IcebergUtils.solveIcebergPartitionSpec(createTableInfo.getPartitionDesc(),
schema);
- catalog.createTable(getTableIdentifier(dbName, tableName), schema, partitionSpec, properties);
+ // Build and create table with optional sort order
+ org.apache.iceberg.SortOrder sortOrder = buildSortOrder(createTableInfo.getSortOrderFields(), schema);
+ if (sortOrder != null && !sortOrder.isUnsorted()) {
+ catalog.buildTable(getTableIdentifier(dbName, tableName), schema)
+ .withPartitionSpec(partitionSpec)
+ .withProperties(properties)
+ .withSortOrder(sortOrder)
+ .create();
+ } else {
+ catalog.createTable(getTableIdentifier(dbName, tableName), schema, partitionSpec, properties);
+ }
return false;
}
@@ -1193,4 +1204,32 @@ public class IcebergMetadataOps implements ExternalMetadataOps {
ViewCatalog viewCatalog = (ViewCatalog) catalog;
viewCatalog.dropView(getTableIdentifier(remoteDbName, remoteViewName));
}
+
+ /**
+ * Build Iceberg SortOrder from SortFieldInfo list
+ */
+ private org.apache.iceberg.SortOrder buildSortOrder(List<SortFieldInfo> sortFields, Schema schema) {
+ if (sortFields == null || sortFields.isEmpty()) {
+ return null;
+ }
+
+ org.apache.iceberg.SortOrder.Builder builder = org.apache.iceberg.SortOrder.builderFor(schema);
+ for (SortFieldInfo sortField : sortFields) {
+ String columnName = sortField.getColumnName();
+ if (sortField.isAscending()) {
+ if (sortField.isNullFirst()) {
+ builder.asc(columnName, org.apache.iceberg.NullOrder.NULLS_FIRST);
+ } else {
+ builder.asc(columnName, org.apache.iceberg.NullOrder.NULLS_LAST);
+ }
+ } else {
+ if (sortField.isNullFirst()) {
+ builder.desc(columnName, org.apache.iceberg.NullOrder.NULLS_FIRST);
+ } else {
+ builder.desc(columnName, org.apache.iceberg.NullOrder.NULLS_LAST);
+ }
+ }
+ }
+ return builder.build();
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
index ec8a55e6a6e..3c19a8bbd83 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/parser/LogicalPlanBuilder.java
@@ -1002,6 +1002,7 @@ import org.apache.doris.nereids.trees.plans.commands.info.SetUserPropertyVarOp;
import org.apache.doris.nereids.trees.plans.commands.info.SetVarOp;
import org.apache.doris.nereids.trees.plans.commands.info.ShowCreateMTMVInfo;
import org.apache.doris.nereids.trees.plans.commands.info.SimpleColumnDefinition;
+import org.apache.doris.nereids.trees.plans.commands.info.SortFieldInfo;
import org.apache.doris.nereids.trees.plans.commands.info.StepPartition;
import org.apache.doris.nereids.trees.plans.commands.info.TableNameInfo;
import org.apache.doris.nereids.trees.plans.commands.info.TableRefInfo;
@@ -3854,6 +3855,9 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
partitionInfo = PartitionTableInfo.EMPTY;
}
+ // parse sort items
+ List<SortFieldInfo> sortFields = parseSortItems(ctx.sortItems);
+
if (ctx.columnDefs() != null) {
if (ctx.query() != null) {
throw new AnalysisException("Should not define the entire column in CTAS");
@@ -3876,7 +3880,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
ctx.rollupDefs() != null ? visitRollupDefs(ctx.rollupDefs()) : ImmutableList.of(),
properties,
extProperties,
- ctx.clusterKeys != null ? visitIdentifierList(ctx.clusterKeys) : ImmutableList.of()));
+ sortFields));
} else if (ctx.query() != null) {
return new CreateTableCommand(Optional.of(visitQuery(ctx.query())), new CreateTableInfo(
ctx.EXISTS() != null,
@@ -3895,7 +3899,7 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
ctx.rollupDefs() != null ? visitRollupDefs(ctx.rollupDefs()) : ImmutableList.of(),
properties,
extProperties,
- ctx.clusterKeys != null ? visitIdentifierList(ctx.clusterKeys) : ImmutableList.of()));
+ sortFields));
} else {
throw new AnalysisException("Should contain at least one column in a table");
}
@@ -9638,4 +9642,52 @@ public class LogicalPlanBuilder extends DorisParserBaseVisitor<Object> {
public AlterTableOp visitDropBranchClause(DorisParser.DropBranchClauseContext ctx) {
return new DropBranchOp(ctx.name.getText(), ctx.EXISTS() != null);
}
+
+ /**
+ * Parse sort items from ANTLR context to SortFieldInfo list.
+ * Used for Iceberg table ORDER BY clause.
+ *
+ * @param sortItemContexts List of sortItem contexts from grammar
+ * @return List of SortFieldInfo containing column name, sort order, and null order
+ */
+ private List<SortFieldInfo> parseSortItems(List<DorisParser.SortItemContext> sortItemContexts) {
+ if (sortItemContexts == null || sortItemContexts.isEmpty()) {
+ return ImmutableList.of();
+ }
+
+ ImmutableList.Builder<SortFieldInfo> sortFields = ImmutableList.builder();
+ for (DorisParser.SortItemContext sortItemContext : sortItemContexts) {
+ Expression expression = typedVisit(sortItemContext.expression());
+
+ // Extract column name from expression
+ String columnName;
+ if (expression instanceof UnboundSlot) {
+ UnboundSlot slot = (UnboundSlot) expression;
+ // Get the last part of the nameParts as column name
+ columnName = slot.getNameParts().get(slot.getNameParts().size() - 1);
+ } else {
+ throw new AnalysisException("ORDER BY clause only supports column references, got: "
+ + expression.getClass().getSimpleName());
+ }
+
+ // Determine sort order (default is ASC)
+ boolean isAscending = sortItemContext.DESC() == null;
+
+ // Determine null order
+ // Default: NULLS FIRST for ASC, NULLS LAST for DESC
+ boolean isNullFirst;
+ if (sortItemContext.FIRST() != null) {
+ isNullFirst = true;
+ } else if (sortItemContext.LAST() != null) {
+ isNullFirst = false;
+ } else {
+ // Use default behavior
+ isNullFirst = isAscending;
+ }
+
+ sortFields.add(new SortFieldInfo(columnName, isAscending, isNullFirst));
+ }
+
+ return sortFields.build();
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java
index b21aacb5828..cd8259b3726 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateMTMVInfo.java
@@ -284,7 +284,7 @@ public class CreateMTMVInfo extends CreateTableInfo {
this.setPartitionTableInfo(partitionDesc == null
? PartitionTableInfo.EMPTY : partitionDesc.convertToPartitionTableInfo());
this.setRollups(Lists.newArrayList());
- this.setClusterKeysColumnNames(Lists.newArrayList());
+ this.setSortOrderFields(Lists.newArrayList());
this.setIndexes(Lists.newArrayList());
this.analyzeEngine();
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java
index 6943de00bb5..f6deabcb863 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/CreateTableInfo.java
@@ -146,8 +146,7 @@ public class CreateTableInfo {
private boolean isEnableSkipBitmapColumn = false;
private boolean isExternal = false;
private boolean isTemp = false;
- private String clusterName = null;
- private List<String> clusterKeysColumnNames = null;
+ private List<SortFieldInfo> sortOrderFields = null; // order by fields
private PartitionTableInfo partitionTableInfo; // get when validate
private DistributionDesc distributionDesc;
@@ -176,7 +175,7 @@ public class CreateTableInfo {
List<RollupDefinition> rollups,
Map<String, String> properties,
Map<String, String> extProperties,
- List<String> clusterKeyColumnNames) {
+ List<SortFieldInfo> sortOrderFields) {
this.ifNotExists = ifNotExists;
this.isExternal = isExternal;
this.isTemp = isTemp;
@@ -197,7 +196,7 @@ public class CreateTableInfo {
this.properties = properties;
PropertyAnalyzer.getInstance().rewriteForceProperties(this.properties);
this.extProperties = extProperties;
- this.clusterKeysColumnNames = Utils.copyRequiredList(clusterKeyColumnNames);
+ this.sortOrderFields = Utils.copyRequiredList(sortOrderFields);
}
/**
@@ -220,7 +219,7 @@ public class CreateTableInfo {
List<RollupDefinition> rollups,
Map<String, String> properties,
Map<String, String> extProperties,
- List<String> clusterKeyColumnNames) {
+ List<SortFieldInfo> sortOrderFields) {
this.ifNotExists = ifNotExists;
this.isExternal = isExternal;
this.isTemp = isTemp;
@@ -241,7 +240,7 @@ public class CreateTableInfo {
this.properties = properties;
PropertyAnalyzer.getInstance().rewriteForceProperties(this.properties);
this.extProperties = extProperties;
- this.clusterKeysColumnNames = Utils.copyRequiredList(clusterKeyColumnNames);
+ this.sortOrderFields = Utils.copyRequiredList(sortOrderFields);
}
/**
@@ -270,11 +269,11 @@ public class CreateTableInfo {
if (ctasColumns != null) {
return new CreateTableInfo(ifNotExists, isExternal, isTemp, ctlName, dbName, tableName, ctasColumns,
engineName, keysType, keys, comment, partitionTableInfo, distribution, rollups, properties,
- extProperties, clusterKeysColumnNames);
+ extProperties, sortOrderFields);
} else {
return new CreateTableInfo(ifNotExists, isExternal, isTemp, ctlName, dbName, tableName, columns, indexes,
engineName, keysType, keys, comment, partitionTableInfo, distribution, rollups, properties,
- extProperties, clusterKeysColumnNames);
+ extProperties, sortOrderFields);
}
}
@@ -286,8 +285,12 @@ public class CreateTableInfo {
this.indexes = indexes;
}
- public void setClusterKeysColumnNames(List<String> clusterKeysColumnNames) {
- this.clusterKeysColumnNames = clusterKeysColumnNames;
+ public void setSortOrderFields(List<SortFieldInfo> sortOrderFields) {
+ this.sortOrderFields = sortOrderFields;
+ }
+
+ public List<SortFieldInfo> getSortOrderFields() {
+ return sortOrderFields;
}
public void setRollups(List<RollupDefinition> rollups) {
@@ -599,10 +602,10 @@ public class CreateTableInfo {
}
try {
- if (Config.random_add_cluster_keys_for_mow && isEnableMergeOnWrite && clusterKeysColumnNames.isEmpty()
+ if (Config.random_add_order_by_keys_for_mow && isEnableMergeOnWrite && sortOrderFields.isEmpty()
&& PropertyAnalyzer.analyzeUseLightSchemaChange(new HashMap<>(properties))) {
- // exclude columns whose data type can not be cluster key, see {@link ColumnDefinition#validate}
- List<ColumnDefinition> clusterKeysCandidates = columns.stream().filter(c -> {
+ // exclude columns whose data type can not be order key, see {@link ColumnDefinition#validate}
+ List<ColumnDefinition> orderKeysCandidates = columns.stream().filter(c -> {
DataType type = c.getType();
return !(type.isFloatLikeType() || type.isStringType() || type.isArrayType()
|| type.isBitmapType() || type.isHllType() || type.isQuantileStateType()
@@ -611,16 +614,17 @@ public class CreateTableInfo {
|| type.isMapType()
|| type.isStructType());
}).collect(Collectors.toList());
- if (clusterKeysCandidates.size() > 0) {
- clusterKeysColumnNames = new ArrayList<>();
+ if (orderKeysCandidates.size() > 0) {
+ sortOrderFields = new ArrayList<>();
Random random = new Random();
- int randomClusterKeysCount = random.nextInt(clusterKeysCandidates.size()) + 1;
- Collections.shuffle(clusterKeysCandidates);
+ int randomClusterKeysCount = random.nextInt(orderKeysCandidates.size()) + 1;
+ Collections.shuffle(orderKeysCandidates);
for (int i = 0; i < randomClusterKeysCount; i++) {
- clusterKeysColumnNames.add(clusterKeysCandidates.get(i).getName());
+ sortOrderFields.add(new SortFieldInfo(orderKeysCandidates.get(i).getName()));
}
- LOG.info("Randomly add cluster keys for table {}.{}: {}",
- dbName, tableName, clusterKeysColumnNames);
+ LOG.info("Randomly add order keys for table {}.{}: {}",
+ dbName, tableName, sortOrderFields.stream().map(SortFieldInfo::getColumnName)
+ .collect(Collectors.joining(",")));
}
}
} catch (Exception e) {
@@ -628,10 +632,10 @@ public class CreateTableInfo {
}
validateKeyColumns();
- if (!clusterKeysColumnNames.isEmpty()) {
+ if (!sortOrderFields.isEmpty()) {
if (!isEnableMergeOnWrite) {
throw new AnalysisException(
- "Cluster keys only support unique keys table which enabled "
+ "Order keys only support unique keys table which enabled "
+ PropertyAnalyzer.ENABLE_UNIQUE_KEY_MERGE_ON_WRITE);
}
}
@@ -783,6 +787,15 @@ public class CreateTableInfo {
+ "and you can use 'bucket(num, column)' in 'PARTITIONED BY'.");
}
+ // Validate Iceberg sort order columns
+ if (sortOrderFields != null && !sortOrderFields.isEmpty()) {
+ if (!engineName.equalsIgnoreCase(ENGINE_ICEBERG)) {
+ throw new AnalysisException(
+ "Only Iceberg catalog supports sort order, but current catalog is: " + engineName);
+ }
+ validateIcebergSortOrder(columnMap);
+ }
+
for (ColumnDefinition columnDef : columns) {
if (!columnDef.isNullable()
&& engineName.equalsIgnoreCase(ENGINE_HIVE)) {
@@ -808,9 +821,9 @@ public class CreateTableInfo {
final boolean finalEnableMergeOnWrite = isEnableMergeOnWrite;
Set<String> keysSet = Sets.newTreeSet(String.CASE_INSENSITIVE_ORDER);
keysSet.addAll(keys);
- Set<String> clusterKeySet = Sets.newTreeSet(String.CASE_INSENSITIVE_ORDER);
- clusterKeySet.addAll(clusterKeysColumnNames);
- columns.forEach(c -> c.validate(engineName.equals(ENGINE_OLAP), keysSet, clusterKeySet, finalEnableMergeOnWrite,
+ Set<String> orderKeySet = Sets.newTreeSet(String.CASE_INSENSITIVE_ORDER);
+ orderKeySet.addAll(sortOrderFields.stream().map(SortFieldInfo::getColumnName).collect(Collectors.toSet()));
+ columns.forEach(c -> c.validate(engineName.equals(ENGINE_OLAP), keysSet, orderKeySet, finalEnableMergeOnWrite,
keysType));
// validate index
@@ -1028,42 +1041,48 @@ public class CreateTableInfo {
}
}
- if (!clusterKeysColumnNames.isEmpty()) {
- // the same code as KeysDesc#analyzeClusterKeys
+ if (!sortOrderFields.isEmpty()) {
+ // the same code as KeysDesc#analyzeOrderKeys
if (keysType != KeysType.UNIQUE_KEYS) {
- throw new AnalysisException("Cluster keys only support unique keys table");
+ throw new AnalysisException("Order keys only support unique keys table");
}
- // check that cluster keys is not duplicated
- for (int i = 0; i < clusterKeysColumnNames.size(); i++) {
- String name = clusterKeysColumnNames.get(i);
+ // check that order keys is not duplicated
+ for (int i = 0; i < sortOrderFields.size(); i++) {
+ String name = sortOrderFields.get(i).getColumnName();
+ if (!sortOrderFields.get(i).isAscending()) {
+ throw new AnalysisException("Order keys only support ASC in OLAP table.");
+ }
+ if (!sortOrderFields.get(i).isNullFirst()) {
+ throw new AnalysisException("Order keys only support NULLS FIRST in OLAP table.");
+ }
for (int j = 0; j < i; j++) {
- if (clusterKeysColumnNames.get(j).equalsIgnoreCase(name)) {
- throw new AnalysisException("Duplicate cluster key column[" + name + "].");
+ if (sortOrderFields.get(j).getColumnName().equalsIgnoreCase(name)) {
+ throw new AnalysisException("Duplicate order key column[" + name + "].");
}
}
}
- // check that cluster keys is not equal to primary keys
- int minKeySize = Math.min(keys.size(), clusterKeysColumnNames.size());
+ // check that order keys is not equal to primary keys
+ int minKeySize = Math.min(keys.size(), sortOrderFields.size());
boolean sameKey = true;
for (int i = 0; i < minKeySize; ++i) {
- if (!keys.get(i).equalsIgnoreCase(clusterKeysColumnNames.get(i))) {
+ if (!keys.get(i).equalsIgnoreCase(sortOrderFields.get(i).getColumnName())) {
sameKey = false;
break;
}
}
- if (sameKey && !Config.random_add_cluster_keys_for_mow) {
- throw new AnalysisException("Unique keys and cluster keys should be different.");
+ if (sameKey && !Config.random_add_order_by_keys_for_mow) {
+ throw new AnalysisException("Unique keys and order keys should be different.");
}
- // check that cluster key column exists
- for (int i = 0; i < clusterKeysColumnNames.size(); ++i) {
- String name = clusterKeysColumnNames.get(i);
+ // check that order key column exists
+ for (int i = 0; i < sortOrderFields.size(); ++i) {
+ String name = sortOrderFields.get(i).getColumnName();
for (int j = 0; j < columns.size(); j++) {
if (columns.get(j).getName().equalsIgnoreCase(name)) {
columns.get(j).setClusterKeyId(i);
break;
}
if (j == columns.size() - 1) {
- throw new AnalysisException("Cluster key column[" + name + "] doesn't exist.");
+ throw new AnalysisException("Order key column[" + name + "] doesn't exist.");
}
}
}
@@ -1365,7 +1384,8 @@ public class CreateTableInfo {
}
public KeysDesc getKeysDesc() {
- return new KeysDesc(keysType, keys, clusterKeysColumnNames);
+ return new KeysDesc(keysType, keys,
+ sortOrderFields.stream().map(SortFieldInfo::getColumnName).collect(Collectors.toList()));
}
// 1. if the column is variant type, check it's field pattern is valid
@@ -1545,4 +1565,39 @@ public class CreateTableInfo {
return sb.toString();
}
+
+ /**
+ * Validate sort order for Iceberg table
+ */
+ private void validateIcebergSortOrder(Map<String, ColumnDefinition> columnMap) {
+ if (sortOrderFields == null || sortOrderFields.isEmpty()) {
+ return;
+ }
+
+ // Check if sort order columns exist
+ for (SortFieldInfo sortField : sortOrderFields) {
+ String sortCol = sortField.getColumnName();
+ if (!columnMap.containsKey(sortCol)) {
+ throw new AnalysisException("Sort order column '" + sortCol + "' does not exist in table");
+ }
+
+ ColumnDefinition col = columnMap.get(sortCol);
+ DataType type = col.getType();
+
+ // Check if data type supports sorting
+ if (type.isOnlyMetricType()) {
+ throw new AnalysisException("Sort order column '" + sortCol
+ + "' has unsupported type: " + type);
+ }
+ }
+
+ // Check for duplicate sort order columns
+ Set<String> sortColSet = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
+ for (SortFieldInfo sortField : sortOrderFields) {
+ String sortCol = sortField.getColumnName();
+ if (!sortColSet.add(sortCol)) {
+ throw new AnalysisException("Duplicate sort order column: " + sortCol);
+ }
+ }
+ }
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/SortFieldInfo.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/SortFieldInfo.java
new file mode 100644
index 00000000000..79d6340f5c6
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/info/SortFieldInfo.java
@@ -0,0 +1,67 @@
+// 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.nereids.trees.plans.commands.info;
+
+/**
+ * Sort field information for CREATE TABLE ORDER BY clause
+ */
+public class SortFieldInfo {
+ private final String columnName;
+ private final boolean ascending;
+ private final boolean nullFirst;
+
+ public SortFieldInfo(String columnName) {
+ this.columnName = columnName;
+ this.ascending = true; // default to ascending
+ this.nullFirst = true; // default to nulls first
+ }
+
+ public SortFieldInfo(String columnName, boolean ascending, boolean nullFirst) {
+ this.columnName = columnName;
+ this.ascending = ascending;
+ this.nullFirst = nullFirst;
+ }
+
+ public String getColumnName() {
+ return columnName;
+ }
+
+ public boolean isAscending() {
+ return ascending;
+ }
+
+ public boolean isNullFirst() {
+ return nullFirst;
+ }
+
+ /**
+ * Convert to SQL format with backticks around column name
+ * @return SQL string like: `column_name` ASC NULLS FIRST
+ */
+ public String toSql() {
+ StringBuilder sql = new StringBuilder("`").append(columnName).append("`");
+ sql.append(ascending ? " ASC" : " DESC");
+ sql.append(" NULLS ").append(nullFirst ? "FIRST" : "LAST");
+ return sql.toString();
+ }
+
+ @Override
+ public String toString() {
+ return toSql();
+ }
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/IcebergTableSink.java b/fe/fe-core/src/main/java/org/apache/doris/planner/IcebergTableSink.java
index c536844c649..edc68c1636a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/IcebergTableSink.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/IcebergTableSink.java
@@ -89,6 +89,12 @@ public class IcebergTableSink extends BaseExternalTableDataSink {
if (explainLevel == TExplainLevel.BRIEF) {
return strBuilder.toString();
}
+ Table icebergTable = targetTable.getIcebergTable();
+ strBuilder.append(prefix).append("Table: ").append(icebergTable.name()).append("\n");
+ if (icebergTable.sortOrder().isSorted()) {
+ strBuilder.append(prefix).append(targetTable.getSortOrderSql()).append("\n");
+ }
+
// TODO: explain partitions
return strBuilder.toString();
}
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 badb7fefd87..e5dcfd3a05d 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
@@ -1127,18 +1127,18 @@ class Config {
boolean isClusterKeyEnabled() {
try {
- def result = JdbcUtils.executeToMapArray(getRootConnection(), "SHOW FRONTEND CONFIG LIKE 'random_add_cluster_keys_for_mow'")
- log.info("show random_add_cluster_keys_for_mow config: ${result}".toString())
+ def result = JdbcUtils.executeToMapArray(getRootConnection(), "SHOW FRONTEND CONFIG LIKE 'random_add_order_by_keys_for_mow'")
+ log.info("show random_add_order_by_keys_for_mow config: ${result}".toString())
return result[0].Value.toString().equalsIgnoreCase("true")
} catch (Throwable t) {
- log.warn("Fetch server config 'random_add_cluster_keys_for_mow' failed, jdbcUrl: ${jdbcUrl}".toString(), t)
+ log.warn("Fetch server config 'random_add_order_by_keys_for_mow' failed, jdbcUrl: ${jdbcUrl}".toString(), t)
return false
}
}
void excludeUnsupportedCase() {
boolean isCKEnabled = isClusterKeyEnabled()
- log.info("random_add_cluster_keys_for_mow in fe.conf: ${isCKEnabled}".toString())
+ log.info("random_add_order_by_keys_for_mow in fe.conf: ${isCKEnabled}".toString())
if (isCKEnabled) {
excludeDirectorySet.add("unique_with_mow_p0/partial_update")
excludeDirectorySet.add("unique_with_mow_p0/flexible")
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 2af0aef9710..7ff5ce0eb37 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
@@ -2103,7 +2103,7 @@ class Suite implements GroovyInterceptable {
}
boolean isClusterKeyEnabled() {
- return getFeConfig("random_add_cluster_keys_for_mow").equals("true")
+ return getFeConfig("random_add_order_by_keys_for_mow").equals("true")
}
boolean enableStoragevault() {
diff --git a/regression-test/suites/compaction/test_compaction_uniq_keys_ck.groovy b/regression-test/suites/compaction/test_compaction_uniq_keys_ck.groovy
index 1b401b3c789..807da7d067f 100644
--- a/regression-test/suites/compaction/test_compaction_uniq_keys_ck.groovy
+++ b/regression-test/suites/compaction/test_compaction_uniq_keys_ck.groovy
@@ -62,7 +62,7 @@ suite("test_compaction_uniq_keys_ck") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `datev2`, `datetimev2_1`, `datetimev2_2`, `city`, `age`, `sex`)
- CLUSTER BY(`last_visit_date_not_null`, `age`, `sex`, `city`)
+ ORDER BY(`last_visit_date_not_null`, `age`, `sex`, `city`)
DISTRIBUTED BY HASH(`user_id`)
PROPERTIES (
"replication_num" = "1",
diff --git a/regression-test/suites/compaction/test_compaction_uniq_keys_row_store_ck.groovy b/regression-test/suites/compaction/test_compaction_uniq_keys_row_store_ck.groovy
index 19a6d467d84..ddf48cde253 100644
--- a/regression-test/suites/compaction/test_compaction_uniq_keys_row_store_ck.groovy
+++ b/regression-test/suites/compaction/test_compaction_uniq_keys_row_store_ck.groovy
@@ -139,7 +139,7 @@ suite("test_compaction_uniq_keys_row_store_ck", "p0") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `datev2`, `datetimev2_1`, `datetimev2_2`, `city`, `age`, `sex`)
- CLUSTER BY(`last_visit_date`, `last_update_date`, `city`, `cost`)
+ ORDER BY(`last_visit_date`, `last_update_date`, `city`, `cost`)
DISTRIBUTED BY HASH(`user_id`)
PROPERTIES ( "replication_num" = "1",
"enable_unique_key_merge_on_write" = "true",
diff --git a/regression-test/suites/compaction/test_compaction_uniq_keys_with_delete_ck.groovy b/regression-test/suites/compaction/test_compaction_uniq_keys_with_delete_ck.groovy
index 6a61c84a1f6..b2092542ce6 100644
--- a/regression-test/suites/compaction/test_compaction_uniq_keys_with_delete_ck.groovy
+++ b/regression-test/suites/compaction/test_compaction_uniq_keys_with_delete_ck.groovy
@@ -62,7 +62,7 @@ suite("test_compaction_uniq_keys_with_delete_ck") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `datev2`, `datetimev2_1`, `datetimev2_2`, `city`, `age`, `sex`)
- CLUSTER BY(`sex`, `date`, `cost`)
+ ORDER BY(`sex`, `date`, `cost`)
DISTRIBUTED BY HASH(`user_id`)
PROPERTIES (
"replication_num" = "1",
diff --git a/regression-test/suites/compaction/test_full_compaction_ck.groovy b/regression-test/suites/compaction/test_full_compaction_ck.groovy
index fd4d799f8ee..1c510f04982 100644
--- a/regression-test/suites/compaction/test_full_compaction_ck.groovy
+++ b/regression-test/suites/compaction/test_full_compaction_ck.groovy
@@ -47,7 +47,7 @@ suite("test_full_compaction_ck") {
CREATE TABLE ${tableName} (
`user_id` INT NOT NULL, `value` INT NOT NULL)
UNIQUE KEY(`user_id`)
- CLUSTER BY(`value`)
+ ORDER BY(`value`)
DISTRIBUTED BY HASH(`user_id`)
BUCKETS 1
PROPERTIES ("replication_allocation" = "tag.location.default: 1",
diff --git a/regression-test/suites/compaction/test_vertical_compaction_uniq_keys_ck.groovy b/regression-test/suites/compaction/test_vertical_compaction_uniq_keys_ck.groovy
index e7fad814e15..665cc9d47d8 100644
--- a/regression-test/suites/compaction/test_vertical_compaction_uniq_keys_ck.groovy
+++ b/regression-test/suites/compaction/test_vertical_compaction_uniq_keys_ck.groovy
@@ -61,7 +61,7 @@ suite("test_vertical_compaction_uniq_keys_ck") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `datev2`, `datetimev2_1`, `datetimev2_2`, `city`, `age`, `sex`)
- CLUSTER BY(`age`, `sex`, `user_id`)
+ ORDER BY(`age`, `sex`, `user_id`)
DISTRIBUTED BY HASH(`user_id`)
PROPERTIES ( "replication_num" = "1", "enable_unique_key_merge_on_write"="true" );
"""
diff --git a/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_create_table.groovy b/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_create_table.groovy
index e7b2bb9bafc..f9a5fb63ec6 100644
--- a/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_create_table.groovy
+++ b/regression-test/suites/external_table_p0/iceberg/write/test_iceberg_create_table.groovy
@@ -73,7 +73,33 @@ suite("test_iceberg_create_table", "p0,external,doris,external_docker,external_d
sql """ create table ${db1}.${tb1} (id int) engine = iceberg """
sql """ create table ${db1}.${tb2} (id int) """
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb3 (id int) order by (id asc) """
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb4 (id int) order by (id asc NULLS LAST)"""
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb5 (id int) order by (id desc) """
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb6 (id int) order by (id desc NULLS FIRST)"""
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb7 (id int, id2 int) order by (id desc NULLS FIRST, id2 asc NULLS LAST)"""
+ test {
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb8 (id int, id2 int) order by (id desc NULLS FIRST, id2 asc NULLS LAST, id3 asc) """
+ exception "does not exist in table"
+ }
+ test {
+ sql """ create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb9 (id int, id2 int) order by (id desc NULLS FIRST, id2 asc NULLS LAST, id desc) """
+ exception "Duplicate sort order column"
+ }
+ def result = sql """ show create table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb7 """;
+ logger.info(" result: " + result)
+ assertTrue(result[0][1].contains('ORDER BY (`id` DESC NULLS FIRST, `id2` ASC NULLS LAST)'))
+
+ explain {
+ sql """ insert into test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb7 values(1,1)""";
+ contains "ORDER BY (`id` DESC NULLS FIRST, `id2` ASC NULLS LAST)"
+ }
+ sql """ drop table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb3 """
+ sql """ drop table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb4 """
+ sql """ drop table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb5 """
+ sql """ drop table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb6 """
+ sql """ drop table test_iceberg_create_table_db1.test_iceberg_create_table_db1_tb7 """
sql """ drop table ${db1}.${tb1} """
sql """ drop table ${db1}.${tb2} """
sql """ drop database ${db1} """
diff --git a/regression-test/suites/inverted_index_p0/array_contains/test_index_compaction_unique_keys_arr.groovy b/regression-test/suites/inverted_index_p0/array_contains/test_index_compaction_unique_keys_arr.groovy
index 875acba7574..6de254c699a 100644
--- a/regression-test/suites/inverted_index_p0/array_contains/test_index_compaction_unique_keys_arr.groovy
+++ b/regression-test/suites/inverted_index_p0/array_contains/test_index_compaction_unique_keys_arr.groovy
@@ -216,7 +216,7 @@ suite("test_index_compaction_unique_keys_arr", "array_contains_inverted_index, n
index index_score (score) using inverted
) ENGINE=OLAP
UNIQUE KEY(`id`)
- CLUSTER BY (`score`)
+ ORDER BY (`score`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES (
diff --git a/regression-test/suites/nereids_p0/delete/delete_cte_ck.groovy b/regression-test/suites/nereids_p0/delete/delete_cte_ck.groovy
index 090b3fb1552..9ab4338a8bc 100644
--- a/regression-test/suites/nereids_p0/delete/delete_cte_ck.groovy
+++ b/regression-test/suites/nereids_p0/delete/delete_cte_ck.groovy
@@ -40,7 +40,7 @@ suite('nereids_delete_cte_ck') {
c3 double,
c4 date
) unique key (id, id1)
- CLUSTER BY (`id1`, `id`, `c4`)
+ ORDER BY (`id1`, `id`, `c4`)
distributed by hash(id, id1)
properties(
"replication_num"="1",
@@ -56,7 +56,7 @@ suite('nereids_delete_cte_ck') {
c3 double,
c4 date
) unique key (id)
- CLUSTER BY (`c4`, `c1`)
+ ORDER BY (`c4`, `c1`)
distributed by hash(id)
properties(
"replication_num"="1"
diff --git a/regression-test/suites/point_query_p0/load_ck.groovy b/regression-test/suites/point_query_p0/load_ck.groovy
index 716d012a516..bf3f4ecfa17 100644
--- a/regression-test/suites/point_query_p0/load_ck.groovy
+++ b/regression-test/suites/point_query_p0/load_ck.groovy
@@ -117,7 +117,7 @@ suite("test_load_and_schema_change_row_store_ck", "p0") {
`c_string` text NULL
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(c_datev2, c_date, c_largeint, c_tinyint, c_varchar, c_char, c_datetimev2, c_int, c_decimalv3, k1, c_decimal)
+ ORDER BY(c_datev2, c_date, c_largeint, c_tinyint, c_varchar, c_char, c_datetimev2, c_int, c_decimalv3, k1, c_decimal)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`k1`) BUCKETS 10
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true");
diff --git a/regression-test/suites/point_query_p0/test_point_query_ck.groovy b/regression-test/suites/point_query_p0/test_point_query_ck.groovy
index 2d4f5299c81..3f15d8b2585 100644
--- a/regression-test/suites/point_query_p0/test_point_query_ck.groovy
+++ b/regression-test/suites/point_query_p0/test_point_query_ck.groovy
@@ -105,7 +105,7 @@ suite("test_point_query_ck") {
`k12` array<text> NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`, `k2`, `k3`)
- CLUSTER BY(`k9`, `k5`, `k4`, `k2`)
+ ORDER BY(`k9`, `k5`, `k4`, `k2`)
DISTRIBUTED BY HASH(`k1`, k2, k3) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -246,7 +246,7 @@ suite("test_point_query_ck") {
`customer_btm_value_2` text NULL
) ENGINE=OLAP
UNIQUE KEY(`customer_key`)
- CLUSTER BY(`customer_btm_value_1`)
+ ORDER BY(`customer_btm_value_1`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`customer_key`) BUCKETS 16
PROPERTIES (
@@ -270,7 +270,7 @@ suite("test_point_query_ck") {
`A_INTIME` DATETIME NULL
) ENGINE=OLAP
UNIQUE KEY(`RPTNO`)
- CLUSTER BY(`A_ENTTYP`, `A_INTIME`)
+ ORDER BY(`A_ENTTYP`, `A_INTIME`)
DISTRIBUTED BY HASH(`RPTNO`) BUCKETS 3
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
diff --git a/regression-test/suites/point_query_p0/test_point_query_partition_ck.groovy b/regression-test/suites/point_query_p0/test_point_query_partition_ck.groovy
index 658a0ecfb71..c29bbbd3f4b 100644
--- a/regression-test/suites/point_query_p0/test_point_query_partition_ck.groovy
+++ b/regression-test/suites/point_query_p0/test_point_query_partition_ck.groovy
@@ -60,7 +60,7 @@ suite("test_point_query_partition_ck") {
`value` varchar(100) NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`value`)
+ ORDER BY(`value`)
PARTITION BY RANGE(`k1`)
(
PARTITION `p1` VALUES LESS THAN ("1"),
@@ -132,7 +132,7 @@ suite("test_point_query_partition_ck") {
`customer_value_10` TEXT NULL
) ENGINE=OLAP
UNIQUE KEY(`customer_key`)
- CLUSTER BY(`customer_value_2`, `customer_value_1`)
+ ORDER BY(`customer_value_2`, `customer_value_1`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`customer_key`) BUCKETS 10
PROPERTIES (
diff --git a/regression-test/suites/point_query_p0/test_rowstore_ck.groovy b/regression-test/suites/point_query_p0/test_rowstore_ck.groovy
index 98b77c3c4e3..44a6be1cff3 100644
--- a/regression-test/suites/point_query_p0/test_rowstore_ck.groovy
+++ b/regression-test/suites/point_query_p0/test_rowstore_ck.groovy
@@ -43,7 +43,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`v4` datetime NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v2`)
+ ORDER BY(`v2`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -71,7 +71,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`v4` datetime NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v4`, `v2`)
+ ORDER BY(`v4`, `v2`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -99,7 +99,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`v4` datetime NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v2`, `v4`)
+ ORDER BY(`v2`, `v4`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -126,7 +126,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`v4` datetime NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v2`, `k1`)
+ ORDER BY(`v2`, `k1`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -164,7 +164,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `datev2`, `datetimev2_1`, `datetimev2_2`, `city`, `age`, `sex`)
- CLUSTER BY(`max_dwell_time`)
+ ORDER BY(`max_dwell_time`)
DISTRIBUTED BY HASH(`user_id`)
PROPERTIES ( "replication_num" = "1",
"enable_unique_key_merge_on_write" = "true",
@@ -278,7 +278,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`v4` datetime NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v4`, `k1`, `v2`)
+ ORDER BY(`v4`, `k1`, `v2`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -299,7 +299,7 @@ suite("test_rowstore_ck", "p0,nonConcurrent") {
`v2` DECIMALv3(50, 18) NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v2`)
+ ORDER BY(`v2`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
diff --git a/regression-test/suites/point_query_p0/test_rowstore_query_ck.groovy b/regression-test/suites/point_query_p0/test_rowstore_query_ck.groovy
index 896264f0065..0c79821cf3c 100644
--- a/regression-test/suites/point_query_p0/test_rowstore_query_ck.groovy
+++ b/regression-test/suites/point_query_p0/test_rowstore_query_ck.groovy
@@ -26,7 +26,7 @@ suite("test_rowstore_ck", "p0") {
`v2` DECIMAL(50, 18) NULL COMMENT ""
) ENGINE=OLAP
UNIQUE KEY(`k1`)
- CLUSTER BY(`v2`)
+ ORDER BY(`v2`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
diff --git a/regression-test/suites/schema_change_p0/unique_ck/test_schema_change_unique.groovy b/regression-test/suites/schema_change_p0/unique_ck/test_schema_change_unique.groovy
index c82a0f616a0..36e71bbaa09 100644
--- a/regression-test/suites/schema_change_p0/unique_ck/test_schema_change_unique.groovy
+++ b/regression-test/suites/schema_change_p0/unique_ck/test_schema_change_unique.groovy
@@ -102,7 +102,7 @@ suite("test_schema_change_unique", "p0") {
`k13` datetime NULL
) ENGINE=OLAP
unique KEY(k1, k2, k3)
- CLUSTER BY (`k13`)
+ ORDER BY (`k13`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
diff --git a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_drop.groovy b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_drop.groovy
index f3b83dd2370..16db18fccd5 100644
--- a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_drop.groovy
+++ b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_drop.groovy
@@ -54,7 +54,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(SCORE, user_id)\n" +
+ " ORDER BY(SCORE, user_id)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -99,7 +99,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(t_bigint, username, age)\n" +
+ " ORDER BY(t_bigint, username, age)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -151,7 +151,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(t_bigint, USER_ID, username, age)\n" +
+ " ORDER BY(t_bigint, USER_ID, username, age)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -203,7 +203,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(t_datev2, USER_ID, CITY)\n" +
+ " ORDER BY(t_datev2, USER_ID, CITY)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -255,7 +255,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(t_datetimev2, USER_ID, t_datev2, CITY, age)\n" +
+ " ORDER BY(t_datetimev2, USER_ID, t_datev2, CITY, age)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -307,7 +307,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(t_datetimev2, sex, t_datev2, age, city)\n" +
+ " ORDER BY(t_datetimev2, sex, t_datev2, age, city)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -359,7 +359,7 @@ suite("test_unique_schema_value_drop", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`)\n" +
- " CLUSTER BY(score, t_date, sex, t_datev2, age)\n" +
+ " ORDER BY(score, t_date, sex, t_datev2, age)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
diff --git a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify.groovy b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify.groovy
index 3d1b5b8d59b..ca45bc744c5 100644
--- a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify.groovy
+++ b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify.groovy
@@ -43,7 +43,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(age, user_id)\n" +
+ " ORDER BY(age, user_id)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -219,7 +219,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(phone, age, user_id)\n" +
+ " ORDER BY(phone, age, user_id)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -274,7 +274,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(sex, user_id, phone)\n" +
+ " ORDER BY(sex, user_id, phone)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -416,7 +416,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(age, sex, phone)\n" +
+ " ORDER BY(age, sex, phone)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -579,7 +579,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(address, register_time)\n" +
+ " ORDER BY(address, register_time)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -755,7 +755,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(age, phone, user_id)\n" +
+ " ORDER BY(age, phone, user_id)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -935,7 +935,7 @@ suite("test_unique_schema_value_modify","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(sex, age, user_id)\n" +
+ " ORDER BY(sex, age, user_id)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -1122,7 +1122,7 @@ suite("test_unique_schema_value_modify","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(age, user_id, sex)\n" +
+ " ORDER BY(age, user_id, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -1397,7 +1397,7 @@ suite("test_unique_schema_value_modify","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(sex, age, user_id)\n" +
+ " ORDER BY(sex, age, user_id)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -1671,7 +1671,7 @@ suite("test_unique_schema_value_modify","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(phone, user_id, username)\n" +
+ " ORDER BY(phone, user_id, username)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
diff --git a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify1.groovy b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify1.groovy
index f698d8df89e..20f2b9a4ae4 100644
--- a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify1.groovy
+++ b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify1.groovy
@@ -34,7 +34,7 @@ suite("test_unique_schema_value_modify1","p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(phone, user_id, username)\n" +
+ " ORDER BY(phone, user_id, username)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -78,7 +78,7 @@ suite("test_unique_schema_value_modify1","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(age, user_id, address)\n" +
+ " ORDER BY(age, user_id, address)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -331,7 +331,7 @@ suite("test_unique_schema_value_modify1","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(address, age, sex)\n" +
+ " ORDER BY(address, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -585,7 +585,7 @@ suite("test_unique_schema_value_modify1","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(address, city, username)\n" +
+ " ORDER BY(address, city, username)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -837,7 +837,7 @@ suite("test_unique_schema_value_modify1","p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(phone, address, username)\n" +
+ " ORDER BY(phone, address, username)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
diff --git a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify2.groovy b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify2.groovy
index 9e03362d9a2..a3d91003b43 100644
--- a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify2.groovy
+++ b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify2.groovy
@@ -36,7 +36,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(address, age, sex)\n" +
+ " ORDER BY(address, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -78,7 +78,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(address, user_id, sex, age)\n" +
+ " ORDER BY(address, user_id, sex, age)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -291,7 +291,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(age, city, sex)\n" +
+ " ORDER BY(age, city, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -340,7 +340,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(register_time, age, user_id, sex)\n" +
+ " ORDER BY(register_time, age, user_id, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -413,7 +413,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(username, age, sex)\n" +
+ " ORDER BY(username, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -641,7 +641,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(score, age, sex)\n" +
+ " ORDER BY(score, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -713,7 +713,7 @@ suite("test_unique_schema_value_modify2", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(score, user_id, address, age, sex)\n" +
+ " ORDER BY(score, user_id, address, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
diff --git a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify3.groovy b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify3.groovy
index 6e1c9756706..beaa5b30475 100644
--- a/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify3.groovy
+++ b/regression-test/suites/schema_change_p0/unique_ck/test_unique_schema_value_modify3.groovy
@@ -34,7 +34,7 @@ suite("test_unique_schema_value_modify3", "p0") {
" `register_time` DATETIME COMMENT \"用户注册时间\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(user_id, address, age, sex)\n" +
+ " ORDER BY(user_id, address, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -76,7 +76,7 @@ suite("test_unique_schema_value_modify3", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(score, age, sex)\n" +
+ " ORDER BY(score, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
@@ -322,7 +322,7 @@ suite("test_unique_schema_value_modify3", "p0") {
" `j` JSON NULL COMMENT \"\"\n" +
" )\n" +
" UNIQUE KEY(`user_id`, `username`)\n" +
- " CLUSTER BY(score, user_id, age, sex)\n" +
+ " ORDER BY(score, user_id, age, sex)\n" +
" DISTRIBUTED BY HASH(`user_id`) BUCKETS 1\n" +
" PROPERTIES (\n" +
" \"replication_allocation\" = \"tag.location.default: 1\",\n" +
diff --git a/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_mow_ck.groovy b/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_mow_ck.groovy
index 6fa8f6bbcb4..e38062aaaa6 100644
--- a/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_mow_ck.groovy
+++ b/regression-test/suites/segcompaction_p2/test_segcompaction_unique_keys_mow_ck.groovy
@@ -43,7 +43,7 @@ suite("test_segcompaction_unique_keys_mow_ck") {
`col_40` VARCHAR(20),`col_41` VARCHAR(20),`col_42` VARCHAR(20),`col_43` VARCHAR(20),`col_44` VARCHAR(20),
`col_45` VARCHAR(20),`col_46` VARCHAR(20),`col_47` VARCHAR(20),`col_48` VARCHAR(20),`col_49` VARCHAR(20)
)
- UNIQUE KEY(`col_0`) cluster by(`col_1`) DISTRIBUTED BY HASH(`col_0`) BUCKETS 1
+ UNIQUE KEY(`col_0`) ORDER BY(`col_1`) DISTRIBUTED BY HASH(`col_0`) BUCKETS 1
PROPERTIES (
""" + (i == 1 ? "\"function_column.sequence_col\"='col_0', " : "") +
"""
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/call_center.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/call_center.sql
index af77601ab6f..50134092290 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/call_center.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/call_center.sql
@@ -32,7 +32,7 @@ CREATE TABLE IF NOT EXISTS call_center (
cc_tax_percentage decimal(5,2)
)
UNIQUE KEY(cc_call_center_sk, cc_call_center_id)
-CLUSTER BY(cc_division, cc_class)
+ORDER BY(cc_division, cc_class)
DISTRIBUTED BY HASH(cc_call_center_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_page.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_page.sql
index fc7f294e5bf..b1b032041a2 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_page.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_page.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS catalog_page (
cp_type varchar(100)
)
UNIQUE KEY(cp_catalog_page_sk, cp_catalog_page_id)
-CLUSTER BY(cp_department, cp_catalog_number, cp_type)
+ORDER BY(cp_department, cp_catalog_number, cp_type)
DISTRIBUTED BY HASH(cp_catalog_page_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_returns.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_returns.sql
index cb5e44b289d..6834109342f 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_returns.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_returns.sql
@@ -28,7 +28,7 @@ CREATE TABLE IF NOT EXISTS catalog_returns (
cr_net_loss decimal(7,2)
)
UNIQUE KEY(cr_item_sk, cr_order_number)
-CLUSTER BY(cr_returned_time_sk)
+ORDER BY(cr_returned_time_sk)
DISTRIBUTED BY HASH(cr_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_sales.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_sales.sql
index 985700a6912..7e06bf9f349 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_sales.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/catalog_sales.sql
@@ -35,7 +35,7 @@ CREATE TABLE IF NOT EXISTS catalog_sales (
cs_net_profit decimal(7,2)
)
UNIQUE KEY(cs_item_sk, cs_order_number)
-CLUSTER BY(cs_list_price, cs_call_center_sk, cs_item_sk)
+ORDER BY(cs_list_price, cs_call_center_sk, cs_item_sk)
DISTRIBUTED BY HASH(cs_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer.sql
index df850c8e479..53030920db4 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer.sql
@@ -19,7 +19,7 @@ CREATE TABLE IF NOT EXISTS customer (
c_last_review_date_sk bigint
)
UNIQUE KEY(c_customer_sk)
-CLUSTER BY(c_customer_id, c_customer_sk, c_salutation)
+ORDER BY(c_customer_id, c_customer_sk, c_salutation)
DISTRIBUTED BY HASH(c_customer_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_address.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_address.sql
index abda3c18127..26e5a5ec0bc 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_address.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_address.sql
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS customer_address (
ca_location_type char(20)
)
UNIQUE KEY(ca_address_sk)
-CLUSTER BY(ca_address_id, ca_address_sk, ca_street_number)
+ORDER BY(ca_address_id, ca_address_sk, ca_street_number)
DISTRIBUTED BY HASH(ca_address_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_demographics.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_demographics.sql
index 3b2bd531c11..e00e8b652ae 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_demographics.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/customer_demographics.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS customer_demographics (
cd_dep_college_count integer
)
UNIQUE KEY(cd_demo_sk)
-CLUSTER BY(cd_dep_count)
+ORDER BY(cd_dep_count)
DISTRIBUTED BY HASH(cd_demo_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/date_dim.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/date_dim.sql
index e69718faca1..1e4d2b5b7a6 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/date_dim.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/date_dim.sql
@@ -29,7 +29,7 @@ CREATE TABLE IF NOT EXISTS date_dim (
d_current_year char(1)
)
UNIQUE KEY(d_date_sk)
-CLUSTER BY(d_date_id, d_date_sk, d_date)
+ORDER BY(d_date_id, d_date_sk, d_date)
DISTRIBUTED BY HASH(d_date_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/household_demographics.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/household_demographics.sql
index 55af19a04b1..f51f0d18c65 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/household_demographics.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/household_demographics.sql
@@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS household_demographics (
hd_vehicle_count integer
)
UNIQUE KEY(hd_demo_sk)
-CLUSTER BY(hd_dep_count, hd_demo_sk, hd_vehicle_count)
+ORDER BY(hd_dep_count, hd_demo_sk, hd_vehicle_count)
DISTRIBUTED BY HASH(hd_demo_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/income_band.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/income_band.sql
index ea01cf0f6ab..c627df4ca0f 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/income_band.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/income_band.sql
@@ -4,7 +4,7 @@ CREATE TABLE IF NOT EXISTS income_band (
ib_upper_bound integer
)
UNIQUE KEY(ib_income_band_sk)
-CLUSTER BY(ib_lower_bound, ib_upper_bound)
+ORDER BY(ib_lower_bound, ib_upper_bound)
DISTRIBUTED BY HASH(ib_income_band_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/inventory.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/inventory.sql
index 035d73681df..e1691ecc93d 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/inventory.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/inventory.sql
@@ -5,7 +5,7 @@ CREATE TABLE IF NOT EXISTS inventory (
inv_quantity_on_hand integer
)
UNIQUE KEY(inv_date_sk, inv_item_sk, inv_warehouse_sk)
-CLUSTER BY(inv_item_sk, inv_date_sk)
+ORDER BY(inv_item_sk, inv_date_sk)
DISTRIBUTED BY HASH(inv_date_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/item.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/item.sql
index 7d16c1713f4..06f4d63e1d7 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/item.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/item.sql
@@ -23,7 +23,7 @@ CREATE TABLE IF NOT EXISTS item (
i_product_name char(50)
)
UNIQUE KEY(i_item_sk)
-CLUSTER BY(i_item_id, i_item_sk, i_brand)
+ORDER BY(i_item_id, i_item_sk, i_brand)
DISTRIBUTED BY HASH(i_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/promotion.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/promotion.sql
index 60dcb29751f..5b6abe8d64e 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/promotion.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/promotion.sql
@@ -20,7 +20,7 @@ CREATE TABLE IF NOT EXISTS promotion (
p_discount_active char(1)
)
UNIQUE KEY(p_promo_sk)
-CLUSTER BY(p_promo_id, p_promo_name)
+ORDER BY(p_promo_id, p_promo_name)
DISTRIBUTED BY HASH(p_promo_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/reason.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/reason.sql
index 5fc99d22b14..7ec2d2c6dda 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/reason.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/reason.sql
@@ -4,7 +4,7 @@ CREATE TABLE IF NOT EXISTS reason (
r_reason_desc char(100)
)
UNIQUE KEY(r_reason_sk)
-CLUSTER BY(r_reason_id, r_reason_sk)
+ORDER BY(r_reason_id, r_reason_sk)
DISTRIBUTED BY HASH(r_reason_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/ship_mode.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/ship_mode.sql
index 2b31cd51b08..54e2d245110 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/ship_mode.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/ship_mode.sql
@@ -7,7 +7,7 @@ CREATE TABLE IF NOT EXISTS ship_mode (
sm_contract char(20)
)
UNIQUE KEY(sm_ship_mode_sk)
-CLUSTER BY(sm_ship_mode_id)
+ORDER BY(sm_ship_mode_id)
DISTRIBUTED BY HASH(sm_ship_mode_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store.sql
index cbc3e7f4929..b35e14bb236 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store.sql
@@ -30,7 +30,7 @@ CREATE TABLE IF NOT EXISTS store (
s_tax_percentage decimal(5,2)
)
UNIQUE KEY(s_store_sk)
-CLUSTER BY(s_company_id, s_store_id)
+ORDER BY(s_company_id, s_store_id)
DISTRIBUTED BY HASH(s_store_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_returns.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_returns.sql
index e92fc695afa..4f188afe5bd 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_returns.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_returns.sql
@@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS store_returns (
sr_net_loss decimal(7,2)
)
UNIQUE KEY(sr_item_sk, sr_ticket_number)
-CLUSTER BY(sr_net_loss)
+ORDER BY(sr_net_loss)
DISTRIBUTED BY HASH(sr_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_sales.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_sales.sql
index 7b575604da5..d02913c2434 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_sales.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/store_sales.sql
@@ -24,7 +24,7 @@ CREATE TABLE IF NOT EXISTS store_sales (
ss_net_profit decimal(7,2)
)
UNIQUE KEY(ss_item_sk, ss_ticket_number)
-CLUSTER BY(ss_net_profit)
+ORDER BY(ss_net_profit)
DISTRIBUTED BY HASH(ss_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/time_dim.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/time_dim.sql
index 07399e60998..41514dc2281 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/time_dim.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/time_dim.sql
@@ -11,7 +11,7 @@ CREATE TABLE IF NOT EXISTS time_dim (
t_meal_time char(20)
)
UNIQUE KEY(t_time_sk)
-CLUSTER BY(t_time_id)
+ORDER BY(t_time_id)
DISTRIBUTED BY HASH(t_time_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/warehouse.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/warehouse.sql
index 41f7d2cbd30..0df02c4bbc5 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/warehouse.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/warehouse.sql
@@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS warehouse (
w_gmt_offset decimal(5,2)
)
UNIQUE KEY(w_warehouse_sk)
-CLUSTER BY(w_warehouse_id)
+ORDER BY(w_warehouse_id)
DISTRIBUTED BY HASH(w_warehouse_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_page.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_page.sql
index 74f64e5739c..302b47e2a7e 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_page.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_page.sql
@@ -15,7 +15,7 @@ CREATE TABLE IF NOT EXISTS web_page (
wp_max_ad_count integer
)
UNIQUE KEY(wp_web_page_sk)
-CLUSTER BY(wp_web_page_id, wp_web_page_sk)
+ORDER BY(wp_web_page_id, wp_web_page_sk)
DISTRIBUTED BY HASH(wp_web_page_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_returns.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_returns.sql
index 7e3a074eccd..a7fb972b0b1 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_returns.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_returns.sql
@@ -25,7 +25,7 @@ CREATE TABLE IF NOT EXISTS web_returns (
wr_net_loss decimal(7,2)
)
UNIQUE KEY(wr_item_sk, wr_order_number)
-CLUSTER BY(wr_net_loss)
+ORDER BY(wr_net_loss)
DISTRIBUTED BY HASH(wr_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_sales.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_sales.sql
index 3a81958ec8c..3b11b8300bd 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_sales.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_sales.sql
@@ -35,7 +35,7 @@ CREATE TABLE IF NOT EXISTS web_sales (
ws_net_profit decimal(7,2)
)
UNIQUE KEY(ws_item_sk, ws_order_number)
-CLUSTER BY(ws_net_profit, ws_quantity)
+ORDER BY(ws_net_profit, ws_quantity)
DISTRIBUTED BY HASH(ws_item_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_site.sql b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_site.sql
index b4b3e3a00c8..6f82fc1619a 100644
--- a/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_site.sql
+++ b/regression-test/suites/tpcds_sf1_unique_ck_p1/ddl/web_site.sql
@@ -27,7 +27,7 @@ CREATE TABLE IF NOT EXISTS web_site (
web_tax_percentage decimal(5,2)
)
UNIQUE KEY(web_site_sk)
-CLUSTER BY(web_company_id, web_site_id)
+ORDER BY(web_company_id, web_site_id)
DISTRIBUTED BY HASH(web_site_sk) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/customer.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/customer.sql
index 9b505880859..e5caf724024 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/customer.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/customer.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS customer (
C_COMMENT VARCHAR(117) NOT NULL
)
UNIQUE KEY(C_CUSTKEY)
-CLUSTER BY(C_PHONE, C_ADDRESS)
+ORDER BY(C_PHONE, C_ADDRESS)
DISTRIBUTED BY HASH(C_CUSTKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/lineitem.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/lineitem.sql
index 642f6fc69ee..0e13f897200 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/lineitem.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/lineitem.sql
@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS lineitem (
L_COMMENT VARCHAR(44) NOT NULL
)
UNIQUE KEY(L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER)
-CLUSTER BY(L_SHIPDATE, L_ORDERKEY)
+ORDER BY(L_SHIPDATE, L_ORDERKEY)
DISTRIBUTED BY HASH(L_ORDERKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/nation.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/nation.sql
index aff592a98c3..6441d04f615 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/nation.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/nation.sql
@@ -5,7 +5,7 @@ CREATE TABLE IF NOT EXISTS nation (
N_COMMENT VARCHAR(152)
)
UNIQUE KEY(N_NATIONKEY)
-CLUSTER BY(N_REGIONKEY, N_NAME)
+ORDER BY(N_REGIONKEY, N_NAME)
DISTRIBUTED BY HASH(N_NATIONKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/orders.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/orders.sql
index 7ad070f9ee2..e2f14c337dd 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/orders.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/orders.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS orders (
O_COMMENT VARCHAR(79) NOT NULL
)
UNIQUE KEY(O_ORDERKEY)
-CLUSTER BY(O_COMMENT, O_CLERK)
+ORDER BY(O_COMMENT, O_CLERK)
DISTRIBUTED BY HASH(O_ORDERKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/part.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/part.sql
index 80774960bb1..5dd54e80c0b 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/part.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/part.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS part (
P_COMMENT VARCHAR(23) NOT NULL
)
UNIQUE KEY(P_PARTKEY)
-CLUSTER BY(P_BRAND, P_SIZE, P_PARTKEY)
+ORDER BY(P_BRAND, P_SIZE, P_PARTKEY)
DISTRIBUTED BY HASH(P_PARTKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/partsupp.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/partsupp.sql
index 609bcfb10b9..c390b680e8a 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/partsupp.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/partsupp.sql
@@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS partsupp (
PS_COMMENT VARCHAR(199) NOT NULL
)
UNIQUE KEY(PS_PARTKEY, PS_SUPPKEY)
-CLUSTER BY(PS_AVAILQTY, PS_PARTKEY, PS_SUPPKEY)
+ORDER BY(PS_AVAILQTY, PS_PARTKEY, PS_SUPPKEY)
DISTRIBUTED BY HASH(PS_PARTKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/region.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/region.sql
index 3d900f420c1..a560e8d37eb 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/region.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/region.sql
@@ -4,7 +4,7 @@ CREATE TABLE IF NOT EXISTS region (
R_COMMENT VARCHAR(152)
)
UNIQUE KEY(R_REGIONKEY)
-CLUSTER BY(R_NAME, R_COMMENT)
+ORDER BY(R_NAME, R_COMMENT)
DISTRIBUTED BY HASH(R_REGIONKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/supplier.sql b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/supplier.sql
index 6dd259f673f..78249e174b9 100644
--- a/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/supplier.sql
+++ b/regression-test/suites/tpch_sf0.1_unique_ck_p1/ddl/supplier.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS supplier (
S_COMMENT VARCHAR(101) NOT NULL
)
UNIQUE KEY(S_SUPPKEY)
-CLUSTER BY(S_NATIONKEY, S_NAME)
+ORDER BY(S_NATIONKEY, S_NAME)
DISTRIBUTED BY HASH(S_SUPPKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_mix_partial_update.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_mix_partial_update.groovy
index 4a6d587d3f7..5aafb0a13ed 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_mix_partial_update.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_mix_partial_update.groovy
@@ -38,7 +38,7 @@ suite('test_mix_partial_update') {
`c3` int,
`seq` int
)UNIQUE KEY(k1)
- CLUSTER BY(c1, c2)
+ ORDER BY(c1, c2)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"disable_auto_compaction" = "true",
@@ -106,7 +106,7 @@ suite('test_mix_partial_update') {
`c3` int,
`seq` int
)UNIQUE KEY(k1)
- CLUSTER BY(c1)
+ ORDER BY(c1)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"disable_auto_compaction" = "true",
@@ -272,7 +272,7 @@ suite('test_mix_partial_update') {
`c5` datetimev2(3) DEFAULT CURRENT_TIMESTAMP,
`c6` datetimev2(3) DEFAULT CURRENT_TIMESTAMP
)UNIQUE KEY(k1)
- CLUSTER BY(c2, c1)
+ ORDER BY(c2, c1)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"disable_auto_compaction" = "true",
@@ -334,7 +334,7 @@ suite('test_mix_partial_update') {
`c5` datetimev2(3) DEFAULT CURRENT_TIMESTAMP,
`c6` datetimev2(3) DEFAULT CURRENT_TIMESTAMP
)UNIQUE KEY(k1)
- CLUSTER BY(c2, k1, c1)
+ ORDER BY(c2, k1, c1)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"disable_auto_compaction" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_new_partial_update_delete.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_new_partial_update_delete.groovy
index 76772ad19b3..9c2497adf90 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_new_partial_update_delete.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_new_partial_update_delete.groovy
@@ -83,7 +83,7 @@ suite('test_new_partial_update_delete') {
`c3` int,
`c4` int
)UNIQUE KEY(k1)
- CLUSTER BY(c4, c2)
+ ORDER BY(c4, c2)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"disable_auto_compaction" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update.groovy
index 9a04f731ac5..740a5453a2b 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update.groovy
@@ -36,7 +36,7 @@ suite("test_primary_key_partial_update", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`score`, `name`)
+ ORDER BY(`score`, `name`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
@@ -243,7 +243,7 @@ suite("test_primary_key_partial_update", "p0") {
`rtime` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
`corp_name` VARCHAR(600) NOT NULL
) ENGINE = OLAP UNIQUE KEY(`name`, `userid`)
- CLUSTER BY(`userid`)
+ ORDER BY(`userid`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`name`) BUCKETS 10
PROPERTIES ("replication_num" = "1",
@@ -276,7 +276,7 @@ suite("test_primary_key_partial_update", "p0") {
`ctime` DATE DEFAULT CURRENT_DATE,
`corp_name` VARCHAR(600) NOT NULL
) ENGINE = OLAP UNIQUE KEY(`name`, `userid`)
- CLUSTER BY(`seq`, `name`)
+ ORDER BY(`seq`, `name`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`name`) BUCKETS 10
PROPERTIES ("replication_num" = "1",
@@ -308,7 +308,7 @@ suite("test_primary_key_partial_update", "p0") {
`ctime` DATE DEFAULT CURRENT_DATE,
`corp_name` VARCHAR(600) NOT NULL
) ENGINE = OLAP UNIQUE KEY(`name`, `userid`)
- CLUSTER BY(`corp_name`, `seq`, `name`)
+ ORDER BY(`corp_name`, `seq`, `name`)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(`name`) BUCKETS 10
PROPERTIES ("replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_2pc_schema_change.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_2pc_schema_change.groovy
index 6b3c4572dab..50893b1f663 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_2pc_schema_change.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_2pc_schema_change.groovy
@@ -56,7 +56,7 @@ suite("test_partial_update_2pc_schema_change", "p0") {
v4 varchar(20),
v5 varchar(20))
UNIQUE KEY(k1)
- CLUSTER BY(v1)
+ ORDER BY(v1)
DISTRIBUTED BY HASH(k1) BUCKETS 4
PROPERTIES(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_after_delete.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_after_delete.groovy
index c00bba7ae34..fcaaef2d899 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_after_delete.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_after_delete.groovy
@@ -36,7 +36,7 @@ suite("test_partial_update_after_delete", "p0") {
`v1` INT NULL,
`v2` INT NULL
)UNIQUE KEY(k1)
- CLUSTER BY(v2, v1)
+ ORDER BY(v2, v1)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
@@ -62,7 +62,7 @@ suite("test_partial_update_after_delete", "p0") {
`v1` INT NULL,
`v2` INT NULL
)UNIQUE KEY(k1)
- CLUSTER BY(v2, v1, k1)
+ ORDER BY(v2, v1, k1)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_auto_inc.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_auto_inc.groovy
index 63a14ec70eb..b2c986cea53 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_auto_inc.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_auto_inc.groovy
@@ -41,7 +41,7 @@ suite("test_partial_update_auto_inc") {
`id` BIGINT NOT NULL AUTO_INCREMENT,
`name` varchar(65533) NOT NULL COMMENT "用户姓名" )
UNIQUE KEY(`id`)
- CLUSTER BY(`name`)
+ ORDER BY(`name`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "${use_mow}"); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_case_insensitivity.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_case_insensitivity.groovy
index 5431ec26666..5fe7cb7723e 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_case_insensitivity.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_case_insensitivity.groovy
@@ -43,7 +43,7 @@ suite("test_partial_update_case_insensitivity", "p0") {
UpAndDown int
) ENGINE=OLAP
UNIQUE KEY(name)
- CLUSTER BY(UpAndDown)
+ ORDER BY(UpAndDown)
COMMENT 'OLAP'
DISTRIBUTED BY HASH(name) BUCKETS 1
PROPERTIES (
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type.groovy
index 910bdeacd68..41226038894 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type.groovy
@@ -40,7 +40,7 @@ suite("test_primary_key_partial_update_complex_type", "p0") {
`c_array` ARRAY<INT> NULL DEFAULT "[]",
`c_struct` STRUCT<a:INT, b:INT> NULL)
UNIQUE KEY(`id`)
- CLUSTER BY(c_varchar)
+ ORDER BY(c_varchar)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type_schema_change.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type_schema_change.groovy
index de74fe6ad13..d2afb5da532 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type_schema_change.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_complex_type_schema_change.groovy
@@ -33,7 +33,7 @@ suite("test_primary_key_partial_update_complex_type_schema_change", "p0") {
`id` int(11) NOT NULL COMMENT "用户 ID",
`c_varchar` varchar(65533) NULL COMMENT "用户姓名")
UNIQUE KEY(`id`)
- CLUSTER BY(c_varchar)
+ ORDER BY(c_varchar)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_default_value.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_default_value.groovy
index 1a66075d2ab..6d0e4b8c93c 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_default_value.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_default_value.groovy
@@ -38,7 +38,7 @@ suite("test_primary_key_partial_update_default_value", "p0") {
`test` int(11) NULL DEFAULT "4321" COMMENT "test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`, `score`)
+ ORDER BY(`name`, `score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete.groovy
index 99fb042bb68..0fdf0696521 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete.groovy
@@ -35,7 +35,7 @@ suite('test_partial_update_delete') {
`c3` int NOT NULL,
`c4` int
)UNIQUE KEY(k1)
- CLUSTER BY(c2, c1, c3)
+ ORDER BY(c2, c1, c3)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
@@ -88,7 +88,7 @@ suite('test_partial_update_delete') {
`c3` int,
`c4` int
)UNIQUE KEY(k1)
- CLUSTER BY(c3, c4)
+ ORDER BY(c3, c4)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign.groovy
index 2805b0b669c..626a592bb27 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign.groovy
@@ -35,7 +35,7 @@ suite('test_partial_update_delete_sign') {
`c3` int,
`c4` int
)UNIQUE KEY(k1)
- CLUSTER BY(c1)
+ ORDER BY(c1)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
@@ -97,7 +97,7 @@ suite('test_partial_update_delete_sign') {
`c3` int,
`c4` int
)UNIQUE KEY(k1)
- CLUSTER BY(c3, c2)
+ ORDER BY(c3, c2)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
@@ -160,7 +160,7 @@ suite('test_partial_update_delete_sign') {
v1 int,
v2 int
) ENGINE=OLAP unique key (k)
- CLUSTER BY(v2, k)
+ ORDER BY(v2, k)
distributed by hash(k) buckets 1
properties("replication_num" = "1",
"enable_unique_key_merge_on_write" = "true",
@@ -205,7 +205,7 @@ suite('test_partial_update_delete_sign') {
v2 int,
c int
) ENGINE=OLAP unique key (k)
- CLUSTER BY(c, v1)
+ ORDER BY(c, v1)
distributed by hash(k) buckets 1
properties("replication_num" = "1",
"enable_unique_key_merge_on_write" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign_with_conflict.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign_with_conflict.groovy
index 9438541227e..06fc0e79894 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign_with_conflict.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_delete_sign_with_conflict.groovy
@@ -49,7 +49,7 @@ suite("test_partial_update_delete_sign_with_conflict") {
`c3` int,
`c4` varchar(100) default 'foo'
)UNIQUE KEY(k1)
- CLUSTER BY(c3)
+ ORDER BY(c3)
DISTRIBUTED BY HASH(k1) BUCKETS 1
PROPERTIES (
"enable_unique_key_merge_on_write" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_light_schema_change.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_light_schema_change.groovy
index 390b9cc0441..8aafbe5540c 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_light_schema_change.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_light_schema_change.groovy
@@ -49,7 +49,7 @@ suite("test_partial_update_insert_light_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c2, c8)
+ ORDER BY(c2, c8)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -110,7 +110,7 @@ suite("test_partial_update_insert_light_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c9, c5, c3)
+ ORDER BY(c9, c5, c3)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -157,7 +157,7 @@ suite("test_partial_update_insert_light_schema_change", "p0") {
`v2` int NULL,
`c` int NULL)
UNIQUE KEY(`k`)
- CLUSTER BY(v2)
+ ORDER BY(v2)
DISTRIBUTED BY HASH(`k`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -190,7 +190,7 @@ suite("test_partial_update_insert_light_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c7, c6)
+ ORDER BY(c7, c6)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -308,7 +308,7 @@ suite("test_partial_update_insert_light_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c3, c8)
+ ORDER BY(c3, c8)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_schema_change.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_schema_change.groovy
index 794df6bdee8..641f329efbc 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_schema_change.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_schema_change.groovy
@@ -41,7 +41,7 @@ suite("test_partial_update_insert_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c7, c8, c5)
+ ORDER BY(c7, c8, c5)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -103,7 +103,7 @@ suite("test_partial_update_insert_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c7, c2, c5)
+ ORDER BY(c7, c2, c5)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -150,7 +150,7 @@ suite("test_partial_update_insert_schema_change", "p0") {
`v2` int NULL,
`c` int NULL)
UNIQUE KEY(`k`)
- CLUSTER BY(v2, k)
+ ORDER BY(v2, k)
DISTRIBUTED BY HASH(`k`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -182,7 +182,7 @@ suite("test_partial_update_insert_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c1, c8, c9)
+ ORDER BY(c1, c8, c9)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -300,7 +300,7 @@ suite("test_partial_update_insert_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(c2, c0)
+ ORDER BY(c2, c0)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_seq_col.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_seq_col.groovy
index 6dc7169ed2b..690c2d90a0c 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_seq_col.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_insert_seq_col.groovy
@@ -39,7 +39,7 @@ suite("test_partial_update_native_insert_seq_col", "p0") {
`dft` int(11) DEFAULT "4321",
`update_time` date NULL)
UNIQUE KEY(`id`)
- CLUSTER BY(test, dft)
+ ORDER BY(test, dft)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -107,7 +107,7 @@ suite("test_partial_update_native_insert_seq_col", "p0") {
`score` int(11) NOT NULL COMMENT "用户得分",
`update_time` DATETIMEV2 NULL DEFAULT CURRENT_TIMESTAMP)
UNIQUE KEY(`id`)
- CLUSTER BY(score)
+ ORDER BY(score)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt.groovy
index 76a65d21728..65340ee066e 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt.groovy
@@ -39,7 +39,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`, `score`)
+ ORDER BY(`name`, `score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true","store_row_column" = "${use_row_store}"); """
@@ -72,7 +72,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
`dft` int(11) DEFAULT "4321",
`update_time` date NULL)
UNIQUE KEY(`id`)
- CLUSTER BY(`test`, `score`)
+ ORDER BY(`test`, `score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -110,7 +110,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`, `dft`)
+ ORDER BY(`name`, `dft`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
@@ -146,7 +146,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`, `score`, `test`)
+ ORDER BY(`name`, `score`, `test`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
@@ -175,7 +175,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
`balance` decimalv3(9, 0) NULL,
`last_access_time` datetime NULL
) ENGINE = OLAP UNIQUE KEY(`id`)
- CLUSTER BY(`balance`)
+ ORDER BY(`balance`)
COMMENT 'OLAP' DISTRIBUTED BY HASH(`id`)
BUCKETS AUTO PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
@@ -211,7 +211,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
v2 int null,
v3 int null
) unique key (k)
- CLUSTER BY(`v2`, `v`)
+ ORDER BY(`v2`, `v`)
distributed by hash(k) buckets 1
properties("replication_num" = "1",
"enable_unique_key_merge_on_write"="true",
@@ -238,7 +238,7 @@ suite("test_partial_update_native_insert_stmt", "p0") {
v1 int null,
v2 int null
) unique key (k1,k2,k3)
- CLUSTER BY(`v2`, `k1`)
+ ORDER BY(`v2`, `k1`)
distributed by hash(k1,k2) buckets 4
properties("replication_num" = "1",
"enable_unique_key_merge_on_write"="true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt_complex.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt_complex.groovy
index c03eff973db..67c43718a5f 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt_complex.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_native_insert_stmt_complex.groovy
@@ -42,7 +42,7 @@ suite("test_partial_update_native_insert_stmt_complex", "p0") {
c2 string,
c3 double,
c4 date) unique key (id)
- CLUSTER BY(c4, c1)
+ ORDER BY(c4, c1)
distributed by hash(id)
properties('replication_num'='1', 'enable_unique_key_merge_on_write' = 'true',"store_row_column" = "${use_row_store}"); """
@@ -52,7 +52,7 @@ suite("test_partial_update_native_insert_stmt_complex", "p0") {
c2 string,
c3 double,
c4 date) unique key (id)
- CLUSTER BY(c4)
+ ORDER BY(c4)
distributed by hash(id)
properties('replication_num'='1', 'enable_unique_key_merge_on_write' = 'true',"store_row_column" = "${use_row_store}"); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_orc.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_orc.groovy
index ca6cd270651..0438309e8ac 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_orc.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_orc.groovy
@@ -29,7 +29,7 @@ suite("test_primary_key_partial_update_orc", "p0") {
`col_3` varchar(65533) NULL COMMENT "col_3",
`col_4` varchar(65533) DEFAULT "4321")
UNIQUE KEY(`col_0`)
- CLUSTER BY(`col_1`, `col_2`)
+ ORDER BY(`col_1`, `col_2`)
DISTRIBUTED BY HASH(`col_0`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true")
"""
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_parallel.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_parallel.groovy
index e76b5d9f710..dad3d9bdb97 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_parallel.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_parallel.groovy
@@ -28,7 +28,7 @@ suite("test_primary_key_partial_update_parallel", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`, `score`)
+ ORDER BY(`name`, `score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true")
"""
@@ -137,7 +137,7 @@ suite("test_primary_key_partial_update_parallel", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`score`, `name`)
+ ORDER BY(`score`, `name`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true", "store_row_column" = "true")
"""
@@ -248,7 +248,7 @@ suite("test_primary_key_partial_update_parallel", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`test`, `score`)
+ ORDER BY(`test`, `score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -366,7 +366,7 @@ suite("test_primary_key_partial_update_parallel", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`score`)
+ ORDER BY(`score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -483,7 +483,7 @@ suite("test_primary_key_partial_update_parallel", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`test`, `score`, `dft`)
+ ORDER BY(`test`, `score`, `dft`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true")
"""
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_publish.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_publish.groovy
index 2afa521d8cb..c1d70669388 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_publish.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_publish.groovy
@@ -27,7 +27,7 @@ suite("test_primary_key_partial_update_publish", "p0") {
`name` varchar(65533) NOT NULL COMMENT "用户姓名",
`score` int(11) NOT NULL COMMENT "用户得分")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`)
+ ORDER BY(`name`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true")
"""
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change.groovy
index 0c6346f5345..74bde07d021 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change.groovy
@@ -41,7 +41,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c2`, `c1`)
+ ORDER BY(`c2`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -166,7 +166,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c3`)
+ ORDER BY(`c3`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -290,7 +290,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c1`, `c3`)
+ ORDER BY(`c4`, `c1`, `c3`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -473,7 +473,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c1`, `c8`, `c6`)
+ ORDER BY(`c1`, `c8`, `c6`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -565,7 +565,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c2`)
+ ORDER BY(`c2`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -651,7 +651,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c6`, `c1`)
+ ORDER BY(`c6`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -773,7 +773,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c2`, `c0`)
+ ORDER BY(`c2`, `c0`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -890,7 +890,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c1`)
+ ORDER BY(`c4`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -1066,7 +1066,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c1`)
+ ORDER BY(`c4`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -1156,7 +1156,7 @@ suite("test_partial_update_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c1`)
+ ORDER BY(`c4`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change_row_store.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change_row_store.groovy
index 41dec2f8441..6ea66fe4182 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change_row_store.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_schema_change_row_store.groovy
@@ -41,7 +41,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c1`)
+ ORDER BY(`c4`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -168,7 +168,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c1`, `c5`)
+ ORDER BY(`c1`, `c5`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -293,7 +293,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c0`)
+ ORDER BY(`c4`, `c0`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -477,7 +477,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c5`, `c4`, `c6`)
+ ORDER BY(`c5`, `c4`, `c6`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -570,7 +570,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c4`, `c9`, `c8`)
+ ORDER BY(`c4`, `c9`, `c8`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -657,7 +657,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c5`, `c0`, `c2`)
+ ORDER BY(`c5`, `c0`, `c2`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -781,7 +781,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c5`, `c9`)
+ ORDER BY(`c5`, `c9`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -900,7 +900,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c8`, `c1`)
+ ORDER BY(`c8`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -1079,7 +1079,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c7`, `c6`, `c0`)
+ ORDER BY(`c7`, `c6`, `c0`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
@@ -1170,7 +1170,7 @@ suite("test_partial_update_row_store_schema_change", "p0") {
`c8` int NULL,
`c9` int NULL)
UNIQUE KEY(`c0`)
- CLUSTER BY(`c2`, `c0`, `c7`, `c1`)
+ ORDER BY(`c2`, `c0`, `c7`, `c1`)
DISTRIBUTED BY HASH(`c0`) BUCKETS 1
PROPERTIES(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_with_update_stmt.groovy b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_with_update_stmt.groovy
index 60fe8167dc9..57f5aa826ea 100644
--- a/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_with_update_stmt.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/partial_update/test_partial_update_with_update_stmt.groovy
@@ -43,7 +43,7 @@ suite("test_primary_key_partial_update_with_update_stmt", "p0") {
`test` int(11) NULL COMMENT "null test",
`dft` int(11) DEFAULT "4321")
UNIQUE KEY(`id`)
- CLUSTER BY(`test`, `name`)
+ ORDER BY(`test`, `name`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
@@ -82,7 +82,7 @@ suite("test_primary_key_partial_update_with_update_stmt", "p0") {
`id` int(11) NOT NULL COMMENT "用户 ID",
`name` varchar(65533) NOT NULL COMMENT "用户姓名")
UNIQUE KEY(`id`)
- CLUSTER BY(`name`)
+ ORDER BY(`name`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
@@ -91,7 +91,7 @@ suite("test_primary_key_partial_update_with_update_stmt", "p0") {
`id` int(11) NOT NULL COMMENT "用户 ID",
`score` int(11) NOT NULL COMMENT "用户得分")
UNIQUE KEY(`id`)
- CLUSTER BY(`score`)
+ ORDER BY(`score`)
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES("replication_num" = "1", "enable_unique_key_merge_on_write" = "true",
"store_row_column" = "${use_row_store}"); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_create.sql
index 53c1b103328..dc6b8c1f89a 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_create.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `customer` (
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
-CLUSTER BY (`c_name`, `c_phone`, `c_city`)
+ORDER BY (`c_name`, `c_phone`, `c_city`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_sequence_create.sql
index 2b560cfdacb..c8bf8d0da93 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/customer_sequence_create.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `customer` (
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
-CLUSTER BY (`c_nation`, `c_phone`, `c_city`, `c_name`)
+ORDER BY (`c_nation`, `c_phone`, `c_city`, `c_name`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"function_column.sequence_type" = 'int',
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_create.sql
index b96d1038c74..328074707a5 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `date` (
`d_weekdayfl` int(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`d_datekey`)
-CLUSTER BY (`d_holidayfl`)
+ORDER BY (`d_holidayfl`)
DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_sequence_create.sql
index 4ff7ba2208a..7ef05c3e7cd 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/date_sequence_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `date` (
`d_weekdayfl` int(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`d_datekey`)
-CLUSTER BY (`d_yearmonth`, `d_holidayfl`)
+ORDER BY (`d_yearmonth`, `d_holidayfl`)
DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
PROPERTIES (
"function_column.sequence_type" = 'int',
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_create.sql
index 37ba740fa06..bc066e64e1e 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `lineorder` (
`lo_shipmode` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`lo_orderdate`,`lo_orderkey`,`lo_linenumber`)
-CLUSTER BY (`lo_orderdate`, `lo_suppkey`, `lo_shipmode`)
+ORDER BY (`lo_orderdate`, `lo_suppkey`, `lo_shipmode`)
PARTITION BY RANGE(`lo_orderdate`)
(PARTITION p1992 VALUES [("-2147483648"), ("19930101")),
PARTITION p1993 VALUES [("19930101"), ("19940101")),
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql
index d639e7f2bba..3ddb66690dd 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `lineorder` (
`lo_shipmode` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`lo_orderdate`,`lo_orderkey`,`lo_linenumber`)
-CLUSTER BY (`lo_quantity`, `lo_suppkey`)
+ORDER BY (`lo_quantity`, `lo_suppkey`)
PARTITION BY RANGE(`lo_orderdate`)
(PARTITION p1992 VALUES [("-2147483648"), ("19930101")),
PARTITION p1993 VALUES [("19930101"), ("19940101")),
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_create.sql
index f8b9438a192..6b83e3b6639 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_create.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `part` (
`p_container` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`p_partkey`)
-CLUSTER BY (`p_color`, `p_name`)
+ORDER BY (`p_color`, `p_name`)
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 10
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_sequence_create.sql
index ab2b62a52da..dd9f489b3d2 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/part_sequence_create.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `part` (
`p_container` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`p_partkey`)
-CLUSTER BY (`p_size`)
+ORDER BY (`p_size`)
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 10
PROPERTIES (
"function_column.sequence_type" = 'int',
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_create.sql
index a40662617f6..50f8a62f322 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_create.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `supplier` (
`s_phone` varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (`s_suppkey`)
-CLUSTER BY (`s_region`, `s_address`)
+ORDER BY (`s_region`, `s_address`)
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 10
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql
index ef1136bbfda..acb5705c473 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `supplier` (
`s_phone` varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (`s_suppkey`)
-CLUSTER BY (`s_region`, `s_city`, `s_name`)
+ORDER BY (`s_region`, `s_city`, `s_name`)
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 10
PROPERTIES (
"function_column.sequence_type" = 'int',
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/customer_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/customer_create.sql
index 1d593fb15ba..cc6c1bf8a95 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/customer_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/customer_create.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `customer` (
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
-CLUSTER BY (`c_region`, `c_city`, `c_name`)
+ORDER BY (`c_region`, `c_city`, `c_name`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/date_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/date_create.sql
index e46caac95dc..b2ab29e89b0 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/date_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/date_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `date` (
`d_weekdayfl` int(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`d_datekey`)
-CLUSTER BY (`d_year`, `d_month`, `d_weeknuminyear`)
+ORDER BY (`d_year`, `d_month`, `d_weeknuminyear`)
DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/lineorder_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/lineorder_create.sql
index d3015f954c9..02d31805960 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/lineorder_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/lineorder_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `lineorder` (
`lo_shipmode` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`lo_orderdate`,`lo_orderkey`,`lo_linenumber`)
-CLUSTER BY (`lo_orderdate`, `lo_orderpriority`)
+ORDER BY (`lo_orderdate`, `lo_orderpriority`)
PARTITION BY RANGE(`lo_orderdate`)
(PARTITION p1992 VALUES [("-2147483648"), ("19930101")),
PARTITION p1993 VALUES [("19930101"), ("19940101")),
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/part_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/part_create.sql
index 5ec4981cf10..6d1a93356e0 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/part_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/part_create.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `part` (
`p_container` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`p_partkey`)
-CLUSTER BY (`p_category`, `p_brand`, `p_size`)
+ORDER BY (`p_category`, `p_brand`, `p_size`)
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 10
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/supplier_create.sql b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/supplier_create.sql
index 266a2119eb6..ae89310929c 100644
--- a/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/supplier_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p0/ssb_unique_sql_zstd/ddl/supplier_create.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `supplier` (
`s_phone` varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (`s_suppkey`)
-CLUSTER BY (`s_region`, `s_city`, `s_name`)
+ORDER BY (`s_region`, `s_city`, `s_name`)
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 10
PROPERTIES (
"compression"="zstd",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_compact_multi_segments.groovy b/regression-test/suites/unique_with_mow_c_p0/test_compact_multi_segments.groovy
index e6fba5bfdfe..b9d3a28bfb6 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_compact_multi_segments.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_compact_multi_segments.groovy
@@ -63,7 +63,7 @@ suite("test_compact_multi_segments", "nonConcurrent") {
`v3` int(11) NULL,
`v4` int(11) NULL
) unique KEY(`k1`, `k2`)
- cluster by(`v3`, `v4`)
+ ORDER BY(`v3`, `v4`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
""" + (j == 1 ? "\"function_column.sequence_col\"='v4', " : "") +
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_compact_seg.groovy b/regression-test/suites/unique_with_mow_c_p0/test_compact_seg.groovy
index 421e2956434..e3e56224018 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_compact_seg.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_compact_seg.groovy
@@ -74,7 +74,7 @@ suite("test_compact_seg", "nonConcurrent") {
`v3` int(11) NULL,
`v4` int(11) NULL
) unique KEY(`k1`, `k2`)
- cluster by(`v3`, `v4`)
+ ORDER BY(`v3`, `v4`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
""" + (j == 1 ? "\"function_column.sequence_col\"='v4', " : "") +
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq.groovy b/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq.groovy
index b9e08b21d7b..90fc2fa705e 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq.groovy
@@ -45,7 +45,7 @@ suite("test_compact_with_seq", "nonConcurrent") {
`v3` int(11) NULL,
`v4` int(11) NULL
) unique KEY(`k1`)
- cluster by(`v3`, `v4`)
+ ORDER BY(`v3`, `v4`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"function_column.sequence_col" = "v4",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq2.groovy b/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq2.groovy
index df50f5f07ea..7fc9d2a48fd 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq2.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_compact_with_seq2.groovy
@@ -94,7 +94,7 @@ suite("test_compact_with_seq2", "nonConcurrent") {
`v3` int(11) NULL,
`v4` int(11) NULL
) unique KEY(`k1`)
- cluster by(`v3`, `v4`)
+ ORDER BY(`v3`, `v4`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"function_column.sequence_col" = "v4",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_compaction_with_multi_append_columns.groovy b/regression-test/suites/unique_with_mow_c_p0/test_compaction_with_multi_append_columns.groovy
index acac719b8c5..3ac0a7e630a 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_compaction_with_multi_append_columns.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_compaction_with_multi_append_columns.groovy
@@ -74,7 +74,7 @@ suite("test_compaction_with_multi_append_columns", "p0") {
`k13` datetime NULL
) ENGINE=OLAP
unique KEY(k1, k2, k3)
- CLUSTER BY (`k13`, `k2`)
+ ORDER BY (`k13`, `k2`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_create_table.groovy b/regression-test/suites/unique_with_mow_c_p0/test_create_table.groovy
index c8cb94904c3..3c9918b647d 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_create_table.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_create_table.groovy
@@ -37,7 +37,7 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_address`)
+ ORDER BY (`c_name`, `c_address`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
@@ -45,7 +45,7 @@ suite("test_create_table") {
);
"""
// test mor table
- exception "Cluster keys only support unique keys table which enabled enable_unique_key_merge_on_write"
+ exception "Order keys only support unique keys table which enabled enable_unique_key_merge_on_write"
}
// mor unique table with cluster keys
@@ -58,14 +58,14 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_address`)
+ ORDER BY (`c_name`, `c_address`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
"enable_unique_key_merge_on_write" = "false"
);
"""
- exception "Cluster keys only support unique keys table which enabled enable_unique_key_merge_on_write"
+ exception "Order keys only support unique keys table which enabled enable_unique_key_merge_on_write"
}
// mow unique table with invalid cluster keys
@@ -78,14 +78,14 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_addresses`)
+ ORDER BY (`c_name`, `c_addresses`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
"enable_unique_key_merge_on_write" = "true"
);
"""
- exception "Cluster key column[c_addresses] doesn't exist"
+ exception "Order key column[c_addresses] doesn't exist"
}
// mow unique table with duplicate cluster keys
@@ -98,14 +98,14 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_address`, `c_name`)
+ ORDER BY (`c_name`, `c_address`, `c_name`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
"enable_unique_key_merge_on_write" = "true"
);
"""
- exception "Duplicate cluster key column[c_name]"
+ exception "Duplicate order key column[c_name]"
}
// mow unique table with same cluster and unique keys
@@ -118,14 +118,53 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_custkey`)
+ ORDER BY (`c_custkey`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
"enable_unique_key_merge_on_write" = "true"
);
"""
- exception "Unique keys and cluster keys should be different"
+ exception "Unique keys and order keys should be different"
+ }
+
+ // mow unique table order keys only asc and nulls first
+ test {
+ sql """
+ CREATE TABLE `$tableName` (
+ `c_custkey` int(11) NOT NULL COMMENT "",
+ `c_name` varchar(26) NOT NULL COMMENT "",
+ `c_address` varchar(41) NOT NULL COMMENT "",
+ `c_city` varchar(11) NOT NULL COMMENT ""
+ )
+ UNIQUE KEY (`c_custkey`)
+ ORDER BY (`c_custkey` desc)
+ DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
+ PROPERTIES (
+ "replication_num" = "1",
+ "enable_unique_key_merge_on_write" = "true"
+ );
+ """
+ exception "Order keys only support ASC in OLAP table"
+ }
+
+ test {
+ sql """
+ CREATE TABLE `$tableName` (
+ `c_custkey` int(11) NOT NULL COMMENT "",
+ `c_name` varchar(26) NOT NULL COMMENT "",
+ `c_address` varchar(41) NOT NULL COMMENT "",
+ `c_city` varchar(11) NOT NULL COMMENT ""
+ )
+ UNIQUE KEY (`c_custkey`)
+ ORDER BY (`c_custkey` asc NULLS LAST)
+ DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
+ PROPERTIES (
+ "replication_num" = "1",
+ "enable_unique_key_merge_on_write" = "true"
+ );
+ """
+ exception "Order keys only support NULLS FIRST in OLAP table"
}
// mow unique table with short key is part of unique keys
@@ -139,7 +178,7 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`, `c_age`, `c_name`)
- CLUSTER BY (`c_custkey`, `c_age`, `c_address`)
+ ORDER BY (`c_custkey`, `c_age`, `c_address`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
@@ -161,7 +200,7 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`, `c_age`, `c_name`, `c_address`)
- CLUSTER BY (`c_custkey`, `c_age`, `c_name`, `c_city`)
+ ORDER BY (`c_custkey`, `c_age`, `c_name`, `c_city`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
@@ -180,7 +219,7 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_city`, `c_address`)
+ ORDER BY (`c_name`, `c_city`, `c_address`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
@@ -202,13 +241,13 @@ suite("test_create_table") {
`c_city` varchar(11) NOT NULL COMMENT ""
)
DUPLICATE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_address`)
+ ORDER BY (`c_name`, `c_address`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
"""
- exception "Cluster keys only support unique keys table"
+ exception "Order keys only support unique keys table"
}
// cluster key contains complex type
@@ -221,7 +260,7 @@ suite("test_create_table") {
`c_city` variant NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_name`, `c_city`, `c_address`)
+ ORDER BY (`c_name`, `c_city`, `c_address`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_delete_sign.groovy b/regression-test/suites/unique_with_mow_c_p0/test_delete_sign.groovy
index 0437bf709d5..d50a9b9560c 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_delete_sign.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_delete_sign.groovy
@@ -35,7 +35,7 @@ suite("test_delete_sign", "p0") {
col3 INT,
col4 variant
) unique key(col1, col2)
- CLUSTER BY (`col3`, `col2`)
+ ORDER BY (`col3`, `col2`)
distributed by hash(col1) buckets 1
properties(
"replication_num" = "1",
@@ -60,7 +60,7 @@ suite("test_delete_sign", "p0") {
col3 INT,
col4 variant
) unique key(col1, col2)
- CLUSTER BY (`col2`, `col3`)
+ ORDER BY (`col2`, `col3`)
distributed by hash(col1) buckets 1
properties(
"replication_num" = "1",
@@ -88,7 +88,7 @@ suite("test_delete_sign", "p0") {
col3 INT,
col4 variant NULL
) unique key(col1, col2)
- CLUSTER BY (`col1`, `col3`)
+ ORDER BY (`col1`, `col3`)
distributed by hash(col1) buckets 1
properties(
"replication_num" = "1",
@@ -114,7 +114,7 @@ suite("test_delete_sign", "p0") {
col4 variant default NULL,
INDEX idx_col3 (`col3`) USING INVERTED,
) unique key(col1, col2)
- CLUSTER BY (`col3`, `col1`, `col2`)
+ ORDER BY (`col3`, `col1`, `col2`)
distributed by hash(col1) buckets 1
properties(
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_delete_sign_delete_bitmap.groovy b/regression-test/suites/unique_with_mow_c_p0/test_delete_sign_delete_bitmap.groovy
index ea7e2c5e7dc..a7c2223d0ae 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_delete_sign_delete_bitmap.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_delete_sign_delete_bitmap.groovy
@@ -26,7 +26,7 @@ suite('test_delete_sign_delete_bitmap') {
// `c3` int,
// `c4` int
// )UNIQUE KEY(k1)
-// CLUSTER BY(c1, c2)
+// ORDER BY(c1, c2)
// DISTRIBUTED BY HASH(k1) BUCKETS 1
// PROPERTIES (
// "enable_unique_key_merge_on_write" = "true",
@@ -68,7 +68,7 @@ suite('test_delete_sign_delete_bitmap') {
// `c3` int,
// `c4` int
// )UNIQUE KEY(k1)
-// CLUSTER BY(c4, c3)
+// ORDER BY(c4, c3)
// DISTRIBUTED BY HASH(k1) BUCKETS 1
// PROPERTIES (
// "enable_unique_key_merge_on_write" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_mow_full_clone_exception.groovy b/regression-test/suites/unique_with_mow_c_p0/test_mow_full_clone_exception.groovy
index 6ab872239cd..6a022ea26d2 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_mow_full_clone_exception.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_mow_full_clone_exception.groovy
@@ -69,7 +69,7 @@ suite('test_full_clone_exception', 'docker') {
v int
)
UNIQUE KEY(k)
- CLUSTER BY(v)
+ ORDER BY(v)
DISTRIBUTED BY HASH(k) BUCKETS 1 properties(
"enable_unique_key_merge_on_write" = "true"
);
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_mow_with_null_sequence.groovy b/regression-test/suites/unique_with_mow_c_p0/test_mow_with_null_sequence.groovy
index 44286fdc27d..4d0c16d9e45 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_mow_with_null_sequence.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_mow_with_null_sequence.groovy
@@ -26,7 +26,7 @@ suite("test_mow_with_null_sequence") {
`c_date` date NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY(`c_name`, `c_date`)
+ ORDER BY(`c_name`, `c_date`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"function_column.sequence_col" = 'c_date',
@@ -59,7 +59,7 @@ suite("test_mow_with_null_sequence") {
`c_int` int NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY(`c_int`, `c_name`)
+ ORDER BY(`c_int`, `c_name`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"function_column.sequence_col" = 'c_int',
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_pk_uk_case.groovy b/regression-test/suites/unique_with_mow_c_p0/test_pk_uk_case.groovy
index 90a992aa352..379f15e2b53 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_pk_uk_case.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_pk_uk_case.groovy
@@ -56,7 +56,7 @@ suite("test_pk_uk_case") {
L_COMMENT VARCHAR(60) NOT NULL
)
UNIQUE KEY(L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER)
- CLUSTER BY(L_PARTKEY, L_RETURNFLAG)
+ ORDER BY(L_PARTKEY, L_RETURNFLAG)
DISTRIBUTED BY HASH(L_ORDERKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_primary_key_simple_case.groovy b/regression-test/suites/unique_with_mow_c_p0/test_primary_key_simple_case.groovy
index 8e5d683cea5..fb964b15100 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_primary_key_simple_case.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_primary_key_simple_case.groovy
@@ -38,7 +38,7 @@ suite("test_primary_key_simple_case") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `city`, `age`, `sex`)
- CLUSTER BY(`user_id`, `age`, `cost`, `sex`)
+ ORDER BY(`user_id`, `age`, `cost`, `sex`)
DISTRIBUTED BY HASH(`user_id`)
PROPERTIES ( "replication_num" = "1",
"enable_unique_key_merge_on_write" = "true"
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_schema_change.groovy b/regression-test/suites/unique_with_mow_c_p0/test_schema_change.groovy
index 37c96e79a6b..222e669fc23 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_schema_change.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_schema_change.groovy
@@ -47,7 +47,7 @@ suite("test_schema_change") {
`max_dwell_time` INT DEFAULT "0" COMMENT "用户最大停留时间",
`min_dwell_time` INT DEFAULT "99999" COMMENT "用户最小停留时间")
UNIQUE KEY(`user_id`, `date`, `city`, `age`, `sex`)
- CLUSTER BY(`cost`, `comment`)
+ ORDER BY(`cost`, `comment`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 1
PROPERTIES ( "replication_num" = "1",
"enable_unique_key_merge_on_write" = "true"
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_schema_change_add_key_column.groovy b/regression-test/suites/unique_with_mow_c_p0/test_schema_change_add_key_column.groovy
index ba1a88e5246..f3d9429c747 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_schema_change_add_key_column.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_schema_change_add_key_column.groovy
@@ -79,7 +79,7 @@ suite("test_schema_change_add_key_column", "nonConcurrent") {
`v3` int(11) NULL,
`v4` int(11) NULL
) unique KEY(`k1`, `k2`)
- cluster by(`v3`, `v4`)
+ ORDER BY(`v3`, `v4`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES (
""" + (i >= 2 ? "\"function_column.sequence_col\"='v4', " : "") +
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_schema_change_and_compaction.groovy b/regression-test/suites/unique_with_mow_c_p0/test_schema_change_and_compaction.groovy
index 9190a6c114c..fa015c368a6 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_schema_change_and_compaction.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_schema_change_and_compaction.groovy
@@ -68,7 +68,7 @@ suite("test_schema_change_and_compaction", "nonConcurrent") {
sql """ DROP TABLE IF EXISTS ${tableName} force """
sql """
CREATE TABLE ${tableName} ( `k1` int(11), `k2` int(11), `v1` int(11), `v2` int(11) ) ENGINE=OLAP
- unique KEY(`k1`, `k2`) cluster by(v1) DISTRIBUTED BY HASH(`k1`) BUCKETS 1
+ unique KEY(`k1`, `k2`) ORDER BY(v1) DISTRIBUTED BY HASH(`k1`) BUCKETS 1
PROPERTIES ( "replication_num" = "1" );
"""
sql """ insert into ${tableName} values(10, 20, 30, 40); """
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_schema_change_ck.groovy b/regression-test/suites/unique_with_mow_c_p0/test_schema_change_ck.groovy
index 4482a6bce32..a0e97b1aa4f 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_schema_change_ck.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_schema_change_ck.groovy
@@ -39,7 +39,7 @@ suite("test_schema_change_ck") {
`c2` int(11) NULL,
`c3` int(11) NULL
) unique KEY(`c1`)
- cluster by(`c3`, `c2`)
+ ORDER BY(`c3`, `c2`)
DISTRIBUTED BY HASH(`c1`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
@@ -56,7 +56,7 @@ suite("test_schema_change_ck") {
`c2` int(11) NULL,
`c3` int(11) NULL
) unique KEY(`c1`)
- cluster by(`c3`, `c2`)
+ ORDER BY(`c3`, `c2`)
PARTITION BY RANGE(`c1`)
(
PARTITION `p_10000` VALUES [("0"), ("10000"))
@@ -200,7 +200,7 @@ suite("test_schema_change_ck") {
`c4` int(11) NULL,
`c5` int(11) NULL
) unique KEY(`k1`, `k2`)
- cluster by(`c4`, `c5`)
+ ORDER BY(`c4`, `c5`)
DISTRIBUTED BY HASH(`k1`) BUCKETS 1
ROLLUP (
r1 (k2, k1, c4, c3)
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_select.groovy b/regression-test/suites/unique_with_mow_c_p0/test_select.groovy
index 8cf169e6272..082ccb44835 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_select.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_select.groovy
@@ -39,7 +39,7 @@ suite("test_select") {
v3 varchar(1000) not null
) engine=olap
UNIQUE KEY(pk)
- cluster by(v2, v3)
+ ORDER BY(v2, v3)
distributed by hash(pk) buckets 10
properties("replication_num" = "1");
"""
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_unique_mow_sequence.groovy b/regression-test/suites/unique_with_mow_c_p0/test_unique_mow_sequence.groovy
index d9e7c53312f..a571420153b 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_unique_mow_sequence.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_unique_mow_sequence.groovy
@@ -30,7 +30,7 @@ suite("test_unique_mow_sequence") {
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
- CLUSTER BY (`c_nation`, `c_mktsegment`, `c_region`)
+ ORDER BY (`c_nation`, `c_mktsegment`, `c_region`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"function_column.sequence_type" = 'int',
diff --git a/regression-test/suites/unique_with_mow_c_p0/test_update.groovy b/regression-test/suites/unique_with_mow_c_p0/test_update.groovy
index b062da54516..dfd84e30042 100644
--- a/regression-test/suites/unique_with_mow_c_p0/test_update.groovy
+++ b/regression-test/suites/unique_with_mow_c_p0/test_update.groovy
@@ -29,7 +29,7 @@ suite("test_update") {
`c` int NOT NULL
) ENGINE=OLAP
UNIQUE KEY(`a`)
- CLUSTER BY (`b`)
+ ORDER BY (`b`)
DISTRIBUTED BY HASH(`a`) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_create.sql
index d1ecb0f40be..49622b7237c 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_create.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `customer` (
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
-CLUSTER BY (`c_region`, `c_phone`, `c_city`)
+ORDER BY (`c_region`, `c_phone`, `c_city`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_sequence_create.sql
index 23cd8eea913..124276f67a4 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/customer_sequence_create.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `customer` (
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
-CLUSTER BY (`c_mktsegment`, `c_city`, `c_region`, `c_nation`)
+ORDER BY (`c_mktsegment`, `c_city`, `c_region`, `c_nation`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_create.sql
index d801ef4bfe2..2b164434f03 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `date` (
`d_weekdayfl` int(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`d_datekey`)
-CLUSTER BY (`d_sellingseason`, `d_holidayfl`)
+ORDER BY (`d_sellingseason`, `d_holidayfl`)
DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_sequence_create.sql
index 5407b9953bf..61540ea5075 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/date_sequence_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `date` (
`d_weekdayfl` int(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`d_datekey`)
-CLUSTER BY (`d_sellingseason`, `d_lastdayinweekfl`)
+ORDER BY (`d_sellingseason`, `d_lastdayinweekfl`)
DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_create.sql
index 9c7da522fcf..aae56c3848d 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `lineorder` (
`lo_shipmode` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`lo_orderdate`,`lo_orderkey`,`lo_linenumber`)
-CLUSTER BY (`lo_orderdate`, `lo_orderkey`, `lo_shipmode`)
+ORDER BY (`lo_orderdate`, `lo_orderkey`, `lo_shipmode`)
PARTITION BY RANGE(`lo_orderdate`)
(PARTITION p1992 VALUES [("-2147483648"), ("19930101")),
PARTITION p1993 VALUES [("19930101"), ("19940101")),
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql
index 68061f835d6..b4a0e4d44a4 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/lineorder_sequence_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `lineorder` (
`lo_shipmode` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`lo_orderdate`,`lo_orderkey`,`lo_linenumber`)
-CLUSTER BY (`lo_supplycost`, `lo_orderdate`, `lo_orderkey`)
+ORDER BY (`lo_supplycost`, `lo_orderdate`, `lo_orderkey`)
PARTITION BY RANGE(`lo_orderdate`)
(PARTITION p1992 VALUES [("-2147483648"), ("19930101")),
PARTITION p1993 VALUES [("19930101"), ("19940101")),
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_create.sql
index 0ea087a17c0..8daeb1cfe50 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_create.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `part` (
`p_container` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`p_partkey`)
-CLUSTER BY (`p_color`, `p_name`, `p_category`)
+ORDER BY (`p_color`, `p_name`, `p_category`)
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_sequence_create.sql
index a02c693f866..4e23199b6d9 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/part_sequence_create.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `part` (
`p_container` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`p_partkey`)
-CLUSTER BY (`p_size`, `p_type`, `p_partkey`)
+ORDER BY (`p_size`, `p_type`, `p_partkey`)
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_create.sql
index 5b3c9f7ffee..253ec85341f 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_create.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `supplier` (
`s_phone` varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (`s_suppkey`)
-CLUSTER BY (`s_address`)
+ORDER BY (`s_address`)
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql
index f99b17b148a..b09de9cd551 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_load_zstd/ddl/supplier_sequence_create.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `supplier` (
`s_phone` varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (`s_suppkey`)
-CLUSTER BY (`s_nation`, `s_region`, `s_city`, `s_name`)
+ORDER BY (`s_nation`, `s_region`, `s_city`, `s_name`)
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/customer_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/customer_create.sql
index 5ade9e170ad..0dc08f0d6e6 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/customer_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/customer_create.sql
@@ -9,7 +9,7 @@ CREATE TABLE IF NOT EXISTS `customer` (
`c_mktsegment` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`c_custkey`)
-CLUSTER BY (`c_region`, `c_address`, `c_city`, `c_name`)
+ORDER BY (`c_region`, `c_address`, `c_city`, `c_name`)
DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/date_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/date_create.sql
index 0ae14f534ca..c6e2ea100c3 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/date_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/date_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `date` (
`d_weekdayfl` int(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`d_datekey`)
-CLUSTER BY (`d_weeknuminyear`, `d_month`)
+ORDER BY (`d_weeknuminyear`, `d_month`)
DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/lineorder_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/lineorder_create.sql
index 4d213e2ff14..46e6a6f44f3 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/lineorder_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/lineorder_create.sql
@@ -18,7 +18,7 @@ CREATE TABLE IF NOT EXISTS `lineorder` (
`lo_shipmode` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`lo_orderdate`,`lo_orderkey`,`lo_linenumber`)
-CLUSTER BY (`lo_revenue`, `lo_orderdate`, `lo_orderpriority`)
+ORDER BY (`lo_revenue`, `lo_orderdate`, `lo_orderpriority`)
PARTITION BY RANGE(`lo_orderdate`)
(PARTITION p1992 VALUES [("-2147483648"), ("19930101")),
PARTITION p1993 VALUES [("19930101"), ("19940101")),
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/part_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/part_create.sql
index 980c57e0a90..e8610a764b5 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/part_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/part_create.sql
@@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `part` (
`p_container` varchar(11) NOT NULL COMMENT ""
)
UNIQUE KEY (`p_partkey`)
-CLUSTER BY (`p_color`, `p_container`)
+ORDER BY (`p_color`, `p_container`)
DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/supplier_create.sql b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/supplier_create.sql
index 78d4e332efb..fddf397a6fa 100644
--- a/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/supplier_create.sql
+++ b/regression-test/suites/unique_with_mow_c_p2/ssb_unique_sql_zstd/ddl/supplier_create.sql
@@ -8,7 +8,7 @@ CREATE TABLE IF NOT EXISTS `supplier` (
`s_phone` varchar(16) NOT NULL COMMENT ""
)
UNIQUE KEY (`s_suppkey`)
-CLUSTER BY (`s_address`, `s_name`)
+ORDER BY (`s_address`, `s_name`)
DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 10
PROPERTIES (
"enable_mow_light_delete" = "true",
diff --git a/regression-test/suites/unique_with_mow_c_p2/test_pk_uk_case.groovy b/regression-test/suites/unique_with_mow_c_p2/test_pk_uk_case.groovy
index c962dc9109e..4c58e0caf4b 100644
--- a/regression-test/suites/unique_with_mow_c_p2/test_pk_uk_case.groovy
+++ b/regression-test/suites/unique_with_mow_c_p2/test_pk_uk_case.groovy
@@ -56,7 +56,7 @@ suite("test_pk_uk_case") {
L_COMMENT VARCHAR(60) NOT NULL
)
UNIQUE KEY(L_ORDERKEY, L_PARTKEY, L_SUPPKEY, L_LINENUMBER)
- CLUSTER BY (L_PARTKEY, L_SUPPKEY, L_SHIPDATE)
+ ORDER BY (L_PARTKEY, L_SUPPKEY, L_SHIPDATE)
DISTRIBUTED BY HASH(L_ORDERKEY) BUCKETS 1
PROPERTIES (
"replication_num" = "1",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org