abdullah alamoudi has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/620
Change subject: Support Change Feeds
......................................................................
Support Change Feeds
This change allows feeds to perform upserts and deletes
in order to perform replication of an external data source.
The change does so by performing the following:
1. The adapter produces [PK][Record]. (Record == null --> delete)
2. The insert is replaced by an upsert operator.
Change-Id: I3749349e2b9f1b03c8b310eb99d3f44d08be77df
---
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DataSourceScanOperator.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/InsertDeleteUpsertOperator.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestMapOperator.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/DataSourceScanPOperator.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/ALogicalPlanImpl.java
M
algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
M
algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java
M
algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
M
hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java
M
hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTree.java
M
hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java
M
hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
M
hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/ophelpers/IndexOperation.java
M
hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
M
hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeOpContext.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMHarness.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/LSMOperationType.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMComponent.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractMemoryLSMComponent.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
M
hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMTreeIndexAccessor.java
M
hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
M
hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
M
hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java
M
hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTreeOpContext.java
29 files changed, 218 insertions(+), 88 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/hyracks refs/changes/20/620/1
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
index 823ebae..a2e07f1 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/metadata/IMetadataProvider.java
@@ -43,12 +43,13 @@
* Obs: A scanner may choose to contribute a null
* AlgebricksPartitionConstraint and implement
* contributeSchedulingConstraints instead.
+ * @param list
*/
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>
getScannerRuntime(IDataSource<S> dataSource,
List<LogicalVariable> scanVariables, List<LogicalVariable>
projectVariables, boolean projectPushed,
List<LogicalVariable> minFilterVars, List<LogicalVariable>
maxFilterVars, IOperatorSchema opSchema,
- IVariableTypeEnvironment typeEnv, JobGenContext context,
JobSpecification jobSpec, Object implConfig)
- throws AlgebricksException;
+ IVariableTypeEnvironment typeEnv, JobGenContext context,
JobSpecification jobSpec, Object implConfig,
+ List<LogicalVariable> list) throws AlgebricksException;
public boolean scannerOperatorIsLeaf(IDataSource<S> dataSource);
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DataSourceScanOperator.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DataSourceScanOperator.java
index 7d3306e..8c6f4b7 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DataSourceScanOperator.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/DataSourceScanOperator.java
@@ -43,6 +43,9 @@
private List<LogicalVariable> minFilterVars;
private List<LogicalVariable> maxFilterVars;
+ private List<LogicalVariable> keys;
+ private List<? extends Object> keyTypes;
+
public DataSourceScanOperator(List<LogicalVariable> variables,
IDataSource<?> dataSource) {
super(variables, dataSource);
projectVars = new ArrayList<LogicalVariable>();
@@ -94,6 +97,11 @@
for (LogicalVariable v : outputVariables) {
target.addVariable(v);
}
+ if (keys != null) {
+ for (LogicalVariable v : keys) {
+ target.addVariable(v);
+ }
+ }
}
};
}
@@ -106,6 +114,13 @@
for (LogicalVariable v : variables) {
env.setVarType(v, types[i]);
++i;
+ }
+ if (keys != null) {
+ i = 0;
+ for (LogicalVariable v : keys) {
+ env.setVarType(v, keyTypes.get(i));
+ ++i;
+ }
}
return env;
}
@@ -133,4 +148,17 @@
public List<Mutable<ILogicalExpression>>
getAdditionalFilteringExpressions() {
return additionalFilteringExpressions;
}
+
+ public List<LogicalVariable> getKeyVars() {
+ return keys;
+ }
+
+ public void setKeyVars(List<LogicalVariable> keys, List<? extends Object>
keyTypes) {
+ this.keys = keys;
+ this.keyTypes = keyTypes;
+ }
+
+ public List<? extends Object> getKeyVarTypes() {
+ return keyTypes;
+ }
}
\ No newline at end of file
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/InsertDeleteUpsertOperator.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/InsertDeleteUpsertOperator.java
index 607db69..bfe315a 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/InsertDeleteUpsertOperator.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/InsertDeleteUpsertOperator.java
@@ -49,8 +49,10 @@
private final Kind operation;
private final boolean bulkload;
private List<Mutable<ILogicalExpression>> additionalFilteringExpressions;
+ // previous record (for UPSERT)
private LogicalVariable prevRecordVar;
private Object prevRecordType;
+ // previous filter (for UPSERT)
private LogicalVariable prevFilterVar;
private Object prevFilterType;
@@ -108,6 +110,7 @@
@Override
public boolean isMap() {
+ // why is this false when this operator is a non-blocking operator?!!
return false;
}
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestMapOperator.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestMapOperator.java
index 815c36c..afff572 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestMapOperator.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestMapOperator.java
@@ -131,11 +131,4 @@
public List<Mutable<ILogicalExpression>>
getAdditionalFilteringExpressions() {
return additionalFilteringExpressions;
}
-
- /*
- @Override
- public boolean isMap() {
- return !propagateInput;
- }
- */
}
\ No newline at end of file
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
index 1ee0942..86d29fd 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/UnnestOperator.java
@@ -18,25 +18,31 @@
*/
package org.apache.hyracks.algebricks.core.algebra.operators.logical;
-import org.apache.commons.lang3.mutable.Mutable;
+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.properties.VariablePropagationPolicy;
import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
import
org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingPositionWriter;
public class UnnestOperator extends AbstractUnnestNonMapOperator {
+ private List<LogicalVariable> additionalVariables;
+ private List<? extends Object> additionalVarTypes;
+
public UnnestOperator(LogicalVariable variable,
Mutable<ILogicalExpression> expression) {
super(variable, expression);
}
public UnnestOperator(LogicalVariable variable,
Mutable<ILogicalExpression> expression,
- LogicalVariable positionalVariable, Object positionalVariableType,
IUnnestingPositionWriter positionWriter) {
+ LogicalVariable positionalVariable, Object positionalVariableType,
+ IUnnestingPositionWriter positionWriter) {
super(variable, expression, positionalVariable,
positionalVariableType, positionWriter);
}
@@ -53,6 +59,11 @@
if (positionalVariable != null) {
env.setVarType(positionalVariable, positionalVariableType);
}
+ if (additionalVariables != null) {
+ for (int i = 0; i < additionalVariables.size(); i++) {
+ env.setVarType(additionalVariables.get(i),
additionalVarTypes.get(i));
+ }
+ }
return env;
}
@@ -60,4 +71,45 @@
public LogicalOperatorTag getOperatorTag() {
return LogicalOperatorTag.UNNEST;
}
+
+ @Override
+ public VariablePropagationPolicy getVariablePropagationPolicy() {
+ return new VariablePropagationPolicy() {
+
+ @Override
+ public void propagateVariables(IOperatorSchema target,
IOperatorSchema... sources)
+ throws AlgebricksException {
+ if (sources.length > 0) {
+ target.addAllVariables(sources[0]);
+ }
+ for (LogicalVariable v : variables) {
+ target.addVariable(v);
+ }
+ if (positionalVariable != null) {
+ target.addVariable(positionalVariable);
+ }
+ if (additionalVariables != null) {
+ for (LogicalVariable v : additionalVariables) {
+ target.addVariable(v);
+ }
+ }
+ }
+ };
+ }
+
+ public void setAdditionalVariables(List<LogicalVariable> variables) {
+ this.additionalVariables = variables;
+ }
+
+ public void setAdditionalVariableTypes(List<? extends Object> types) {
+ this.additionalVarTypes = types;
+ }
+
+ public List<LogicalVariable> getAdditionalVariables() {
+ return additionalVariables;
+ }
+
+ public List<? extends Object> getAdditionalVariableTypes() {
+ return additionalVarTypes;
+ }
}
\ No newline at end of file
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
index 8df772b..9ac8c51 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/visitors/ProducedVariableVisitor.java
@@ -89,6 +89,9 @@
@Override
public Void visitDataScanOperator(DataSourceScanOperator op, Void arg)
throws AlgebricksException {
producedVariables.addAll(op.getVariables());
+ if (op.getKeyVars() != null) {
+ producedVariables.addAll(op.getKeyVars());
+ }
return null;
}
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/DataSourceScanPOperator.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/DataSourceScanPOperator.java
index a087305..2e3dcfa 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/DataSourceScanPOperator.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/physical/DataSourceScanPOperator.java
@@ -77,16 +77,16 @@
@Override
public void contributeRuntimeOperator(IHyracksJobBuilder builder,
JobGenContext context, ILogicalOperator op,
IOperatorSchema opSchema, IOperatorSchema[] inputSchemas,
IOperatorSchema outerPlanSchema)
- throws AlgebricksException {
+ throws AlgebricksException {
DataSourceScanOperator scan = (DataSourceScanOperator) op;
IMetadataProvider mp = context.getMetadataProvider();
IVariableTypeEnvironment typeEnv = context.getTypeEnvironment(op);
List<LogicalVariable> vars = scan.getVariables();
List<LogicalVariable> projectVars = scan.getProjectVariables();
- Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> p =
mp.getScannerRuntime(dataSource, vars,
- projectVars, scan.isProjectPushed(), scan.getMinFilterVars(),
scan.getMaxFilterVars(), opSchema,
- typeEnv, context, builder.getJobSpec(), implConfig);
+ Pair<IOperatorDescriptor, AlgebricksPartitionConstraint> p =
mp.getScannerRuntime(dataSource, vars, projectVars,
+ scan.isProjectPushed(), scan.getMinFilterVars(),
scan.getMaxFilterVars(), opSchema, typeEnv, context,
+ builder.getJobSpec(), implConfig, scan.getKeyVars());
builder.contributeHyracksOperator(scan, p.first);
if (p.second != null) {
builder.contributeAlgebricksPartitionConstraint(p.first, p.second);
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/ALogicalPlanImpl.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/ALogicalPlanImpl.java
index 75f6290..3461e38 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/ALogicalPlanImpl.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/plan/ALogicalPlanImpl.java
@@ -16,41 +16,62 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.hyracks.algebricks.core.algebra.plan;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.mutable.Mutable;
-
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
-import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
-
-/*
- * Author: Guangqiang Li
- * Created on Jul 9, 2009
- */
-public class ALogicalPlanImpl implements ILogicalPlan {
- private List<Mutable<ILogicalOperator>> roots;
-
- public ALogicalPlanImpl() {
- this.roots = new ArrayList<Mutable<ILogicalOperator>>();
- }
-
- public ALogicalPlanImpl(List<Mutable<ILogicalOperator>> roots) {
- this.roots = roots;
- }
-
- public ALogicalPlanImpl(Mutable<ILogicalOperator> root) {
- roots = new ArrayList<Mutable<ILogicalOperator>>(1);
- roots.add(root);
- }
-
- public List<Mutable<ILogicalOperator>> getRoots() {
- return roots;
- }
-
- public void setRoots(List<Mutable<ILogicalOperator>> roots) {
- this.roots = roots;
- }
-}
+package org.apache.hyracks.algebricks.core.algebra.plan;
+
+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.ILogicalOperator;
+import org.apache.hyracks.algebricks.core.algebra.base.ILogicalPlan;
+import
org.apache.hyracks.algebricks.core.algebra.prettyprint.LogicalOperatorPrettyPrintVisitor;
+import
org.apache.hyracks.algebricks.core.algebra.prettyprint.PlanPrettyPrinter;
+
+/*
+ * Author: Guangqiang Li
+ * Created on Jul 9, 2009
+ */
+public class ALogicalPlanImpl implements ILogicalPlan {
+ private List<Mutable<ILogicalOperator>> roots;
+
+ public ALogicalPlanImpl() {
+ this.roots = new ArrayList<Mutable<ILogicalOperator>>();
+ }
+
+ public ALogicalPlanImpl(List<Mutable<ILogicalOperator>> roots) {
+ this.roots = roots;
+ }
+
+ public ALogicalPlanImpl(Mutable<ILogicalOperator> root) {
+ roots = new ArrayList<Mutable<ILogicalOperator>>(1);
+ roots.add(root);
+ }
+
+ @Override
+ public List<Mutable<ILogicalOperator>> getRoots() {
+ return roots;
+ }
+
+ public void setRoots(List<Mutable<ILogicalOperator>> roots) {
+ this.roots = roots;
+ }
+
+ @Override
+ public String toString() {
+ String prettyPlan;
+ try {
+ prettyPlan = ALogicalPlanImpl.prittyPrintPlan(this);
+ } catch (AlgebricksException e) {
+ prettyPlan = e.getMessage();
+ }
+ return prettyPlan;
+ }
+
+ public static String prittyPrintPlan(ILogicalPlan plan) throws
AlgebricksException {
+ LogicalOperatorPrettyPrintVisitor pvisitor = new
LogicalOperatorPrettyPrintVisitor();
+ StringBuilder buffer = new StringBuilder();
+ PlanPrettyPrinter.printPlan(plan, buffer, pvisitor, 0);
+ return buffer.toString();
+ }
+}
diff --git
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
index cf0f1c2..49193e0 100644
---
a/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
+++
b/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
@@ -253,6 +253,9 @@
if (op.getPositionalVariable() != null) {
buffer.append(" at " + op.getPositionalVariable());
}
+ if (op.getAdditionalVariables() != null) {
+ buffer.append(", " + op.getAdditionalVariables());
+ }
buffer.append(" <- " +
op.getExpressionRef().getValue().accept(exprVisitor, indent));
return buffer.toString();
}
@@ -281,6 +284,9 @@
StringBuilder buffer = new StringBuilder();
addIndent(buffer, indent).append(
"data-scan " + op.getProjectVariables() + "<-" +
op.getVariables() + " <- " + op.getDataSource());
+ if (op.getKeyVars() != null) {
+ buffer.append("[" + op.getKeyVars() + "<- PK]");
+ }
return buffer.toString();
}
@@ -333,7 +339,7 @@
.append(op.getPayloadExpression().getValue().accept(exprVisitor,
indent)).append(" partitioned by ");
pprintExprList(op.getPrimaryKeyExpressions(), buffer, indent);
if (op.getOperation() == Kind.UPSERT) {
- buffer.append(" out: ([" + op.getPrevRecordVar() + "]
<-{record-before-upsert}) ");
+ buffer.append(" out: ([record-before-upsert:" +
op.getPrevRecordVar() + "]) ");
}
if (op.isBulkload()) {
buffer.append(" [bulkload]");
diff --git
a/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java
b/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java
index 8bf3dbb..1b40d4d 100644
---
a/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java
+++
b/algebricks/algebricks-examples/piglet-example/src/main/java/org/apache/hyracks/algebricks/examples/piglet/metadata/PigletMetadataProvider.java
@@ -83,8 +83,8 @@
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>
getScannerRuntime(IDataSource<String> dataSource,
List<LogicalVariable> scanVariables, List<LogicalVariable>
projectVariables, boolean projectPushed,
List<LogicalVariable> minFilterVars, List<LogicalVariable>
maxFilterVars, IOperatorSchema opSchema,
- IVariableTypeEnvironment typeEnv, JobGenContext context,
JobSpecification jobSpec, Object implConfig)
- throws AlgebricksException {
+ IVariableTypeEnvironment typeEnv, JobGenContext context,
JobSpecification jobSpec, Object implConfig,
+ List<LogicalVariable> opVar) throws AlgebricksException {
PigletFileDataSource ds = (PigletFileDataSource) dataSource;
FileSplit[] fileSplits = ds.getFileSplits();
@@ -232,15 +232,6 @@
}
@Override
- public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>
getUpsertRuntime(IDataSource<String> dataSource,
- IOperatorSchema propagatedSchema, IVariableTypeEnvironment
typeEnv, List<LogicalVariable> keys,
- LogicalVariable payLoadVar, List<LogicalVariable>
additionalNonKeyFields, LogicalVariable prevPayload,
- RecordDescriptor recordDesc, JobGenContext context,
JobSpecification jobSpec) throws AlgebricksException {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>
getIndexUpsertRuntime(
IDataSourceIndex<String, String> dataSourceIndex, IOperatorSchema
propagatedSchema,
IOperatorSchema[] inputSchemas, IVariableTypeEnvironment typeEnv,
List<LogicalVariable> primaryKeys,
@@ -251,4 +242,13 @@
// TODO Auto-generated method stub
return null;
}
+
+ @Override
+ public Pair<IOperatorDescriptor, AlgebricksPartitionConstraint>
getUpsertRuntime(IDataSource<String> dataSource,
+ IOperatorSchema propagatedSchema, IVariableTypeEnvironment
typeEnv, List<LogicalVariable> keys,
+ LogicalVariable payLoadVar, List<LogicalVariable>
additionalNonKeyFields, LogicalVariable prevPayload,
+ RecordDescriptor recordDesc, JobGenContext context,
JobSpecification jobSpec) throws AlgebricksException {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
diff --git
a/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
b/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
index f8b36dd..8c19230 100644
---
a/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
+++
b/algebricks/algebricks-rewriter/src/main/java/org/apache/hyracks/algebricks/rewriter/rules/IntroduceProjectsRule.java
@@ -26,7 +26,6 @@
import org.apache.commons.lang3.mutable.Mutable;
import org.apache.commons.lang3.mutable.MutableObject;
-
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.common.utils.Triple;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalOperator;
@@ -60,7 +59,8 @@
}
@Override
- public boolean rewritePre(Mutable<ILogicalOperator> opRef,
IOptimizationContext context) throws AlgebricksException {
+ public boolean rewritePre(Mutable<ILogicalOperator> opRef,
IOptimizationContext context)
+ throws AlgebricksException {
if (hasRun) {
return false;
}
@@ -70,7 +70,7 @@
protected boolean introduceProjects(AbstractLogicalOperator parentOp, int
parentInputIndex,
Mutable<ILogicalOperator> opRef, Set<LogicalVariable>
parentUsedVars, IOptimizationContext context)
- throws AlgebricksException {
+ throws AlgebricksException {
AbstractLogicalOperator op = (AbstractLogicalOperator)
opRef.getValue();
boolean modified = false;
@@ -79,7 +79,7 @@
// In the top-down pass, maintain a set of variables that are used in
op and all its parents.
HashSet<LogicalVariable> parentsUsedVars = new
HashSet<LogicalVariable>();
- parentsUsedVars.addAll(parentUsedVars);
+ parentsUsedVars.addAll(parentUsedVars);//this line makes no sense
parentsUsedVars.addAll(usedVars);
// Descend into children.
@@ -152,7 +152,7 @@
}
return modified;
}
-
+
private boolean canEliminateProjectBelowUnion(UnionAllOperator unionOp,
ProjectOperator projectOp,
int unionInputIndex) throws AlgebricksException {
List<LogicalVariable> orderedLiveVars = new
ArrayList<LogicalVariable>();
diff --git
a/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java
b/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java
index ba71b0c..9e9a960 100644
---
a/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java
+++
b/hyracks/hyracks-control/hyracks-control-common/src/main/java/org/apache/hyracks/control/common/dataset/ResultStateSweeper.java
@@ -76,7 +76,7 @@
}
}
if (LOGGER.isLoggable(Level.INFO)) {
- LOGGER.info("Result state cleanup instance successfully
completed.");
+ //LOGGER.info("Result state cleanup instance successfully
completed.");
}
}
}
diff --git
a/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTree.java
b/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTree.java
index 08f98a3..c493802 100644
---
a/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTree.java
+++
b/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTree.java
@@ -924,7 +924,7 @@
@Override
public void diskOrderScan(ITreeIndexCursor cursor) throws
HyracksDataException {
- ctx.setOperation(IndexOperation.DISKORDERSCAN);
+ ctx.setOperation(IndexOperation.DISK_ORDER_SCAN);
btree.diskOrderScan(cursor, ctx);
}
diff --git
a/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java
b/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java
index 8513368..6e9f4b9 100644
---
a/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java
+++
b/hyracks/hyracks-storage-am-btree/src/main/java/org/apache/hyracks/storage/am/btree/impls/BTreeOpContext.java
@@ -123,7 +123,7 @@
@Override
public void setOperation(IndexOperation newOp) {
- if (newOp == IndexOperation.SEARCH || newOp ==
IndexOperation.DISKORDERSCAN) {
+ if (newOp == IndexOperation.SEARCH || newOp ==
IndexOperation.DISK_ORDER_SCAN) {
if (cursorInitialState == null) {
cursorInitialState = new BTreeCursorInitialState(null,
searchCallback, accessor);
}
diff --git
a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
index 6736420..1ea09d4 100644
---
a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
+++
b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/dataflow/IndexInsertUpdateDeleteOperatorNodePushable.java
@@ -64,6 +64,7 @@
this.indexHelper =
opDesc.getIndexDataflowHelperFactory().createIndexDataflowHelper(opDesc, ctx,
partition);
this.recordDescProvider = recordDescProvider;
this.op = op;
+ // fieldPermutation = {pk fields - record field - filter fields}
tuple.setFieldPermutation(fieldPermutation);
}
diff --git
a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/ophelpers/IndexOperation.java
b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/ophelpers/IndexOperation.java
index f579064..3a5ded7 100644
---
a/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/ophelpers/IndexOperation.java
+++
b/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/ophelpers/IndexOperation.java
@@ -25,8 +25,8 @@
UPDATE,
UPSERT,
SEARCH,
- DISKORDERSCAN,
- PHYSICALDELETE,
+ DISK_ORDER_SCAN,
+ PHYSICAL_DELETE,
NOOP,
MERGE,
FULL_MERGE,
diff --git
a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
index 13c6949..1e23fae 100644
---
a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
+++
b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTree.java
@@ -271,7 +271,7 @@
operationalComponents.clear();
switch (ctx.getOperation()) {
case UPDATE:
- case PHYSICALDELETE:
+ case PHYSICAL_DELETE:
case FLUSH:
case DELETE:
operationalComponents.add(memoryComponents.get(cmc));
@@ -326,7 +326,7 @@
}
switch (ctx.getOperation()) {
- case PHYSICALDELETE:
+ case PHYSICAL_DELETE:
ctx.currentMutableBTreeAccessor.delete(indexTuple);
break;
case INSERT:
diff --git
a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeOpContext.java
b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeOpContext.java
index fa25524..9b617f4 100644
---
a/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeOpContext.java
+++
b/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/impls/LSMBTreeOpContext.java
@@ -177,7 +177,7 @@
switch (op) {
case SEARCH:
break;
- case DISKORDERSCAN:
+ case DISK_ORDER_SCAN:
case UPDATE:
// Attention: It is important to leave the leafFrame and
// leafFrameFactory of the mutableBTree as is when doing an
update.
@@ -189,7 +189,7 @@
case INSERT:
setInsertMode();
break;
- case PHYSICALDELETE:
+ case PHYSICAL_DELETE:
case DELETE:
setDeleteMode();
break;
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMHarness.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMHarness.java
index 4c4ed28..b9d8181 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMHarness.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/ILSMHarness.java
@@ -62,4 +62,6 @@
LSMOperationType opType) throws HyracksDataException;
public void endReplication(ILSMIndexOperationContext ctx) throws
HyracksDataException;
+
+ public void searchForUpsert(ILSMIndexOperationContext ctx, IIndexCursor
cursor, ISearchPredicate searchPred);
}
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/LSMOperationType.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/LSMOperationType.java
index b083770..59c5859 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/LSMOperationType.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/LSMOperationType.java
@@ -20,6 +20,7 @@
public enum LSMOperationType {
SEARCH,
+ SEARCH_FOR_UPSERT,
MODIFICATION,
FORCE_MODIFICATION,
FLUSH,
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
index 54ec029..6d48e2e 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractDiskLSMComponent.java
@@ -44,6 +44,7 @@
case MODIFICATION:
case REPLICATE:
case SEARCH:
+ case SEARCH_FOR_UPSERT:
readerCount++;
break;
case MERGE:
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMComponent.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMComponent.java
index b2c55dc..443c079 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMComponent.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMComponent.java
@@ -45,4 +45,8 @@
public ILSMComponentFilter getLSMComponentFilter() {
return filter;
}
+
+ public int getReaderCount() {
+ return readerCount;
+ }
}
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractMemoryLSMComponent.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractMemoryLSMComponent.java
index 7ee5802..8c9f4b0 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractMemoryLSMComponent.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractMemoryLSMComponent.java
@@ -72,6 +72,7 @@
}
break;
case MODIFICATION:
+ case SEARCH_FOR_UPSERT:
if (isMutableComponent) {
if (state == ComponentState.READABLE_WRITABLE) {
writerCount++;
@@ -90,7 +91,7 @@
case REPLICATE:
case SEARCH:
if (state == ComponentState.READABLE_WRITABLE || state ==
ComponentState.READABLE_UNWRITABLE
- || state == ComponentState.READABLE_UNWRITABLE_FLUSHING) {
+ || state ==
ComponentState.READABLE_UNWRITABLE_FLUSHING) {
readerCount++;
} else {
return false;
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
index 21b0d8a..1a695cf 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMHarness.java
@@ -367,6 +367,12 @@
}
@Override
+ public void searchForUpsert(ILSMIndexOperationContext ctx, IIndexCursor
cursor, ISearchPredicate searchPred) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
public void endSearch(ILSMIndexOperationContext ctx) throws
HyracksDataException {
if (ctx.getOperation() == IndexOperation.SEARCH) {
try {
diff --git
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMTreeIndexAccessor.java
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMTreeIndexAccessor.java
index f439d7e..3371d52 100644
---
a/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMTreeIndexAccessor.java
+++
b/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/LSMTreeIndexAccessor.java
@@ -100,6 +100,12 @@
lsmHarness.search(ctx, cursor, searchPred);
}
+ public void searchForUpsert(IIndexCursor cursor, ISearchPredicate
searchPred)
+ throws HyracksDataException, IndexException {
+ ctx.setOperation(IndexOperation.SEARCH);
+ lsmHarness.searchForUpsert(ctx, cursor, searchPred);
+ }
+
@Override
public void flush(ILSMIOOperation operation) throws HyracksDataException,
IndexException {
lsmHarness.flush(ctx, operation);
@@ -113,7 +119,7 @@
@Override
public void physicalDelete(ITupleReference tuple) throws
HyracksDataException, IndexException {
- ctx.setOperation(IndexOperation.PHYSICALDELETE);
+ ctx.setOperation(IndexOperation.PHYSICAL_DELETE);
lsmHarness.modify(ctx, false, tuple);
}
@@ -131,9 +137,10 @@
ctx.getComponentsToBeMerged().addAll(components);
lsmHarness.scheduleMerge(ctx, callback);
}
-
+
@Override
- public void scheduleReplication(List<ILSMComponent> lsmComponents, boolean
bulkload, LSMOperationType opType) throws HyracksDataException {
+ public void scheduleReplication(List<ILSMComponent> lsmComponents, boolean
bulkload, LSMOperationType opType)
+ throws HyracksDataException {
ctx.setOperation(IndexOperation.REPLICATE);
ctx.getComponentsToBeReplicated().clear();
ctx.getComponentsToBeReplicated().addAll(lsmComponents);
@@ -148,7 +155,7 @@
@Override
public void forcePhysicalDelete(ITupleReference tuple) throws
HyracksDataException, IndexException {
- ctx.setOperation(IndexOperation.PHYSICALDELETE);
+ ctx.setOperation(IndexOperation.PHYSICAL_DELETE);
lsmHarness.forceModify(ctx, tuple);
}
diff --git
a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
index bb0c8d6..96b7f68 100644
---
a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
+++
b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/AbstractLSMRTree.java
@@ -334,7 +334,7 @@
@Override
public void modify(IIndexOperationContext ictx, ITupleReference tuple)
throws HyracksDataException, IndexException {
LSMRTreeOpContext ctx = (LSMRTreeOpContext) ictx;
- if (ctx.getOperation() == IndexOperation.PHYSICALDELETE) {
+ if (ctx.getOperation() == IndexOperation.PHYSICAL_DELETE) {
throw new UnsupportedOperationException("Physical delete not
supported in the LSM-RTree");
}
diff --git
a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
index 3c91d62..a927e40 100644
---
a/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
+++
b/hyracks/hyracks-storage-am-lsm-rtree/src/main/java/org/apache/hyracks/storage/am/lsm/rtree/impls/LSMRTree.java
@@ -480,7 +480,7 @@
@Override
public void modify(IIndexOperationContext ictx, ITupleReference tuple)
throws HyracksDataException, IndexException {
LSMRTreeOpContext ctx = (LSMRTreeOpContext) ictx;
- if (ctx.getOperation() == IndexOperation.PHYSICALDELETE) {
+ if (ctx.getOperation() == IndexOperation.PHYSICAL_DELETE) {
throw new UnsupportedOperationException("Physical delete not
supported in the LSM-RTree");
}
diff --git
a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java
b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java
index d01bad2..3a7b756 100644
---
a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java
+++
b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTree.java
@@ -845,7 +845,7 @@
@Override
public void diskOrderScan(ITreeIndexCursor cursor) throws
HyracksDataException {
- ctx.setOperation(IndexOperation.DISKORDERSCAN);
+ ctx.setOperation(IndexOperation.DISK_ORDER_SCAN);
rtree.diskOrderScan(cursor, ctx);
}
diff --git
a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTreeOpContext.java
b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTreeOpContext.java
index 107dc30..7250b0c 100644
---
a/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTreeOpContext.java
+++
b/hyracks/hyracks-storage-am-rtree/src/main/java/org/apache/hyracks/storage/am/rtree/impls/RTreeOpContext.java
@@ -98,7 +98,7 @@
if (op != null && newOp == op) {
return;
}
- if (op != IndexOperation.SEARCH && op != IndexOperation.DISKORDERSCAN)
{
+ if (op != IndexOperation.SEARCH && op !=
IndexOperation.DISK_ORDER_SCAN) {
if (splitKey == null) {
splitKey = new
RTreeSplitKey(interiorFrame.getTupleWriter().createTupleReference(),
interiorFrame
.getTupleWriter().createTupleReference());
--
To view, visit https://asterix-gerrit.ics.uci.edu/620
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3749349e2b9f1b03c8b310eb99d3f44d08be77df
Gerrit-PatchSet: 1
Gerrit-Project: hyracks
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>