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

alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 7cd4feff76 [NO ISSUE][OTH] Remove WriteResultOperator and 
WriteResultPOperator
7cd4feff76 is described below

commit 7cd4feff76f64111323dd2462e10868a6b8c8d96
Author: Ali Alsuliman <[email protected]>
AuthorDate: Tue May 2 15:47:27 2023 -0700

    [NO ISSUE][OTH] Remove WriteResultOperator and WriteResultPOperator
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    Remove WriteResultOperator and WriteResultPOperator.
    Those operators are not used. Previous logic that was
    using them has already been removed.
    
    Change-Id: Ib82c855a3bce47d8a8a8fe49aa2fcb1a7b006ed9
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17504
    Reviewed-by: Ali Alsuliman <[email protected]>
    Reviewed-by: Murtadha Hubail <[email protected]>
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
---
 .../rules/SweepIllegalNonfunctionalFunctions.java  |   6 --
 .../rules/cbo/EstimatedCostComputationVisitor.java |   7 --
 .../OperatorValueAccessPushdownVisitor.java        |   7 --
 .../asterix/app/resource/PlanStagesGenerator.java  |   7 --
 .../app/resource/RequiredCapacityVisitor.java      |   7 --
 .../operators/logical/WriteResultOperator.java     | 112 --------------------
 .../visitors/CardinalityInferenceVisitor.java      |   6 --
 .../visitors/FDsAndEquivClassesVisitor.java        |   8 --
 .../visitors/IsomorphismOperatorVisitor.java       |  18 ----
 .../IsomorphismVariableMappingVisitor.java         |   7 --
 .../logical/visitors/LogicalPropertiesVisitor.java |   7 --
 .../logical/visitors/OperatorDeepCopyVisitor.java  |  13 ---
 .../visitors/PrimaryKeyVariablesVisitor.java       |   6 --
 .../logical/visitors/ProducedVariableVisitor.java  |   8 +-
 .../logical/visitors/SchemaVariableVisitor.java    |   9 +-
 .../visitors/SubstituteVariableVisitor.java        |  10 --
 .../logical/visitors/UsedVariableVisitor.java      |  15 ---
 .../operators/physical/WriteResultPOperator.java   | 117 ---------------------
 .../LogicalOperatorPrettyPrintVisitor.java         |   9 --
 .../LogicalOperatorPrettyPrintVisitorJson.java     |  14 ---
 .../algebra/visitors/ILogicalOperatorVisitor.java  |   3 -
 .../algebra/visitors/IQueryOperatorVisitor.java    |   6 --
 ...LogicalExpressionReferenceTransformVisitor.java |   7 --
 .../core/utils/LogicalOperatorDotVisitor.java      |  13 ---
 .../rules/SetAlgebricksPhysicalOperatorsRule.java  |  14 ---
 .../rewriter/rules/SetMemoryRequirementsRule.java  |   6 --
 26 files changed, 2 insertions(+), 440 deletions(-)

diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SweepIllegalNonfunctionalFunctions.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SweepIllegalNonfunctionalFunctions.java
index 2a6604ecfa..fb2dab1f8e 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SweepIllegalNonfunctionalFunctions.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/SweepIllegalNonfunctionalFunctions.java
@@ -68,7 +68,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 
@@ -289,11 +288,6 @@ public class SweepIllegalNonfunctionalFunctions implements 
IAlgebraicRewriteRule
             return null;
         }
 
-        @Override
-        public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-            return null;
-        }
-
         @Override
         public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator 
