This is an automated email from the ASF dual-hosted git repository. gavinchou 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 c9fb76b5579 [fix](delete) fix insert into cols should be corresponding to the query output for delete from command (#47406) c9fb76b5579 is described below commit c9fb76b55790c75cb630c8087e06a29f42ab2052 Author: meiyi <me...@selectdb.com> AuthorDate: Sun Jan 26 14:58:42 2025 +0800 [fix](delete) fix insert into cols should be corresponding to the query output for delete from command (#47406) for mow table with `function_column.sequence_col` map, if use `delete from` command and run into partial update, may get: ``` errCode = 2, detailMessage = insert into cols should be corresponding to the query output ``` --- .../trees/plans/commands/DeleteFromCommand.java | 3 +- .../delete/delete_mow_partial_update.out | Bin 887 -> 1148 bytes .../delete/delete_mow_partial_update.groovy | 45 +++++++++++++++++++++ 3 files changed, 47 insertions(+), 1 deletion(-) 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 55215323e70..be6254dabb1 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 @@ -475,7 +475,8 @@ public class DeleteFromCommand extends Command implements ForwardWithSync, Expla expr = new UnboundAlias(new TinyIntLiteral(((byte) 1)), Column.DELETE_SIGN); } else if (column.getName().equalsIgnoreCase(Column.SEQUENCE_COL) && targetTable.getSequenceMapCol() != null) { - expr = new UnboundSlot(tableName, targetTable.getSequenceMapCol()); + expr = new UnboundAlias(new UnboundSlot(tableName, targetTable.getSequenceMapCol()), + Column.SEQUENCE_COL); } else if (column.isKey()) { expr = new UnboundSlot(tableName, column.getName()); } else if (!isMow && (!column.isVisible() || (!column.isAllowNull() && !column.hasDefaultValue()))) { diff --git a/regression-test/data/nereids_p0/delete/delete_mow_partial_update.out b/regression-test/data/nereids_p0/delete/delete_mow_partial_update.out index 54b9aa4cee9..1a090023156 100644 Binary files a/regression-test/data/nereids_p0/delete/delete_mow_partial_update.out and b/regression-test/data/nereids_p0/delete/delete_mow_partial_update.out differ diff --git a/regression-test/suites/nereids_p0/delete/delete_mow_partial_update.groovy b/regression-test/suites/nereids_p0/delete/delete_mow_partial_update.groovy index a03a9a92fa7..680b26a4e4a 100644 --- a/regression-test/suites/nereids_p0/delete/delete_mow_partial_update.groovy +++ b/regression-test/suites/nereids_p0/delete/delete_mow_partial_update.groovy @@ -146,4 +146,49 @@ suite('nereids_delete_mow_partial_update') { sql "drop table if exists ${tableName3};" } } + + def tableName = "nereids_delete_mow_partial_update10" + sql "DROP TABLE IF EXISTS ${tableName};" + sql """ + CREATE TABLE ${tableName} ( + `l_shipdate` date NOT NULL, + `l_orderkey` bigint NOT NULL, + `l_linenumber` bigint NOT NULL, + `l_partkey` bigint NOT NULL, + `l_suppkey` bigint NOT NULL, + `l_quantity` decimal(15,2) NOT NULL, + `l_extendedprice` decimal(15,2) NOT NULL, + `l_discount` decimal(15,2) NOT NULL, + `l_tax` decimal(15,2) NOT NULL, + `l_returnflag` varchar(1) NOT NULL, + `l_linestatus` varchar(1) NOT NULL, + `l_commitdate` date NOT NULL, + `l_receiptdate` date NOT NULL, + `l_shipinstruct` varchar(25) NOT NULL, + `l_shipmode` varchar(10) NOT NULL, + `l_comment` varchar(44) NOT NULL + ) + UNIQUE KEY(`l_shipdate`, `l_orderkey`, `l_linenumber`, `l_partkey`, `l_suppkey`) + DISTRIBUTED BY HASH(`l_orderkey`) BUCKETS 1 + PROPERTIES ( + "replication_allocation" = "tag.location.default: 1", + "enable_unique_key_merge_on_write" = "true", + "function_column.sequence_col" = "l_Shipdate" + ); + """ + sql """ + insert into ${tableName} values + ('2023-12-09', 1, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-12-09', '2023-12-10', 'a', 'b', 'yyyyyyyyy'), + ('2023-12-09', 2, 2, 3, 4, 5.5, 6.5, 7.5, 8.5, 'o', 'k', '2023-12-09', '2023-12-10', 'a', 'b', 'yyyyyyyyy') ; + """ + explain { + sql """ delete from ${tableName} where l_orderkey = 800; """ + contains "IS_PARTIAL_UPDATE: true" + } + sql """ delete from ${tableName} where l_orderkey = 800; """ + sql "sync" + order_qt_sql """ SELECT * FROM ${tableName}; """ + sql """ delete from ${tableName} where l_orderkey = 2; """ + sql "sync" + order_qt_sql """ SELECT * FROM ${tableName}; """ } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org