Skip to content

Commit 0e74a66

Browse files
GH-4899 Use the collection factory provided sets and queues in path
iterations
1 parent 143df50 commit 0e74a66

2 files changed

Lines changed: 11 additions & 7 deletions

File tree

core/collection-factory/mapdb3/src/main/java/org/eclipse/rdf4j/collection/factory/mapdb/MapDb3CollectionFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ public <T> Set<T> createSet() {
184184
if (iterationCacheSyncThreshold > 0) {
185185
init();
186186
Serializer<T> serializer = createAnySerializer();
187-
MemoryTillSizeXSet<T> set = new MemoryTillSizeXSet<T>(colectionId++, delegate.createSet(), serializer,
187+
MemoryTillSizeXSet<T> set = new MemoryTillSizeXSet<>(colectionId++, delegate.createSet(), serializer,
188188
DEFAULT_SWITCH_TO_DISK_BASED_SET_AT_SIZE);
189-
return new CommitingSet<T>(set, iterationCacheSyncThreshold, db);
189+
return new CommitingSet<>(set, iterationCacheSyncThreshold, db);
190190
} else {
191191
return delegate.createSet();
192192
}
@@ -199,7 +199,7 @@ public Set<Value> createValueSet() {
199199
Serializer<Value> serializer = createValueSerializer();
200200
Set<Value> set = new MemoryTillSizeXSet<>(colectionId++, delegate.createValueSet(), serializer,
201201
DEFAULT_SWITCH_TO_DISK_BASED_SET_AT_SIZE);
202-
return new CommitingSet<Value>(set, iterationCacheSyncThreshold, db);
202+
return new CommitingSet<>(set, iterationCacheSyncThreshold, db);
203203
} else {
204204
return delegate.createValueSet();
205205
}

core/queryalgebra/evaluation/src/main/java/org/eclipse/rdf4j/query/algebra/evaluation/iterator/PathIteration.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.Queue;
1515
import java.util.Set;
1616

17+
import org.eclipse.rdf4j.collection.factory.api.CollectionFactory;
1718
import org.eclipse.rdf4j.common.iteration.CloseableIteration;
1819
import org.eclipse.rdf4j.common.iteration.LookAheadIteration;
1920
import org.eclipse.rdf4j.model.Value;
@@ -68,6 +69,8 @@ public class PathIteration extends LookAheadIteration<BindingSet> {
6869

6970
private final Set<String> namedIntermediateJoins = new HashSet<>();
7071

72+
private final CollectionFactory collectionFactory;
73+
7174
public PathIteration(EvaluationStrategy strategy, Scope scope, Var startVar,
7275
TupleExpr pathExpression, Var endVar, Var contextVar, long minLength, BindingSet bindings)
7376
throws QueryEvaluationException {
@@ -85,9 +88,10 @@ public PathIteration(EvaluationStrategy strategy, Scope scope, Var startVar,
8588
this.currentLength = minLength;
8689
this.bindings = bindings;
8790

88-
this.reportedValues = strategy.makeSet();
89-
this.unreportedValues = strategy.makeSet();
90-
this.valueQueue = strategy.makeQueue();
91+
collectionFactory = strategy.getCollectionFactory().get();
92+
this.reportedValues = collectionFactory.createSet();
93+
this.unreportedValues = collectionFactory.createSet();
94+
this.valueQueue = collectionFactory.createQueue();
9195

9296
createIteration();
9397
}
@@ -218,7 +222,7 @@ protected void handleClose() throws QueryEvaluationException {
218222
if (currentIter != null) {
219223
currentIter.close();
220224
}
221-
225+
collectionFactory.close();
222226
}
223227

224228
/**

0 commit comments

Comments
 (0)