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 031818401e5b [Doc] fix the behaviour of AUTO NULL PARTITION (#481)
031818401e5b is described below
commit 031818401e5b43595d582ec3bc5dbaef1c2bfc82
Author: zclllyybb <[email protected]>
AuthorDate: Thu Mar 28 19:41:16 2024 +0800
[Doc] fix the behaviour of AUTO NULL PARTITION (#481)
---
docs/advanced/partition/auto-partition.md | 28 ++++++++++++++--------
.../current/advanced/partition/auto-partition.md | 28 ++++++++++++++--------
.../advanced/partition/auto-partition.md | 28 ++++++++++++++--------
.../Manipulation/INSERT-OVERWRITE.md | 2 +-
.../advanced/partition/auto-partition.md | 28 ++++++++++++++--------
.../Manipulation/INSERT-OVERWRITE.md | 2 +-
6 files changed, 74 insertions(+), 42 deletions(-)
diff --git a/docs/advanced/partition/auto-partition.md
b/docs/advanced/partition/auto-partition.md
index cd4ff7878de1..e9b5e3d1e446 100644
--- a/docs/advanced/partition/auto-partition.md
+++ b/docs/advanced/partition/auto-partition.md
@@ -183,7 +183,9 @@ mysql> select * from auto_null_list partition(pX);
1 row in set (0.20 sec)
```
-2. In Doris, NULL values are included in the minimum value partition, whether
they are AUTO PARTITION tables or not. Therefore, if a partition is
automatically created for a NULL value, you get a partition starting with the
minimum value:
+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.
```sql
mysql> CREATE TABLE `range_table_nullable` (
@@ -202,15 +204,21 @@ mysql> CREATE TABLE `range_table_nullable` (
Query OK, 0 rows affected (0.09 sec)
mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.21 sec)
-
-mysql> show partitions from range_table_nullable;
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| PartitionId | PartitionName | VisibleVersion | VisibleVersionTime | State
| PartitionKey | Range
| DistributionKey | Buckets |
ReplicationNum | StorageMedium | CooldownTime | RemoteStoragePolicy |
LastConsistencyCheckTime | DataSize | IsInMemory | ReplicaAllocation |
IsMutable | SyncWithBaseTables | UnsyncTables |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| 457060 | p00000101000000 | 2 | 2024-03-25 03:01:38 |
NORMAL | k2 | [types: [DATETIMEV2]; keys: [0000-01-01 00:00:00];
..types: [DATETIMEV2]; keys: [0000-01-02 00:00:00]; ) | k1 | 16
| 1 | HDD | 9999-12-31 23:59:59 |
| NULL | 0.000 | false | tag.location.default: 1 |
true | true | NULL |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-1 row in set (0.09 sec)
+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)
```
## Sample Scenarios
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 73fb843f0705..15e9f2a57f5a 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
@@ -183,7 +183,9 @@ mysql> select * from auto_null_list partition(pX);
1 row in set (0.20 sec)
```
-2. Doris 中,无论是否为 AUTO PARTITION 表,NULL 值都被包含在最小值分区内。因此,如果对 NULL
值自动创建分区,会得到一个最小值起始的分区:
+2. 对于 AUTO RANGE PARTITION,NULL 值的存储需要手动创建特定的分区。
+
+在 Doris 的 RANGE PARTITION 中,我们并不使用单独的 NULL PARTITION 来包含 NULL 值,而是将其归属于**最小的
LESS THAN 分区内**。为保持逻辑清晰,AUTO RANGE PARTITION 在遇到 NULL
值时不会自动创建这样的分区。如有需要,可以自行创建这样的分区,以包含 NULL 值。
```sql
mysql> CREATE TABLE `range_table_nullable` (
@@ -202,15 +204,21 @@ mysql> CREATE TABLE `range_table_nullable` (
Query OK, 0 rows affected (0.09 sec)
mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.21 sec)
-
-mysql> show partitions from range_table_nullable;
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| PartitionId | PartitionName | VisibleVersion | VisibleVersionTime | State
| PartitionKey | Range
| DistributionKey | Buckets |
ReplicationNum | StorageMedium | CooldownTime | RemoteStoragePolicy |
LastConsistencyCheckTime | DataSize | IsInMemory | ReplicaAllocation |
IsMutable | SyncWithBaseTables | UnsyncTables |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| 457060 | p00000101000000 | 2 | 2024-03-25 03:01:38 |
NORMAL | k2 | [types: [DATETIMEV2]; keys: [0000-01-01 00:00:00];
..types: [DATETIMEV2]; keys: [0000-01-02 00:00:00]; ) | k1 | 16
| 1 | HDD | 9999-12-31 23:59:59 |
| NULL | 0.000 | false | tag.location.default: 1 |
true | true | NULL |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-1 row in set (0.09 sec)
+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)
```
## 场景示例
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 875e652f23bd..dd2832a2b8c1 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
@@ -185,7 +185,9 @@ mysql> select * from auto_null_list partition(pX);
1 row in set (0.20 sec)
```
-2. Doris 中,无论是否为 AUTO PARTITION 表,NULL 值都被包含在最小值分区内。因此,如果对 NULL
值自动创建分区,会得到一个最小值起始的分区:
+2. 对于 AUTO RANGE PARTITION,NULL 值的存储需要手动创建特定的分区。
+
+在 Doris 的 RANGE PARTITION 中,我们并不使用单独的 NULL PARTITION 来包含 NULL 值,而是将其归属于**最小的
LESS THAN 分区内**。为保持逻辑清晰,AUTO RANGE PARTITION 在遇到 NULL
值时不会自动创建这样的分区。如有需要,可以自行创建这样的分区,以包含 NULL 值。
```sql
mysql> CREATE TABLE `range_table_nullable` (
@@ -204,15 +206,21 @@ mysql> CREATE TABLE `range_table_nullable` (
Query OK, 0 rows affected (0.09 sec)
mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.21 sec)
-
-mysql> show partitions from range_table_nullable;
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| PartitionId | PartitionName | VisibleVersion | VisibleVersionTime | State
| PartitionKey | Range
| DistributionKey | Buckets |
ReplicationNum | StorageMedium | CooldownTime | RemoteStoragePolicy |
LastConsistencyCheckTime | DataSize | IsInMemory | ReplicaAllocation |
IsMutable | SyncWithBaseTables | UnsyncTables |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| 457060 | p00000101000000 | 2 | 2024-03-25 03:01:38 |
NORMAL | k2 | [types: [DATETIMEV2]; keys: [0000-01-01 00:00:00];
..types: [DATETIMEV2]; keys: [0000-01-02 00:00:00]; ) | k1 | 16
| 1 | HDD | 9999-12-31 23:59:59 |
| NULL | 0.000 | false | tag.location.default: 1 |
true | true | NULL |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-1 row in set (0.09 sec)
+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)
```
## 场景示例
diff --git
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
index 87a7442e3a87..52655ba6050a 100644
---
a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
+++
b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
@@ -142,7 +142,7 @@ PROPERTIES (
#### Overwrite Table Partition
-> 该功能自 2.1.2 版本起可用。
+> 该功能自 2.1.1 版本起可用。
使用 INSERT OVERWRITE 重写分区时,实际我们是将如下三步操作封装为一个事务并执行,如果中途失败,已进行的操作将会回滚:
1. 假设指定重写分区 p1,首先创建一个与重写的目标分区结构相同的空临时分区 `pTMP`
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 087cc4190107..839914dd89d8 100644
--- a/versioned_docs/version-2.1/advanced/partition/auto-partition.md
+++ b/versioned_docs/version-2.1/advanced/partition/auto-partition.md
@@ -185,7 +185,9 @@ mysql> select * from auto_null_list partition(pX);
1 row in set (0.20 sec)
```
-2. In Doris, NULL values are included in the minimum value partition, whether
they are AUTO PARTITION tables or not. Therefore, if a partition is
automatically created for a NULL value, you get a partition starting with the
minimum value:
+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.
```sql
mysql> CREATE TABLE `range_table_nullable` (
@@ -204,15 +206,21 @@ mysql> CREATE TABLE `range_table_nullable` (
Query OK, 0 rows affected (0.09 sec)
mysql> insert into range_table_nullable values (0, null, null);
-Query OK, 1 row affected (0.21 sec)
-
-mysql> show partitions from range_table_nullable;
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| PartitionId | PartitionName | VisibleVersion | VisibleVersionTime | State
| PartitionKey | Range
| DistributionKey | Buckets |
ReplicationNum | StorageMedium | CooldownTime | RemoteStoragePolicy |
LastConsistencyCheckTime | DataSize | IsInMemory | ReplicaAllocation |
IsMutable | SyncWithBaseTables | UnsyncTables |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-| 457060 | p00000101000000 | 2 | 2024-03-25 03:01:38 |
NORMAL | k2 | [types: [DATETIMEV2]; keys: [0000-01-01 00:00:00];
..types: [DATETIMEV2]; keys: [0000-01-02 00:00:00]; ) | k1 | 16
| 1 | HDD | 9999-12-31 23:59:59 |
| NULL | 0.000 | false | tag.location.default: 1 |
true | true | NULL |
-+-------------+-----------------+----------------+---------------------+--------+--------------+----------------------------------------------------------------------------------------------------------+-----------------+---------+----------------+---------------+---------------------+---------------------+--------------------------+----------+------------+-------------------------+-----------+--------------------+--------------+
-1 row in set (0.09 sec)
+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)
```
## Sample Scenarios
diff --git
a/versioned_docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
b/versioned_docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
index 57bddc226ad7..d97752ff1484 100644
---
a/versioned_docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
+++
b/versioned_docs/version-2.1/sql-manual/sql-reference/Data-Manipulation-Statements/Manipulation/INSERT-OVERWRITE.md
@@ -188,7 +188,7 @@ The following is examples:
#### Overwrite Auto Detect Partition
-> This feature is available since version 2.1.2.
+> This feature is available since version 2.1.1.
When the PARTITION clause specified by the INSERT OVERWRITE command is
`PARTITION(*)`, this overwrite will automatically detect the partition where
the data is located. Example:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]