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

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


The following commit(s) were added to refs/heads/master by this push:
     new f907490c2589 [Doc](partition) Refine some auto partition behaviours  
(#488)
f907490c2589 is described below

commit f907490c25898b3bed98a89a24a0650b51d42d17
Author: zclllyybb <[email protected]>
AuthorDate: Fri Mar 29 22:41:14 2024 +0800

    [Doc](partition) Refine some auto partition behaviours  (#488)
---
 docs/advanced/partition/auto-partition.md          | 37 ++++++--------------
 .../current/advanced/partition/auto-partition.md   | 37 ++++++--------------
 .../advanced/partition/auto-partition.md           | 39 ++++++----------------
 .../advanced/partition/auto-partition.md           | 39 ++++++----------------
 4 files changed, 40 insertions(+), 112 deletions(-)

diff --git a/docs/advanced/partition/auto-partition.md 
b/docs/advanced/partition/auto-partition.md
index e9b5e3d1e446..6805ace754fa 100644
--- a/docs/advanced/partition/auto-partition.md
+++ b/docs/advanced/partition/auto-partition.md
@@ -88,7 +88,7 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
 1. AUTO RANGE PARTITION:
 
   ```sql
-  AUTO PARTITION BY RANGE FUNC_CALL_EXPR
+  AUTO PARTITION BY RANGE (FUNC_CALL_EXPR)
   (
   )
   ```
@@ -97,6 +97,8 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
   FUNC_CALL_EXPR ::= date_trunc ( <partition_column>, '<interval>' )
   ```
 
+Note: In version 2.1.0, `FUNC_CALL_EXPR` does not need to be surrounded by 
parentheses.
+
 2. AUTO LIST PARTITION:
 
   ```sql
@@ -114,7 +116,7 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
       `TIME_STAMP` datev2 NOT NULL COMMENT 'Date of collection'
   ) ENGINE=OLAP
   DUPLICATE KEY(`TIME_STAMP`)
-  AUTO PARTITION BY RANGE date_trunc(`TIME_STAMP`, 'month')
+  AUTO PARTITION BY RANGE (date_trunc(`TIME_STAMP`, 'month'))
   (
   )
   DISTRIBUTED BY HASH(`TIME_STAMP`) BUCKETS 10
@@ -183,9 +185,7 @@ mysql> select * from auto_null_list partition(pX);
 1 row in set (0.20 sec)
 ```
 
-2. For AUTO RANGE PARTITION, the storage of NULL values requires the manual 
creation of specific partitions.
-
-In Doris' RANGE PARTITION, we do not use a separate NULL PARTITION to contain 
NULL values, but rather group them in the **minium LESS THAN partition**. For 
logical clarity, the AUTO RANGE PARTITION does not automatically create such a 
partition when it encounters a NULL value. If necessary, you can create such a 
partition yourself to contain NULL values.
+2. For AUTO RANGE PARTITION, **NULLABLE columns are not supported as partition 
columns**.
 
 ```sql
 mysql>  CREATE TABLE `range_table_nullable` (
@@ -194,31 +194,14 @@ mysql>  CREATE TABLE `range_table_nullable` (
     ->      `k3` DATETIMEV2(6)
     ->  ) ENGINE=OLAP
     ->  DUPLICATE KEY(`k1`)
-    ->  AUTO PARTITION BY RANGE date_trunc(`k2`, 'day')
+    ->  AUTO PARTITION BY RANGE (date_trunc(`k2`, 'day'))
     ->  (
     ->  )
     ->  DISTRIBUTED BY HASH(`k1`) BUCKETS 16
     ->  PROPERTIES (
     ->  "replication_allocation" = "tag.location.default: 1"
     ->  );
-Query OK, 0 rows affected (0.09 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-ERROR 1105 (HY000): errCode = 2, detailMessage = [CANCELLED]TStatus: errCode = 
2, detailMessage = Can't create partition for NULL Range
-
-mysql> alter table range_table_nullable add partition pX VALUES LESS THAN 
("1970-01-01");
-Query OK, 0 rows affected (0.11 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.18 sec)
-
-mysql> select * from range_table_nullable;
-+------+------+------+
-| k1   | k2   | k3   |
-+------+------+------+
-|    0 | NULL | NULL |
-+------+------+------+
-1 row in set (0.18 sec)
+ERROR 1105 (HY000): errCode = 2, detailMessage = AUTO RANGE PARTITION doesn't 
support NULL column
 ```
 
 ## Sample Scenarios
@@ -233,7 +216,7 @@ CREATE TABLE `DAILY_TRADE_VALUE`
     ......
 )
 UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`)
-AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year')
+AUTO PARTITION BY RANGE (date_trunc(`TRADE_DATE`, 'year'))
 (
 )
 DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10
@@ -276,7 +259,7 @@ CREATE TABLE tbl3
     k1 DATETIME NOT NULL,
     col1 int 
 )
-AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year') ())
 DISTRIBUTED BY HASH(k1)
 PROPERTIES
 (
@@ -308,7 +291,7 @@ mysql > CREATE TABLE tbl3
             k1 DATETIME NOT NULL,
             col1 int 
         )
-        AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+        AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year') ())
         DISTRIBUTED BY HASH(k1)
         PROPERTIES
         (
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/advanced/partition/auto-partition.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/advanced/partition/auto-partition.md
index 15e9f2a57f5a..f0d2d212390f 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/current/advanced/partition/auto-partition.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/current/advanced/partition/auto-partition.md
@@ -88,7 +88,7 @@ PROPERTIES (
 1. AUTO RANGE PARTITION:
 
   ```sql
-  AUTO PARTITION BY RANGE FUNC_CALL_EXPR
+  AUTO PARTITION BY RANGE (FUNC_CALL_EXPR)
   (
   )
   ```
@@ -97,6 +97,8 @@ PROPERTIES (
   FUNC_CALL_EXPR ::= date_trunc ( <partition_column>, '<interval>' )
   ```
 
+注意:在 2.1.0 版本,`FUNC_CALL_EXPR` 外围不需要被括号包围。
+
 2. AUTO LIST PARTITION:
 
   ```sql
@@ -114,7 +116,7 @@ PROPERTIES (
       `TIME_STAMP` datev2 NOT NULL COMMENT '采集日期'
   ) ENGINE=OLAP
   DUPLICATE KEY(`TIME_STAMP`)
-  AUTO PARTITION BY RANGE date_trunc(`TIME_STAMP`, 'month')
+  AUTO PARTITION BY RANGE (date_trunc(`TIME_STAMP`, 'month'))
   (
   )
   DISTRIBUTED BY HASH(`TIME_STAMP`) BUCKETS 10
@@ -183,9 +185,7 @@ mysql> select * from auto_null_list partition(pX);
 1 row in set (0.20 sec)
 ```
 
-2. 对于 AUTO RANGE PARTITION,NULL 值的存储需要手动创建特定的分区。
-
-在 Doris 的 RANGE PARTITION 中,我们并不使用单独的 NULL PARTITION 来包含 NULL 值,而是将其归属于**最小的 
LESS THAN 分区内**。为保持逻辑清晰,AUTO RANGE PARTITION 在遇到 NULL 
值时不会自动创建这样的分区。如有需要,可以自行创建这样的分区,以包含 NULL 值。
+2. 对于 AUTO RANGE PARTITION,**不支持 NULLABLE 列作为分区列**。
 
 ```sql
 mysql>  CREATE TABLE `range_table_nullable` (
@@ -194,31 +194,14 @@ mysql>  CREATE TABLE `range_table_nullable` (
     ->      `k3` DATETIMEV2(6)
     ->  ) ENGINE=OLAP
     ->  DUPLICATE KEY(`k1`)
-    ->  AUTO PARTITION BY RANGE date_trunc(`k2`, 'day')
+    ->  AUTO PARTITION BY RANGE (date_trunc(`k2`, 'day'))
     ->  (
     ->  )
     ->  DISTRIBUTED BY HASH(`k1`) BUCKETS 16
     ->  PROPERTIES (
     ->  "replication_allocation" = "tag.location.default: 1"
     ->  );
-Query OK, 0 rows affected (0.09 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-ERROR 1105 (HY000): errCode = 2, detailMessage = [CANCELLED]TStatus: errCode = 
2, detailMessage = Can't create partition for NULL Range
-
-mysql> alter table range_table_nullable add partition pX VALUES LESS THAN 
("1970-01-01");
-Query OK, 0 rows affected (0.11 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.18 sec)
-
-mysql> select * from range_table_nullable;
-+------+------+------+
-| k1   | k2   | k3   |
-+------+------+------+
-|    0 | NULL | NULL |
-+------+------+------+
-1 row in set (0.18 sec)
+ERROR 1105 (HY000): errCode = 2, detailMessage = AUTO RANGE PARTITION doesn't 
support NULL column
 ```
 
 ## 场景示例
@@ -233,7 +216,7 @@ CREATE TABLE `DAILY_TRADE_VALUE`
     ......
 )
 UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`)
-AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year')
+AUTO PARTITION BY RANGE (date_trunc(`TRADE_DATE`, 'year'))
 (
 )
 DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10
@@ -276,7 +259,7 @@ CREATE TABLE tbl3
     k1 DATETIME NOT NULL,
     col1 int 
 )
-AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year')) ()
 DISTRIBUTED BY HASH(k1)
 PROPERTIES
 (
@@ -308,7 +291,7 @@ mysql > CREATE TABLE tbl3
             k1 DATETIME NOT NULL,
             col1 int 
         )
-        AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+        AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year')) ()
         DISTRIBUTED BY HASH(k1)
         PROPERTIES
         (
diff --git 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/advanced/partition/auto-partition.md
 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/advanced/partition/auto-partition.md
index dd2832a2b8c1..f0d2d212390f 100644
--- 
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/advanced/partition/auto-partition.md
+++ 
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/advanced/partition/auto-partition.md
@@ -88,7 +88,7 @@ PROPERTIES (
 1. AUTO RANGE PARTITION:
 
   ```sql
-  AUTO PARTITION BY RANGE FUNC_CALL_EXPR
+  AUTO PARTITION BY RANGE (FUNC_CALL_EXPR)
   (
   )
   ```
@@ -97,6 +97,8 @@ PROPERTIES (
   FUNC_CALL_EXPR ::= date_trunc ( <partition_column>, '<interval>' )
   ```
 
+注意:在 2.1.0 版本,`FUNC_CALL_EXPR` 外围不需要被括号包围。
+
 2. AUTO LIST PARTITION:
 
   ```sql
@@ -114,7 +116,7 @@ PROPERTIES (
       `TIME_STAMP` datev2 NOT NULL COMMENT '采集日期'
   ) ENGINE=OLAP
   DUPLICATE KEY(`TIME_STAMP`)
-  AUTO PARTITION BY RANGE date_trunc(`TIME_STAMP`, 'month')
+  AUTO PARTITION BY RANGE (date_trunc(`TIME_STAMP`, 'month'))
   (
   )
   DISTRIBUTED BY HASH(`TIME_STAMP`) BUCKETS 10
@@ -148,8 +150,6 @@ PROPERTIES (
 
 ### NULL 值分区
 
-> 从 2.1.2 开始,Doris 支持以下功能。
-
 当开启 session variable `allow_partition_column_nullable` 后,LIST 和 RANGE 分区都支持 
NULL 列作为分区列。当分区列实际遇到 NULL 值的插入时:
 
 1. 对于 AUTO LIST PARTITION,会自动创建对应的 NULL 值分区:
@@ -185,9 +185,7 @@ mysql> select * from auto_null_list partition(pX);
 1 row in set (0.20 sec)
 ```
 
-2. 对于 AUTO RANGE PARTITION,NULL 值的存储需要手动创建特定的分区。
-
-在 Doris 的 RANGE PARTITION 中,我们并不使用单独的 NULL PARTITION 来包含 NULL 值,而是将其归属于**最小的 
LESS THAN 分区内**。为保持逻辑清晰,AUTO RANGE PARTITION 在遇到 NULL 
值时不会自动创建这样的分区。如有需要,可以自行创建这样的分区,以包含 NULL 值。
+2. 对于 AUTO RANGE PARTITION,**不支持 NULLABLE 列作为分区列**。
 
 ```sql
 mysql>  CREATE TABLE `range_table_nullable` (
@@ -196,31 +194,14 @@ mysql>  CREATE TABLE `range_table_nullable` (
     ->      `k3` DATETIMEV2(6)
     ->  ) ENGINE=OLAP
     ->  DUPLICATE KEY(`k1`)
-    ->  AUTO PARTITION BY RANGE date_trunc(`k2`, 'day')
+    ->  AUTO PARTITION BY RANGE (date_trunc(`k2`, 'day'))
     ->  (
     ->  )
     ->  DISTRIBUTED BY HASH(`k1`) BUCKETS 16
     ->  PROPERTIES (
     ->  "replication_allocation" = "tag.location.default: 1"
     ->  );
-Query OK, 0 rows affected (0.09 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-ERROR 1105 (HY000): errCode = 2, detailMessage = [CANCELLED]TStatus: errCode = 
2, detailMessage = Can't create partition for NULL Range
-
-mysql> alter table range_table_nullable add partition pX VALUES LESS THAN 
("1970-01-01");
-Query OK, 0 rows affected (0.11 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.18 sec)
-
-mysql> select * from range_table_nullable;
-+------+------+------+
-| k1   | k2   | k3   |
-+------+------+------+
-|    0 | NULL | NULL |
-+------+------+------+
-1 row in set (0.18 sec)
+ERROR 1105 (HY000): errCode = 2, detailMessage = AUTO RANGE PARTITION doesn't 
support NULL column
 ```
 
 ## 场景示例
@@ -235,7 +216,7 @@ CREATE TABLE `DAILY_TRADE_VALUE`
     ......
 )
 UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`)
-AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year')
+AUTO PARTITION BY RANGE (date_trunc(`TRADE_DATE`, 'year'))
 (
 )
 DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10
@@ -278,7 +259,7 @@ CREATE TABLE tbl3
     k1 DATETIME NOT NULL,
     col1 int 
 )
-AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year')) ()
 DISTRIBUTED BY HASH(k1)
 PROPERTIES
 (
@@ -310,7 +291,7 @@ mysql > CREATE TABLE tbl3
             k1 DATETIME NOT NULL,
             col1 int 
         )
-        AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+        AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year')) ()
         DISTRIBUTED BY HASH(k1)
         PROPERTIES
         (
diff --git a/versioned_docs/version-2.1/advanced/partition/auto-partition.md 
b/versioned_docs/version-2.1/advanced/partition/auto-partition.md
index 839914dd89d8..6805ace754fa 100644
--- a/versioned_docs/version-2.1/advanced/partition/auto-partition.md
+++ b/versioned_docs/version-2.1/advanced/partition/auto-partition.md
@@ -88,7 +88,7 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
 1. AUTO RANGE PARTITION:
 
   ```sql
-  AUTO PARTITION BY RANGE FUNC_CALL_EXPR
+  AUTO PARTITION BY RANGE (FUNC_CALL_EXPR)
   (
   )
   ```
@@ -97,6 +97,8 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
   FUNC_CALL_EXPR ::= date_trunc ( <partition_column>, '<interval>' )
   ```
 
+Note: In version 2.1.0, `FUNC_CALL_EXPR` does not need to be surrounded by 
parentheses.
+
 2. AUTO LIST PARTITION:
 
   ```sql
@@ -114,7 +116,7 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
       `TIME_STAMP` datev2 NOT NULL COMMENT 'Date of collection'
   ) ENGINE=OLAP
   DUPLICATE KEY(`TIME_STAMP`)
-  AUTO PARTITION BY RANGE date_trunc(`TIME_STAMP`, 'month')
+  AUTO PARTITION BY RANGE (date_trunc(`TIME_STAMP`, 'month'))
   (
   )
   DISTRIBUTED BY HASH(`TIME_STAMP`) BUCKETS 10
@@ -148,8 +150,6 @@ When building a table, use the following syntax to populate 
[CREATE-TABLE](../..
 
 ### NULL-valued partition
 
-> Starting from 2.1.2, Doris supports the following features.
-
 Both LIST and RANGE partitions support NULL columns as partition columns when 
the session variable `allow_partition_column_nullable` is turned on. When a 
partition column actually encounters an insert with a NULL value:
 
 1. For an AUTO LIST PARTITION, the corresponding NULL-valued partition is 
automatically created:
@@ -185,9 +185,7 @@ mysql> select * from auto_null_list partition(pX);
 1 row in set (0.20 sec)
 ```
 
-2. For AUTO RANGE PARTITION, the storage of NULL values requires the manual 
creation of specific partitions.
-
-In Doris' RANGE PARTITION, we do not use a separate NULL PARTITION to contain 
NULL values, but rather group them in the **minium LESS THAN partition**. For 
logical clarity, the AUTO RANGE PARTITION does not automatically create such a 
partition when it encounters a NULL value. If necessary, you can create such a 
partition yourself to contain NULL values.
+2. For AUTO RANGE PARTITION, **NULLABLE columns are not supported as partition 
columns**.
 
 ```sql
 mysql>  CREATE TABLE `range_table_nullable` (
@@ -196,31 +194,14 @@ mysql>  CREATE TABLE `range_table_nullable` (
     ->      `k3` DATETIMEV2(6)
     ->  ) ENGINE=OLAP
     ->  DUPLICATE KEY(`k1`)
-    ->  AUTO PARTITION BY RANGE date_trunc(`k2`, 'day')
+    ->  AUTO PARTITION BY RANGE (date_trunc(`k2`, 'day'))
     ->  (
     ->  )
     ->  DISTRIBUTED BY HASH(`k1`) BUCKETS 16
     ->  PROPERTIES (
     ->  "replication_allocation" = "tag.location.default: 1"
     ->  );
-Query OK, 0 rows affected (0.09 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-ERROR 1105 (HY000): errCode = 2, detailMessage = [CANCELLED]TStatus: errCode = 
2, detailMessage = Can't create partition for NULL Range
-
-mysql> alter table range_table_nullable add partition pX VALUES LESS THAN 
("1970-01-01");
-Query OK, 0 rows affected (0.11 sec)
-
-mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.18 sec)
-
-mysql> select * from range_table_nullable;
-+------+------+------+
-| k1   | k2   | k3   |
-+------+------+------+
-|    0 | NULL | NULL |
-+------+------+------+
-1 row in set (0.18 sec)
+ERROR 1105 (HY000): errCode = 2, detailMessage = AUTO RANGE PARTITION doesn't 
support NULL column
 ```
 
 ## Sample Scenarios
@@ -235,7 +216,7 @@ CREATE TABLE `DAILY_TRADE_VALUE`
     ......
 )
 UNIQUE KEY(`TRADE_DATE`, `TRADE_ID`)
-AUTO PARTITION BY RANGE date_trunc(`TRADE_DATE`, 'year')
+AUTO PARTITION BY RANGE (date_trunc(`TRADE_DATE`, 'year'))
 (
 )
 DISTRIBUTED BY HASH(`TRADE_DATE`) BUCKETS 10
@@ -278,7 +259,7 @@ CREATE TABLE tbl3
     k1 DATETIME NOT NULL,
     col1 int 
 )
-AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year') ())
 DISTRIBUTED BY HASH(k1)
 PROPERTIES
 (
@@ -310,7 +291,7 @@ mysql > CREATE TABLE tbl3
             k1 DATETIME NOT NULL,
             col1 int 
         )
-        AUTO PARTITION BY RANGE date_trunc(`k1`, 'year') ()
+        AUTO PARTITION BY RANGE (date_trunc(`k1`, 'year') ())
         DISTRIBUTED BY HASH(k1)
         PROPERTIES
         (


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to