From 15c625dcbcc4e7b9caf397a91df315b249e0c9b9 Mon Sep 17 00:00:00 2001 From: morrySnow <101034200+morrySnow@users.noreply.github.com> Date: Mon, 29 Jan 2024 18:51:49 +0800 Subject: [PATCH] [fix](Nereids) should not generate same exprId for diff column when sink (#30501) --- .../apache/doris/nereids/rules/analysis/BindSink.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java index 7dbb6b3e1e..c0e8162f08 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindSink.java @@ -213,7 +213,14 @@ public class BindSink implements AnalysisRuleFactory { + " target table " + table.getName()); } if (columnToOutput.get(seqCol.get().getName()) != null) { - columnToOutput.put(column.getName(), columnToOutput.get(seqCol.get().getName())); + // should generate diff exprId for seq column + NamedExpression seqColumn = columnToOutput.get(seqCol.get().getName()); + if (seqColumn instanceof Alias) { + seqColumn = new Alias(((Alias) seqColumn).child(), column.getName()); + } else { + seqColumn = new Alias(seqColumn, column.getName()); + } + columnToOutput.put(column.getName(), seqColumn); } } else if (isPartialUpdate) { // If the current load is a partial update, the values of unmentioned