This is an automated email from the ASF dual-hosted git repository.
mariofusco pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
The following commit(s) were added to refs/heads/main by this push:
new 8d29d578e6 Little simplification in evaluation for queries (#6464)
8d29d578e6 is described below
commit 8d29d578e6a65d1b7f1803b3fca2dc2e25478159
Author: Paolo Bizzarri <[email protected]>
AuthorDate: Wed Sep 24 08:55:19 2025 +0200
Little simplification in evaluation for queries (#6464)
---
.../java/org/drools/core/phreak/PhreakTimerNode.java | 4 +---
.../org/drools/core/phreak/RuleNetworkEvaluator.java | 18 ++++++------------
.../org/drools/core/phreak/TupleEvaluationUtil.java | 5 ++---
3 files changed, 9 insertions(+), 18 deletions(-)
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
b/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
index fc8b7e0285..31ab2a3a9d 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/PhreakTimerNode.java
@@ -45,7 +45,6 @@ import org.drools.core.time.Job;
import org.drools.core.time.JobContext;
import org.drools.core.time.TimerService;
import org.drools.core.time.impl.DefaultJobHandle;
-import org.drools.core.util.LinkedList;
import org.drools.core.util.index.TupleList;
import org.kie.api.definition.rule.Rule;
import org.kie.api.runtime.Calendars;
@@ -455,8 +454,7 @@ public class PhreakTimerNode {
RuleNetworkEvaluator.INSTANCE.outerEval(pmem, sink, bit, tm,
smems, smemIndex,
trgLeftTuples,
- activationsManager, new
LinkedList<>(), true,
-
pmem.getRuleAgendaItem().getRuleExecutor());
+ activationsManager, true,
pmem.getRuleAgendaItem().getRuleExecutor());
}
public static class TimerNodeJobContext
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
b/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
index 643df2872c..335f49df2f 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/RuleNetworkEvaluator.java
@@ -123,8 +123,6 @@ public class RuleNetworkEvaluator {
LeftInputAdapterNode liaNode = (LeftInputAdapterNode)
smem.getRootNode();
- LinkedList<StackEntry> stack = new LinkedList<>();
-
NetworkNode node;
Memory nodeMem;
boolean firstSegmentIsOnlyLia = liaNode == smem.getTipNode();
@@ -144,7 +142,7 @@ public class RuleNetworkEvaluator {
if (log.isTraceEnabled()) {
log.trace("Rule[name={}] segments={} {}",
((TerminalNode)pmem.getPathEndNode()).getRule().getName(), smems.length,
srcTuples.toStringSizes());
}
- outerEval(pmem, node, firstSegmentIsOnlyLia ? 1L : 2L, nodeMem, smems,
firstSegmentIsOnlyLia ? 1 : 0, srcTuples, activationsManager, stack, true,
executor);
+ outerEval(pmem, node, firstSegmentIsOnlyLia ? 1L : 2L, nodeMem, smems,
firstSegmentIsOnlyLia ? 1 : 0, srcTuples, activationsManager, true, executor);
}
public static String indent(int size) {
@@ -183,18 +181,14 @@ public class RuleNetworkEvaluator {
int smemIndex,
TupleSets trgTuples,
ActivationsManager activationsManager,
- LinkedList<StackEntry> stack,
boolean processRian,
RuleExecutor executor) {
+
+ LinkedList<StackEntry> stack = new LinkedList<>();
innerEval(pmem, node, bit, nodeMem, smems, smemIndex, trgTuples,
activationsManager, stack, processRian, executor);
- while (true) {
- // eval
- if (!stack.isEmpty()) {
- StackEntry entry = stack.removeLast();
- evalStackEntry(entry, stack, executor, activationsManager);
- } else {
- return; // stack is empty return;
- }
+ while (!stack.isEmpty()) {
+ StackEntry entry = stack.removeLast();
+ evalStackEntry(entry, stack, executor, activationsManager);
}
}
diff --git
a/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
b/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
index 9a0c765105..7861f0adc8 100644
--- a/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
+++ b/drools-core/src/main/java/org/drools/core/phreak/TupleEvaluationUtil.java
@@ -35,7 +35,6 @@ import org.drools.core.reteoo.PathEndNode;
import org.drools.core.reteoo.PathMemory;
import org.drools.core.reteoo.SegmentMemory;
import org.drools.core.reteoo.Tuple;
-import org.drools.core.util.LinkedList;
public class TupleEvaluationUtil {
public static boolean flushLeftTupleIfNecessary(ReteEvaluator
reteEvaluator, SegmentMemory sm, boolean streamMode) {
@@ -130,7 +129,7 @@ public class TupleEvaluationUtil {
ActivationsManager activationsManager =
pmem.getActualActivationsManager( reteEvaluator );
RuleNetworkEvaluator.INSTANCE.outerEval(pmem, node, bit, mem, smems,
sm.getPos(), leftTupleSets, activationsManager,
- new LinkedList<>(),
- true,
rtnPmem.getOrCreateRuleAgendaItem(activationsManager).getRuleExecutor());
+ true,
+
rtnPmem.getOrCreateRuleAgendaItem(activationsManager).getRuleExecutor());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]