op, Void tag)
                 throws AlgebricksException {
diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EstimatedCostComputationVisitor.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EstimatedCostComputationVisitor.java
index 822d824f73..4d1e0fb9e5 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EstimatedCostComputationVisitor.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/cbo/EstimatedCostComputationVisitor.java
@@ -61,7 +61,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
 /**
@@ -284,12 +283,6 @@ public class EstimatedCostComputationVisitor implements 
ILogicalOperatorVisitor<
         return annotate(this, op, arg);
     }
 
-    @Override
-    public Pair<Double, Double> visitWriteResultOperator(WriteResultOperator 
op, Double arg)
-            throws AlgebricksException {
-        return annotate(this, op, arg);
-    }
-
     @Override
     public Pair<Double, Double> 
visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, Double arg)
             throws AlgebricksException {
diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/OperatorValueAccessPushdownVisitor.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/OperatorValueAccessPushdownVisitor.java
index 8fe8ce7f3c..3ab07fd783 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/OperatorValueAccessPushdownVisitor.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/pushdown/OperatorValueAccessPushdownVisitor.java
@@ -89,7 +89,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
 /**
@@ -573,12 +572,6 @@ public class OperatorValueAccessPushdownVisitor implements 
ILogicalOperatorVisit
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-        visitInputs(op);
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
Void arg) throws AlgebricksException {
         visitInputs(op);
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/PlanStagesGenerator.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/PlanStagesGenerator.java
index 5d74c13548..4f7eb2ad4a 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/PlanStagesGenerator.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/PlanStagesGenerator.java
@@ -67,7 +67,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 import org.apache.hyracks.util.annotations.NotThreadSafe;
 
@@ -294,12 +293,6 @@ public class PlanStagesGenerator implements 
ILogicalOperatorVisitor<Void, Void>
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-        visit(op);
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
Void arg) throws AlgebricksException {
         visit(op);
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/RequiredCapacityVisitor.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/RequiredCapacityVisitor.java
index af383c36de..39ac9c6772 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/RequiredCapacityVisitor.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/resource/RequiredCapacityVisitor.java
@@ -65,7 +65,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.WindowPOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 import org.apache.hyracks.api.job.resource.IClusterCapacity;
@@ -290,12 +289,6 @@ public class RequiredCapacityVisitor implements 
ILogicalOperatorVisitor<Void, Vo
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-        visitInternal(op, true);
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
Void arg) throws AlgebricksException {
         visitInternal(op, true);
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/WriteResultOperator.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/WriteResultOperator.java
deleted file mode 100644
index aafebf440d..0000000000
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/WriteResultOperator.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.hyracks.algebricks.core.algebra.operators.logical;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import 
org.apache.hyracks.algebricks.core.algebra.expressions.IVariableTypeEnvironment;
-import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
-import 
org.apache.hyracks.algebricks.core.algebra.properties.VariablePropagationPolicy;
-import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
-import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform;
-import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
-
-public class WriteResultOperator extends AbstractLogicalOperator {
-
-    private IDataSource<?> dataSource;
-    private Mutable<ILogicalExpression> payloadExpr;
-    private List<Mutable<ILogicalExpression>> keyExprs;
-    private List<Mutable<ILogicalExpression>> additionalFilteringExpressions;
-
-    public WriteResultOperator(IDataSource<?> dataSource, 
Mutable<ILogicalExpression> payload,
-            List<Mutable<ILogicalExpression>> keyExprs) {
-        this.dataSource = dataSource;
-        this.payloadExpr = payload;
-        this.keyExprs = keyExprs;
-    }
-
-    public IDataSource<?> getDataSource() {
-        return dataSource;
-    }
-
-    public Mutable<ILogicalExpression> getPayloadExpression() {
-        return payloadExpr;
-    }
-
-    public List<Mutable<ILogicalExpression>> getKeyExpressions() {
-        return keyExprs;
-    }
-
-    @Override
-    public LogicalOperatorTag getOperatorTag() {
-        return LogicalOperatorTag.WRITE_RESULT;
-    }
-
-    @Override
-    public <R, T> R accept(ILogicalOperatorVisitor<R, T> visitor, T arg) 
throws AlgebricksException {
-        return visitor.visitWriteResultOperator(this, arg);
-    }
-
-    @Override
-    public boolean 
acceptExpressionTransform(ILogicalExpressionReferenceTransform visitor) throws 
AlgebricksException {
-        boolean b = visitor.transform(payloadExpr);
-        for (int i = 0; i < keyExprs.size(); i++) {
-            if (visitor.transform(keyExprs.get(i))) {
-                b = true;
-            }
-        }
-        return b;
-    }
-
-    @Override
-    public VariablePropagationPolicy getVariablePropagationPolicy() {
-        return VariablePropagationPolicy.ALL;
-    }
-
-    @Override
-    public boolean isMap() {
-        return false;
-    }
-
-    @Override
-    public void recomputeSchema() {
-        schema = new ArrayList<LogicalVariable>();
-        schema.addAll(inputs.get(0).getValue().getSchema());
-    }
-
-    @Override
-    public IVariableTypeEnvironment 
computeOutputTypeEnvironment(ITypingContext ctx) throws AlgebricksException {
-        return createPropagatingAllInputsTypeEnvironment(ctx);
-    }
-
-    public void 
setAdditionalFilteringExpressions(List<Mutable<ILogicalExpression>> 
additionalFilteringExpressions) {
-        this.additionalFilteringExpressions = additionalFilteringExpressions;
-    }
-
-    public List<Mutable<ILogicalExpression>> 
getAdditionalFilteringExpressions() {
-        return additionalFilteringExpressions;
-    }
-
-}
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java
index 14221d63e3..6b25b1f6c3 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/CardinalityInferenceVisitor.java
@@ -65,7 +65,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
 /**
@@ -273,11 +272,6 @@ public class CardinalityInferenceVisitor implements 
ILogicalOperatorVisitor<Long
         return op.getInputs().get(0).getValue().accept(this, arg);
     }
 
-    @Override
-    public Long visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-        return op.getInputs().get(0).getValue().accept(this, arg);
-    }
-
     @Override
     public Long visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
Void arg) throws AlgebricksException {
         return op.getInputs().get(0).getValue().accept(this, arg);
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java
index 5937d9d651..4e3d954984 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/FDsAndEquivClassesVisitor.java
@@ -81,7 +81,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.LocalGroupingProperty;
@@ -545,13 +544,6 @@ public class FDsAndEquivClassesVisitor implements 
ILogicalOperatorVisitor<Void,
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, 
IOptimizationContext ctx) throws AlgebricksException {
-        // propagateFDsAndEquivClasses(op, ctx);
-        setEmptyFDsEqClasses(op, ctx);
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
IOptimizationContext ctx)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java
index dfd6398cbe..592728e567 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismOperatorVisitor.java
@@ -75,7 +75,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningProperty;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.UnorderedPartitionedProperty;
@@ -597,23 +596,6 @@ public class IsomorphismOperatorVisitor implements 
ILogicalOperatorVisitor<Boole
         return isomorphic;
     }
 
-    @Override
-    public Boolean visitWriteResultOperator(WriteResultOperator op, 
ILogicalOperator arg) throws AlgebricksException {
-        AbstractLogicalOperator aop = (AbstractLogicalOperator) arg;
-        if (aop.getOperatorTag() != LogicalOperatorTag.WRITE_RESULT) {
-            return Boolean.FALSE;
-        }
-        WriteResultOperator writeOpArg = (WriteResultOperator) 
copyAndSubstituteVar(op, arg);
-        boolean isomorphic = 
VariableUtilities.varListEqualUnordered(op.getSchema(), writeOpArg.getSchema());
-        if (!op.getDataSource().equals(writeOpArg.getDataSource())) {
-            isomorphic = false;
-        }
-        if 
(!op.getPayloadExpression().equals(writeOpArg.getPayloadExpression())) {
-            isomorphic = false;
-        }
-        return isomorphic;
-    }
-
     @Override
     public Boolean visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator 
op, ILogicalOperator arg)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java
index e4d6586424..1369fb0a07 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/IsomorphismVariableMappingVisitor.java
@@ -72,7 +72,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
 public class IsomorphismVariableMappingVisitor implements 
ILogicalOperatorVisitor<Void, ILogicalOperator> {
@@ -294,12 +293,6 @@ public class IsomorphismVariableMappingVisitor implements 
ILogicalOperatorVisito
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, 
ILogicalOperator arg) throws AlgebricksException {
-        mapVariablesStandard(op, arg);
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
ILogicalOperator arg)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java
index 3a88d2c430..336f7d1fc7 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/LogicalPropertiesVisitor.java
@@ -64,7 +64,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.ILogicalPropertiesVector;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.LogicalPropertiesVectorImpl;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
@@ -277,12 +276,6 @@ public class LogicalPropertiesVisitor implements 
ILogicalOperatorVisitor<Void, I
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, 
IOptimizationContext arg) throws AlgebricksException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
IOptimizationContext arg)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
index 5112812d8c..e29b843b3b 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/OperatorDeepCopyVisitor.java
@@ -72,7 +72,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.util.OperatorManipulationUtil;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
@@ -310,18 +309,6 @@ public class OperatorDeepCopyVisitor implements 
ILogicalOperatorVisitor<ILogical
         return new DistributeResultOperator(newExpressions, op.getDataSink(), 
op.getResultMetadata());
     }
 
-    @Override
-    public ILogicalOperator visitWriteResultOperator(WriteResultOperator op, 
Void arg) throws AlgebricksException {
-        ArrayList<Mutable<ILogicalExpression>> newKeyExpressions = new 
ArrayList<>();
-        deepCopyExpressionRefs(newKeyExpressions, op.getKeyExpressions());
-        List<Mutable<ILogicalExpression>> newLSMComponentFilterExpressions = 
new ArrayList<>();
-        deepCopyExpressionRefs(newKeyExpressions, 
op.getAdditionalFilteringExpressions());
-        WriteResultOperator writeResultOp = new 
WriteResultOperator(op.getDataSource(),
-                deepCopyExpressionRef(op.getPayloadExpression()), 
newKeyExpressions);
-        
writeResultOp.setAdditionalFilteringExpressions(newLSMComponentFilterExpressions);
-        return writeResultOp;
-    }
-
     @Override
     public ILogicalOperator 
visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, Void arg)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java
index 8a3a88594d..79583ff85f 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/PrimaryKeyVariablesVisitor.java
@@ -65,7 +65,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
@@ -263,11 +262,6 @@ public class PrimaryKeyVariablesVisitor implements 
ILogicalOperatorVisitor<Void,
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, 
IOptimizationContext ctx) throws AlgebricksException {
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
IOptimizationContext ctx)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
index ff50994d8e..6305942960 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
@@ -69,12 +69,11 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
 public class ProducedVariableVisitor implements ILogicalOperatorVisitor<Void, 
Void> {
 
-    private Collection<LogicalVariable> producedVariables;
+    private final Collection<LogicalVariable> producedVariables;
 
     public ProducedVariableVisitor(Collection<LogicalVariable> 
producedVariables) throws AlgebricksException {
         this.producedVariables = producedVariables;
@@ -256,11 +255,6 @@ public class ProducedVariableVisitor implements 
ILogicalOperatorVisitor<Void, Vo
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-        return null;
-    }
-
     @Override
     public Void visitReplicateOperator(ReplicateOperator op, Void arg) throws 
AlgebricksException {
         return null;
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java
index e7d6a92cd3..74de6f5473 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SchemaVariableVisitor.java
@@ -67,12 +67,11 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 
 public class SchemaVariableVisitor implements ILogicalOperatorVisitor<Void, 
Void> {
 
-    private Collection<LogicalVariable> schemaVariables;
+    private final Collection<LogicalVariable> schemaVariables;
 
     public SchemaVariableVisitor(Collection<LogicalVariable> schemaVariables) {
         this.schemaVariables = schemaVariables;
@@ -265,12 +264,6 @@ public class SchemaVariableVisitor implements 
ILogicalOperatorVisitor<Void, Void
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-        standardLayout(op);
-        return null;
-    }
-
     private void standardLayout(ILogicalOperator op) throws 
AlgebricksException {
         for (Mutable<ILogicalOperator> c : op.getInputs()) {
             VariableUtilities.getLiveVariables(c.getValue(), schemaVariables);
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java
index cf8196c4e8..8349945d4a 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/SubstituteVariableVisitor.java
@@ -71,7 +71,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.LocalOrderProperty;
 import org.apache.hyracks.algebricks.core.algebra.properties.OrderColumn;
 import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
@@ -388,15 +387,6 @@ public class SubstituteVariableVisitor
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, 
Pair<LogicalVariable, LogicalVariable> pair)
-            throws AlgebricksException {
-        substUsedVariablesInExpr(op.getPayloadExpression(), pair.first, 
pair.second);
-        substUsedVariablesInExpr(op.getKeyExpressions(), pair.first, 
pair.second);
-        substUsedVariablesInExpr(op.getAdditionalFilteringExpressions(), 
pair.first, pair.second);
-        return null;
-    }
-
     @Override
     public Void visitReplicateOperator(ReplicateOperator op, 
Pair<LogicalVariable, LogicalVariable> pair)
             throws AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
index 4c994b5999..d7b6228853 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/UsedVariableVisitor.java
@@ -72,7 +72,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.HashPartitionExchangePOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.HashPartitionMergeExchangePOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.PartialBroadcastRangeFollowingExchangePOperator;
@@ -368,20 +367,6 @@ public class UsedVariableVisitor implements 
ILogicalOperatorVisitor<Void, Void>
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void arg) {
-        op.getPayloadExpression().getValue().getUsedVariables(usedVariables);
-        for (Mutable<ILogicalExpression> e : op.getKeyExpressions()) {
-            e.getValue().getUsedVariables(usedVariables);
-        }
-        if (op.getAdditionalFilteringExpressions() != null) {
-            for (Mutable<ILogicalExpression> e : 
op.getAdditionalFilteringExpressions()) {
-                e.getValue().getUsedVariables(usedVariables);
-            }
-        }
-        return null;
-    }
-
     @Override
     public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, 
Void arg) {
         // 1. The record variable
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WriteResultPOperator.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WriteResultPOperator.java
deleted file mode 100644
index 55ba9f97fc..0000000000
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/WriteResultPOperator.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.hyracks.algebricks.core.algebra.operators.physical;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import 
org.apache.hyracks.algebricks.common.constraints.AlgebricksPartitionConstraint;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-import org.apache.hyracks.algebricks.common.utils.Pair;
-import org.apache.hyracks.algebricks.core.algebra.base.IHyracksJobBuilder;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.IOptimizationContext;
-import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
-import org.apache.hyracks.algebricks.core.algebra.base.PhysicalOperatorTag;
-import org.apache.hyracks.algebricks.core.algebra.metadata.IDataSource;
-import org.apache.hyracks.algebricks.core.algebra.metadata.IMetadataProvider;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.AbstractLogicalOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.IOperatorSchema;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.properties.IPartitioningRequirementsCoordinator;
-import 
org.apache.hyracks.algebricks.core.algebra.properties.IPhysicalPropertiesVector;
-import 
org.apache.hyracks.algebricks.core.algebra.properties.PhysicalRequirements;
-import 
org.apache.hyracks.algebricks.core.algebra.properties.StructuralPropertiesVector;
-import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
-import org.apache.hyracks.api.dataflow.IOperatorDescriptor;
-import org.apache.hyracks.api.job.JobSpecification;
-
-public class WriteResultPOperator extends AbstractPhysicalOperator {
-
-    private LogicalVariable payload;
-    private List<LogicalVariable> keys;
-    private IDataSource<?> dataSource;
-    private final List<LogicalVariable> additionalFilteringKeys;
-
-    public WriteResultPOperator(IDataSource<?> dataSource, LogicalVariable 
payload, List<LogicalVariable> keys,
-            List<LogicalVariable> additionalFilteringKeys) {
-        this.dataSource = dataSource;
-        this.payload = payload;
-        this.keys = keys;
-        this.additionalFilteringKeys = additionalFilteringKeys;
-    }
-
-    @Override
-    public String toString() {
-        return getOperatorTag().toString() + " " + payload + " " + keys;
-    }
-
-    @Override
-    public PhysicalOperatorTag getOperatorTag() {
-        return PhysicalOperatorTag.WRITE_RESULT;
-    }
-
-    @Override
-    public boolean isMicroOperator() {
-        return true;
-    }
-
-    @Override
-    public void computeDeliveredProperties(ILogicalOperator op, 
IOptimizationContext context) {
-        AbstractLogicalOperator op2 = (AbstractLogicalOperator) 
op.getInputs().get(0).getValue();
-        deliveredProperties = (StructuralPropertiesVector) 
op2.getDeliveredPhysicalProperties().clone();
-    }
-
-    @Override
-    public PhysicalRequirements 
getRequiredPropertiesForChildren(ILogicalOperator op,
-            IPhysicalPropertiesVector reqdByParent, IOptimizationContext 
context) throws AlgebricksException {
-        List<LogicalVariable> scanVariables = new ArrayList<LogicalVariable>();
-        scanVariables.addAll(keys);
-        scanVariables.add(new LogicalVariable(-1));
-        IPhysicalPropertiesVector r =
-                
dataSource.getPropertiesProvider().computeRequiredProperties(scanVariables, 
context);
-        IPhysicalPropertiesVector[] requirements = new 
IPhysicalPropertiesVector[1];
-        requirements[0] = r;
-        return new PhysicalRequirements(requirements, 
IPartitioningRequirementsCoordinator.NO_COORDINATION);
-    }
-
-    @SuppressWarnings({ "rawtypes", "unchecked" })
-    @Override
-    public void contributeRuntimeOperator(IHyracksJobBuilder builder, 
JobGenContext context, ILogicalOperator op,
-            IOperatorSchema propagatedSchema, IOperatorSchema[] inputSchemas, 
IOperatorSchema outerPlanSchema)
-            throws AlgebricksException {
-        WriteResultOperator writeResultOp = (WriteResultOperator) op;
-        IMetadataProvider mp = context.getMetadataProvider();
-
-        JobSpecification spec = builder.getJobSpec();
-        Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> 
runtimeAndConstraints = mp.getWriteResultRuntime(
-                dataSource, propagatedSchema, keys, payload, 
additionalFilteringKeys, context, spec);
-        IOperatorDescriptor opDesc = runtimeAndConstraints.first;
-        opDesc.setSourceLocation(writeResultOp.getSourceLocation());
-        builder.contributeHyracksOperator(writeResultOp, opDesc);
-        builder.contributeAlgebricksPartitionConstraint(opDesc, 
runtimeAndConstraints.second);
-        ILogicalOperator src = writeResultOp.getInputs().get(0).getValue();
-        builder.contributeGraphEdge(src, 0, writeResultOp, 0);
-    }
-
-    @Override
-    public boolean expensiveThanMaterialization() {
-        return false;
-    }
-}
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
index 069012b276..d6df7c6fd2 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
@@ -74,7 +74,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 
 public class LogicalOperatorPrettyPrintVisitor extends 
AbstractLogicalOperatorPrettyPrintVisitor<Integer>
         implements IPlanPrettyPrinter {
@@ -270,14 +269,6 @@ public class LogicalOperatorPrettyPrintVisitor extends 
AbstractLogicalOperatorPr
         return null;
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Integer 
indent) throws AlgebricksException {
-        addIndent(indent).append("load 
").append(str(op.getDataSource())).append(" from ")
-                
.append(op.getPayloadExpression().getValue().accept(exprVisitor, 
indent)).append(" partitioned by ");
-        pprintExprList(op.getKeyExpressions(), indent);
-        return null;
-    }
-
     @Override
     public Void visitSelectOperator(SelectOperator op, Integer indent) throws 
AlgebricksException {
         String retainMissing = op.getMissingPlaceholderVariable() != null
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
index 115448ed18..b58ca7538d 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitorJson.java
@@ -81,7 +81,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import org.apache.hyracks.api.exceptions.ErrorCode;
 
 import com.fasterxml.jackson.core.JsonFactory;
@@ -433,19 +432,6 @@ public class LogicalOperatorPrettyPrintVisitorJson extends 
AbstractLogicalOperat
         }
     }
 
-    @Override
-    public Void visitWriteResultOperator(WriteResultOperator op, Void indent) 
throws AlgebricksException {
-        try {
-            jsonGenerator.writeStringField(OPERATOR_FIELD, "load");
-            jsonGenerator.writeStringField("data-source", 
String.valueOf(op.getDataSource()));
-            writeStringFieldExpression("from", op.getPayloadExpression(), 
indent);
-            writeObjectFieldWithExpressions("partitioned-by", 
op.getKeyExpressions(), indent);
-            return null;
-        } catch (IOException e) {
-            throw AlgebricksException.create(ErrorCode.ERROR_PRINTING_PLAN, e, 
String.valueOf(e));
-        }
-    }
-
     @Override
     public Void visitSelectOperator(SelectOperator op, Void indent) throws 
AlgebricksException {
         try {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java
index 4eb6494e94..cc606e9cbb 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/ILogicalOperatorVisitor.java
@@ -55,7 +55,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 
 public interface ILogicalOperatorVisitor<R, T> {
 
@@ -121,8 +120,6 @@ public interface ILogicalOperatorVisitor<R, T> {
 
     public R visitDistributeResultOperator(DistributeResultOperator op, T arg) 
throws AlgebricksException;
 
-    public R visitWriteResultOperator(WriteResultOperator op, T arg) throws 
AlgebricksException;
-
     public R visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, T 
arg) throws AlgebricksException;
 
     public R 
visitIndexInsertDeleteUpsertOperator(IndexInsertDeleteUpsertOperator op, T arg) 
throws AlgebricksException;
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/IQueryOperatorVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/IQueryOperatorVisitor.java
index 73628c1b89..ddfb5a9334 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/IQueryOperatorVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/IQueryOperatorVisitor.java
@@ -23,7 +23,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.IndexInsertD
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.InsertDeleteUpsertOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.SinkOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 
 public interface IQueryOperatorVisitor<R, T> extends 
ILogicalOperatorVisitor<R, T> {
 
@@ -37,11 +36,6 @@ public interface IQueryOperatorVisitor<R, T> extends 
ILogicalOperatorVisitor<R,
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    public default R visitWriteResultOperator(WriteResultOperator op, T arg) {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     public default R 
visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator op, T arg) {
         throw new UnsupportedOperationException();
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/LogicalExpressionReferenceTransformVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/LogicalExpressionReferenceTransformVisitor.java
index f1613a59d6..826991d7eb 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/LogicalExpressionReferenceTransformVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/visitors/LogicalExpressionReferenceTransformVisitor.java
@@ -57,7 +57,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 
 /**
  * This visitor performs expression transformation on each operator by calling
@@ -262,12 +261,6 @@ public abstract class 
LogicalExpressionReferenceTransformVisitor
         return visitOperator(op, arg);
     }
 
-    @Override
-    public Boolean visitWriteResultOperator(WriteResultOperator op, 
ILogicalExpressionReferenceTransform arg)
-            throws AlgebricksException {
-        return visitOperator(op, arg);
-    }
-
     @Override
     public Boolean visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator 
op,
             ILogicalExpressionReferenceTransform arg) throws 
AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
index 75da5ffc14..1cea0a9518 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/utils/LogicalOperatorDotVisitor.java
@@ -71,7 +71,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.DefaultNodeGroupDomain;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.ILocalStructuralProperty;
 import org.apache.hyracks.algebricks.core.algebra.properties.INodeDomain;
@@ -250,18 +249,6 @@ public class LogicalOperatorDotVisitor implements 
ILogicalOperatorVisitor<String
         return stringBuilder.toString();
     }
 
-    @Override
-    public String visitWriteResultOperator(WriteResultOperator op, Boolean 
showDetails) {
-        stringBuilder.setLength(0);
-        stringBuilder.append("load ").append(str(op.getDataSource())).append(" 
from ")
-                
.append(op.getPayloadExpression().getValue().toString()).append(" partitioned 
by ");
-        printExprList(op.getKeyExpressions());
-        appendSchema(op, showDetails);
-        appendAnnotations(op, showDetails);
-        appendPhysicalOperatorInfo(op, showDetails);
-        return stringBuilder.toString();
-    }
-
     @Override
     public String visitSelectOperator(SelectOperator op, Boolean showDetails) {
         stringBuilder.setLength(0);
diff --git 
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
 
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
index a1aa01a42b..2784a6aa97 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetAlgebricksPhysicalOperatorsRule.java
@@ -80,7 +80,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.AbstractWindowPOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.AggregatePOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.AssignPOperator;
@@ -118,7 +117,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.TokenizePOp
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.UnionAllPOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.UnnestPOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.WindowPOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.physical.WriteResultPOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
 import 
org.apache.hyracks.algebricks.core.rewriter.base.PhysicalOptimizationConfig;
@@ -380,18 +378,6 @@ public class SetAlgebricksPhysicalOperatorsRule implements 
IAlgebraicRewriteRule
             return new DistributeResultPOperator();
         }
 
-        @Override
-        public IPhysicalOperator visitWriteResultOperator(WriteResultOperator 
opLoad, Boolean topLevelOp) {
-            List<LogicalVariable> keys = new ArrayList<>();
-            List<LogicalVariable> additionalFilteringKeys = null;
-            LogicalVariable payload = 
getKeysAndLoad(opLoad.getPayloadExpression(), opLoad.getKeyExpressions(), keys);
-            if (opLoad.getAdditionalFilteringExpressions() != null) {
-                additionalFilteringKeys = new ArrayList<>();
-                getKeys(opLoad.getAdditionalFilteringExpressions(), 
additionalFilteringKeys);
-            }
-            return new WriteResultPOperator(opLoad.getDataSource(), payload, 
keys, additionalFilteringKeys);
-        }
-
         @Override
         public IPhysicalOperator 
visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator opLoad,
                 Boolean topLevelOp) {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java
 
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java
index b3748ddf3c..4e859e4430 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/SetMemoryRequirementsRule.java
@@ -66,7 +66,6 @@ import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOpe
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WindowOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteOperator;
-import 
org.apache.hyracks.algebricks.core.algebra.operators.logical.WriteResultOperator;
 import 
org.apache.hyracks.algebricks.core.algebra.properties.LocalMemoryRequirements;
 import 
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
 import org.apache.hyracks.algebricks.core.rewriter.base.IAlgebraicRewriteRule;
@@ -342,11 +341,6 @@ public class SetMemoryRequirementsRule implements 
IAlgebraicRewriteRule {
             return null;
         }
 
-        @Override
-        public Void visitWriteResultOperator(WriteResultOperator op, Void arg) 
throws AlgebricksException {
-            return null;
-        }
-
         @Override
         public Void visitInsertDeleteUpsertOperator(InsertDeleteUpsertOperator 
op, Void arg)
                 throws AlgebricksException {

Reply via email to