>From Shahrzad Shirazi <[email protected]>:
Shahrzad Shirazi has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20004 )
Change subject: [NO ISSUE][COMP] Change plan to show RETAIN-UNTRUE for null
placeholders
......................................................................
[NO ISSUE][COMP] Change plan to show RETAIN-UNTRUE for null placeholders
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
Change query plan to show RETAIN-UNTRUE when retaining
missing even if the placeholder parameter is null.
Change-Id: I4a3af98be2cf74e837222755abfd45a075b3b257
---
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorNodePushable.java
M
hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/prettyprint/LogicalOperatorPrettyPrintVisitor.java
2 files changed, 28 insertions(+), 2 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/04/20004/1
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 caf4774..6ec82dc 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
@@ -305,9 +305,9 @@
@Override
public Void visitSelectOperator(SelectOperator op, Integer indent) throws
AlgebricksException {
- String retainMissing = op.getMissingPlaceholderVariable() != null
+ String retainMissing = (op.getMissingPlaceholderVariable() != null)
? " retain-untrue (" + op.getMissingPlaceholderVariable() + "
<- " + op.getRetainMissingAsValue() + ")"
- : "";
+ : (op.getRetainMissingAsValue()!= null ? " retain-untrue" :
"");
addIndent(indent).append("select
(").append(op.getCondition().getValue().accept(exprVisitor, indent))
.append(")").append(retainMissing)
.append(op.isProjectPushed() ? " project: " +
str(op.getProjectVariables()) : "");
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorNodePushable.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorNodePushable.java
index de4c4a9..147b9a3 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorNodePushable.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree/src/main/java/org/apache/hyracks/storage/am/lsm/btree/dataflow/LSMBTreeBatchPointSearchOperatorNodePushable.java
@@ -99,6 +99,7 @@
long matchingTupleCount = 0;
LSMBTreeBatchPointSearchCursor batchCursor =
(LSMBTreeBatchPointSearchCursor) cursor;
int tupleIndex = 0;
+
while (cursor.hasNext()) {
cursor.next();
matchingTupleCount++;
@@ -118,6 +119,7 @@
tb.addFieldEndOffset();
}
}
+
ITupleReference projectedTuple = writeTupleToOutput(tuple);
if (tupleFilter != null) {
referenceFilterTuple.reset(projectedTuple);
@@ -125,15 +127,22 @@
continue;
}
}
+
FrameUtils.appendToWriter(writer, appender,
tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize());
+
if (outputLimit >= 0 && ++outputCount >= outputLimit) {
finished = true;
break;
}
}
+ if (matchingTupleCount == 0 && retainInput && retainMissing) {
+ int end = accessor.getTupleCount();
+ appendMissingTuple(0, end);
+ }
stats.getInputTupleCounter().update(matchingTupleCount);
}
+
private void appendMissingTuple(int start, int end) throws
HyracksDataException {
for (int i = start; i < end; i++) {
FrameUtils.appendConcatToWriter(writer, appender, accessor, i,
nonMatchTupleBuild.getFieldEndOffsets(),
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20004
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I4a3af98be2cf74e837222755abfd45a075b3b257
Gerrit-Change-Number: 20004
Gerrit-PatchSet: 1
Gerrit-Owner: Shahrzad Shirazi <[email protected]>
Gerrit-MessageType: newchange