This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new 11175208dfe [fix](delete) storage engine delete do not support bitmap (#34710) 11175208dfe is described below commit 11175208dfe3161f72c49ef469b67b73ca9fdf47 Author: morrySnow <101034200+morrys...@users.noreply.github.com> 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: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org