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

morrysnow 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 996b4cb9ac5 [fix](Nereids) update and delete may produce exprs with 
same exprid (#29656)
996b4cb9ac5 is described below

commit 996b4cb9ac5904847e33273ae55374121508f533
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Mon Jan 8 15:22:37 2024 +0800

    [fix](Nereids) update and delete may produce exprs with same exprid (#29656)
---
 .../trees/plans/commands/DeleteFromUsingCommand.java |  4 ++--
 .../nereids/trees/plans/commands/UpdateCommand.java  |  6 +++---
 .../trees/plans/DeleteFromUsingCommandTest.java      | 20 +++++++++-----------
 3 files changed, 14 insertions(+), 16 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromUsingCommand.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromUsingCommand.java
index b8ac38939a8..6fe57d6361d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromUsingCommand.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/DeleteFromUsingCommand.java
@@ -19,10 +19,10 @@ package org.apache.doris.nereids.trees.plans.commands;
 
 import org.apache.doris.catalog.Column;
 import org.apache.doris.catalog.OlapTable;
+import org.apache.doris.nereids.analyzer.UnboundAlias;
 import org.apache.doris.nereids.analyzer.UnboundSlot;
 import org.apache.doris.nereids.analyzer.UnboundTableSink;
 import org.apache.doris.nereids.exceptions.AnalysisException;
-import org.apache.doris.nereids.trees.expressions.Alias;
 import org.apache.doris.nereids.trees.expressions.NamedExpression;
 import org.apache.doris.nereids.trees.expressions.literal.TinyIntLiteral;
 import org.apache.doris.nereids.trees.plans.Explainable;
@@ -91,7 +91,7 @@ public class DeleteFromUsingCommand extends Command 
implements ForwardWithSync,
         String tableName = tableAlias != null ? tableAlias : 
targetTable.getName();
         for (Column column : targetTable.getFullSchema()) {
             if (column.getName().equalsIgnoreCase(Column.DELETE_SIGN)) {
-                selectLists.add(new Alias(new TinyIntLiteral(((byte) 1)), 
Column.DELETE_SIGN));
+                selectLists.add(new UnboundAlias(new TinyIntLiteral(((byte) 
1)), Column.DELETE_SIGN));
             } else if (column.getName().equalsIgnoreCase(Column.SEQUENCE_COL)) 
{
                 selectLists.add(new UnboundSlot(tableName, 
targetTable.getSequenceMapCol()));
             } else if (column.isKey()) {
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateCommand.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateCommand.java
index 0410143d0cf..6949b124e5d 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateCommand.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/UpdateCommand.java
@@ -22,11 +22,11 @@ import org.apache.doris.catalog.KeysType;
 import org.apache.doris.catalog.OlapTable;
 import org.apache.doris.catalog.Table;
 import org.apache.doris.catalog.TableIf;
+import org.apache.doris.nereids.analyzer.UnboundAlias;
 import org.apache.doris.nereids.analyzer.UnboundSlot;
 import org.apache.doris.nereids.analyzer.UnboundTableSink;
 import org.apache.doris.nereids.exceptions.AnalysisException;
 import org.apache.doris.nereids.parser.NereidsParser;
-import org.apache.doris.nereids.trees.expressions.Alias;
 import org.apache.doris.nereids.trees.expressions.EqualTo;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.NamedExpression;
@@ -117,13 +117,13 @@ public class UpdateCommand extends Command implements 
ForwardWithSync, Explainab
                 Expression expr = colNameToExpression.get(column.getName());
                 selectItems.add(expr instanceof UnboundSlot
                         ? ((NamedExpression) expr)
-                        : new Alias(expr));
+                        : new UnboundAlias(expr));
             } else {
                 if (column.hasOnUpdateDefaultValue()) {
                     Expression defualtValueExpression =
                             new 
NereidsParser().parseExpression(column.getOnUpdateDefaultValueExpr()
                                     .toSqlWithoutTbl());
-                    selectItems.add(new Alias(defualtValueExpression, 
column.getName()));
+                    selectItems.add(new UnboundAlias(defualtValueExpression, 
column.getName()));
                 } else {
                     selectItems.add(new UnboundSlot(tableName, 
column.getName()));
                 }
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/DeleteFromUsingCommandTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/DeleteFromUsingCommandTest.java
index 913d357f7b8..1faeb529aee 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/DeleteFromUsingCommandTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/plans/DeleteFromUsingCommandTest.java
@@ -83,17 +83,15 @@ public class DeleteFromUsingCommandTest extends 
TestWithFeService implements Pla
                         logicalOlapTableSink(
                                 logicalProject(
                                         logicalJoin(
-                                                logicalProject(
-                                                        logicalJoin(
-                                                                logicalProject(
-                                                                        
logicalFilter(
-                                                                               
 logicalOlapScan()
-                                                                        )
-                                                                ),
-                                                                logicalProject(
-                                                                        
logicalFilter(
-                                                                               
 logicalOlapScan()
-                                                                        )
+                                                logicalJoin(
+                                                        logicalProject(
+                                                                logicalFilter(
+                                                                        
logicalOlapScan()
+                                                                )
+                                                        ),
+                                                        logicalProject(
+                                                                logicalFilter(
+                                                                        
logicalOlapScan()
                                                                 )
                                                         )
                                                 ),


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to