summaryrefslogtreecommitdiffstats
path: root/document
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-07-23 14:01:25 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2019-07-23 14:01:25 +0200
commit0d401efd086ba503e5d2300b8838fad7fb95ded7 (patch)
tree8122b767d4bda2b878dc65fb380fdfa525774a3d /document
parent880602182afb57beda70620081822b8a15f81506 (diff)
As evaluation if now fully left to right and lazy and short ciruited, no need for special eager leftmost node.
Diffstat (limited to 'document')
-rw-r--r--document/src/main/java/com/yahoo/document/select/ResultList.java6
-rw-r--r--document/src/main/java/com/yahoo/document/select/rule/LogicNode.java18
2 files changed, 5 insertions, 19 deletions
diff --git a/document/src/main/java/com/yahoo/document/select/ResultList.java b/document/src/main/java/com/yahoo/document/select/ResultList.java
index 432e86a6c78..35b4a1ef5be 100644
--- a/document/src/main/java/com/yahoo/document/select/ResultList.java
+++ b/document/src/main/java/com/yahoo/document/select/ResultList.java
@@ -116,11 +116,11 @@ public class ResultList {
return true;
}
- public interface GetResultList {
+ public interface LazyResultList {
ResultList getResult();
}
- public ResultList combineAND(GetResultList other)
+ public ResultList combineAND(LazyResultList other)
{
if (Result.FALSE == toResult()) return ResultList.toResultList(false);
@@ -150,7 +150,7 @@ public class ResultList {
return Result.INVALID;
}
- public ResultList combineOR(GetResultList other)
+ public ResultList combineOR(LazyResultList other)
{
if (Result.TRUE == toResult()) return ResultList.toResultList(true);
diff --git a/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java b/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java
index e22a56f6e9a..804dda5741d 100644
--- a/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java
+++ b/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java
@@ -169,8 +169,7 @@ public class LogicNode implements ExpressionNode {
combineValues(buf);
}
}
- ValueItem next = new LazyValueItem(item, context);
- buf.push(buf.empty() ? new EagerValueItem(next.getOperator(), next.getResult()) : next);
+ buf.push(new LazyValueItem(item, context));
}
while (buf.size() > 1) {
combineValues(buf);
@@ -247,7 +246,7 @@ public class LogicNode implements ExpressionNode {
/**
* Private class to store results in a stack.
*/
- private abstract class ValueItem implements ResultList.GetResultList {
+ private abstract class ValueItem implements ResultList.LazyResultList {
private final int operator;
ValueItem(int operator) {
this.operator = operator;
@@ -302,19 +301,6 @@ public class LogicNode implements ExpressionNode {
}
}
- private final class EagerValueItem extends ValueItem {
- private final ResultList value;
-
- EagerValueItem(int operator, ResultList value) {
- super(operator);
- this.value = value;
- }
- @Override
- public ResultList getResult() {
- return value;
- }
- }
-
/**
* Private class to store bucket sets in a stack.
*/