[fix](Nereids) update and delete may produce exprs with same exprid (#29656)
This commit is contained in:
@ -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()) {
|
||||
|
||||
@ -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()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user