Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/822#discussion_r117105048
--- Diff:
exec/java-exec/src/main/java/org/apache/drill/exec/physical/base/AbstractBase.java
---
@@ -99,17 +100,31 @@ public void setCost(double cost) {
this.cost = cost;
}
- // Not available. Presumably because Drill does not currently use
- // this value, though it does appear in some test physical plans.
-// public void setMaxAllocation(long alloc) {
-// maxAllocation = alloc;
-// }
-
@Override
public long getMaxAllocation() {
return maxAllocation;
}
+ /**
+ * Any operator that supports spilling should override this method
+ * @param maxAllocation The max memory allocation to be set
+ */
+ @Override
+ public void setMaxAllocation(long maxAllocation) {
+ this.maxAllocation = maxAllocation;
+ /*throw new DrillRuntimeException("Unsupported method:
setMaxAllocation()");*/
+ }
+
+ /**
+ * Any operator that supports spilling should override this method (and
return true)
+ * @return false
+ */
+ @Override
+ public boolean getBufferedOperator() { return false; }
--- End diff --
Actually, whether an operator is buffered is an attribute of the operator
itself, not a property of an operator instance. So, shouldn't this method:
* Return false in the base class.
* Return true in operators that are buffered.
* Marked as \@JsonIgnore so it is not serialized (see [this
post|http://stackoverflow.com/questions/7421474/how-can-i-tell-jackson-to-ignore-a-property-for-which-i-dont-have-control-over])
* Should have no matching set method.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---