aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema/expressiontransforms
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-10-02 21:23:24 +0200
committerjonmv <venstad@gmail.com>2022-10-02 21:23:24 +0200
commitb3d3dd71e6f576de36a3e5c18f1fcd6ce6933f17 (patch)
treeaba845c04b8b5f5ea35a2238012bd9b53ee740c7 /config-model/src/main/java/com/yahoo/schema/expressiontransforms
parent998293e64119cc1b17a2dd2d52eb5dad67a49670 (diff)
Revert "Merge pull request #24257 from vespa-engine/bratseth/boolean-optimize-primitives-only"
This reverts commit 4a1ca594e4cf3810974696ce970f5a161ec099eb, reversing changes made to 62928f4d8b7571c4b10fedffc56b762f57b6b2ca.
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/expressiontransforms')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/expressiontransforms/BooleanExpressionTransformer.java19
1 files changed, 7 insertions, 12 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/expressiontransforms/BooleanExpressionTransformer.java b/config-model/src/main/java/com/yahoo/schema/expressiontransforms/BooleanExpressionTransformer.java
index 25cd7fe7bd2..ad050d4ca63 100644
--- a/config-model/src/main/java/com/yahoo/schema/expressiontransforms/BooleanExpressionTransformer.java
+++ b/config-model/src/main/java/com/yahoo/schema/expressiontransforms/BooleanExpressionTransformer.java
@@ -36,12 +36,12 @@ public class BooleanExpressionTransformer extends ExpressionTransformer<Transfor
node = transformChildren(composite, context);
if (node instanceof OperationNode arithmetic)
- node = transformBooleanArithmetics(arithmetic, context);
+ node = transformBooleanArithmetics(arithmetic);
return node;
}
- private ExpressionNode transformBooleanArithmetics(OperationNode node, TransformContext context) {
+ private ExpressionNode transformBooleanArithmetics(OperationNode node) {
Iterator<ExpressionNode> child = node.children().iterator();
// Transform in precedence order:
@@ -51,25 +51,24 @@ public class BooleanExpressionTransformer extends ExpressionTransformer<Transfor
Operator op = it.next();
if ( ! stack.isEmpty()) {
while (stack.size() > 1 && ! op.hasPrecedenceOver(stack.peek().op)) {
- popStack(stack, context);
+ popStack(stack);
}
}
stack.push(new ChildNode(op, child.next()));
}
while (stack.size() > 1)
- popStack(stack, context);
+ popStack(stack);
return stack.getFirst().child;
}
- private void popStack(Deque<ChildNode> stack, TransformContext context) {
+ private void popStack(Deque<ChildNode> stack) {
ChildNode rhs = stack.pop();
ChildNode lhs = stack.peek();
- boolean primitives = isPrimitive(lhs.child, context) && isPrimitive(rhs.child, context);
ExpressionNode combination;
- if (primitives && rhs.op == Operator.and)
+ if (rhs.op == Operator.and)
combination = andByIfNode(lhs.child, rhs.child);
- else if (primitives && rhs.op == Operator.or)
+ else if (rhs.op == Operator.or)
combination = orByIfNode(lhs.child, rhs.child);
else {
combination = resolve(lhs, rhs);
@@ -78,10 +77,6 @@ public class BooleanExpressionTransformer extends ExpressionTransformer<Transfor
lhs.child = combination;
}
- private boolean isPrimitive(ExpressionNode node, TransformContext context) {
- return node.type(context.types()).rank() == 0;
- }
-
private static OperationNode resolve(ChildNode left, ChildNode right) {
if (! (left.child instanceof OperationNode) && ! (right.child instanceof OperationNode))
return new OperationNode(left.child, right.op, right.child);