This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 2e3eb6754de [fix](delete) storage engine delete do not support bitmap
(#34710)
2e3eb6754de is described below
commit 2e3eb6754dea8146e9c47cf8d0a34197291ddf7a
Author: morrySnow <[email protected]>
AuthorDate: Mon May 13 22:01:07 2024 +0800
[fix](delete) storage engine delete do not support bitmap (#34710)
---
.../java/org/apache/doris/analysis/DeleteStmt.java | 3 ++-
.../trees/plans/commands/DeleteFromCommand.java | 3 ++-
.../suites/delete_p0/test_delete.groovy | 29 ++++++++++++++++++++++
3 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
index 465cd6c1600..5db714f1394 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DeleteStmt.java
@@ -342,7 +342,8 @@ public class DeleteStmt extends DdlStmt {
// TODO(Now we can not push down non-scala type like
array/map/struct to storage layer because of
// predict_column in be not support non-scala type, so we just
should ban this type in delete predict, when
// we delete predict_column in be we should delete this ban)
- if (!column.getType().isScalarType()) {
+ if (!column.getType().isScalarType()
+ || (column.getType().isOnlyMetricType() &&
!column.getType().isJsonbType())) {
throw new AnalysisException(String.format("Can not apply
delete condition to column type: %s ",
column.getType()));
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java
index 6d339a21d94..62feee1c43f 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromCommand.java
@@ -224,7 +224,8 @@ public class DeleteFromCommand extends Command implements
ForwardWithSync {
// TODO(Now we can not push down non-scala type like array/map/struct
to storage layer because of
// predict_column in be not support non-scala type, so we just should
ban this type in delete predict, when
// we delete predict_column in be we should delete this ban)
- if (!column.getType().isScalarType()) {
+ if (!column.getType().isScalarType()
+ || (column.getType().isOnlyMetricType() &&
!column.getType().isJsonbType())) {
throw new AnalysisException(String.format("Can not apply delete
condition to column type: "
+ column.getType()));
}
diff --git a/regression-test/suites/delete_p0/test_delete.groovy
b/regression-test/suites/delete_p0/test_delete.groovy
index bdb1cf8e89c..c0a5e0fbfe0 100644
--- a/regression-test/suites/delete_p0/test_delete.groovy
+++ b/regression-test/suites/delete_p0/test_delete.groovy
@@ -483,4 +483,33 @@ suite("test_delete") {
sql "set experimental_enable_nereids_planner = false;"
sql "set @data_batch_num='2024-01-31 00:00:00';"
sql "delete from bi_acti_per_period_plan where data_batch_num
=@data_batch_num; "
+
+ // delete bitmap
+ sql "drop table if exists table_bitmap"
+ sql """
+ CREATE TABLE if not exists `table_bitmap` (
+ `dt` DATE NULL,
+ `page_id` INT NULL,
+ `page_level` INT NULL,
+ `user_id` BITMAP NOT NULL
+ ) ENGINE=OLAP
+ DUPLICATE KEY(`dt`, `page_id`, `page_level`)
+ COMMENT 'OLAP'
+ DISTRIBUTED BY HASH(`dt`) BUCKETS 10
+ PROPERTIES (
+ "replication_allocation" = "tag.location.default: 1"
+ );
+ """
+
+ sql """
+ insert into table_bitmap values
+ ('2021-12-09', 101 , 1 ,
BITMAP_FROM_STRING('100001,100002,100003,100004,100005')),
+ ('2021-12-09', 102 , 2 ,
BITMAP_FROM_STRING('100001,100003,100004')),
+ ('2021-12-09', 103 , 3 , BITMAP_FROM_STRING('100003'));
+ """
+
+ test {
+ sql "delete from table_bitmap where user_id is null"
+ exception "Can not apply delete condition to column type: BITMAP"
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]