This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.1 by this push:
new 45ebc2be1a7 branch-4.1: [fix](fe) Preserve operative slots when deep
copying logical relations #63315 (#63709)
45ebc2be1a7 is described below
commit 45ebc2be1a7cc620a680cefeccb33ef456f923e9
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Fri May 29 16:54:40 2026 +0800
branch-4.1: [fix](fe) Preserve operative slots when deep copying logical
relations #63315 (#63709)
Cherry-picked from #63315
Co-authored-by: foxtail463 <[email protected]>
Co-authored-by: yangtao555 <[email protected]>
---
.../doris/nereids/trees/copier/LogicalPlanDeepCopier.java | 2 +-
.../doris/nereids/trees/copier/LogicalPlanDeepCopierTest.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopier.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopier.java
index 7fe2dd26ae0..0efa3d4e9f1 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopier.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopier.java
@@ -511,7 +511,7 @@ public class LogicalPlanDeepCopier extends
DefaultPlanRewriter<DeepCopierContext
private Plan updateOperativeSlots(LogicalCatalogRelation oldRelation,
LogicalCatalogRelation newRelation) {
List<Slot> oldOperativeSlots = oldRelation.getOperativeSlots();
List<Slot> newOperativeSlots = new
ArrayList<>(oldOperativeSlots.size());
- int outputSize = oldOperativeSlots.size();
+ int outputSize = oldRelation.getOutput().size();
for (Slot opSlot : oldOperativeSlots) {
int idx;
for (idx = 0; idx < outputSize; idx++) {
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopierTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopierTest.java
index 80842f6271b..98f07698a9e 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopierTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/copier/LogicalPlanDeepCopierTest.java
@@ -50,6 +50,17 @@ public class LogicalPlanDeepCopierTest {
}
}
+ @Test
+ public void testDeepCopyOlapScanWithNonFirstOperativeSlot() {
+ LogicalOlapScan relationPlan = PlanConstructor.newLogicalOlapScan(0,
"a", 0);
+ relationPlan = (LogicalOlapScan) relationPlan.withOperativeSlots(
+ ImmutableList.of(relationPlan.getOutput().get(1)));
+ LogicalOlapScan aCopy =
+ (LogicalOlapScan)
relationPlan.accept(LogicalPlanDeepCopier.INSTANCE, new DeepCopierContext());
+
+ Assertions.assertEquals(ImmutableList.of(aCopy.getOutput().get(1)),
aCopy.getOperativeSlots());
+ }
+
@Test
public void testDeepCopyAggregateWithSourceRepeat() {
LogicalOlapScan scan = PlanConstructor.newLogicalOlapScan(0, "t", 0);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]