Skip to content

Commit c06f66c

Browse files
committed
continue
1 parent d39bef1 commit c06f66c

3 files changed

Lines changed: 6162 additions & 4 deletions

File tree

core/sail/lmdb/src/main/java/org/eclipse/rdf4j/sail/lmdb/LmdbDeferredFilterPlacer.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,16 @@ private boolean hasPendingSplitExistsFilter(List<DeferredFilter> deferredFilters
155155
private boolean groupDeferredFilterOnSmallestWindow(List<SegmentFactor> factors, DeferredFilter filter,
156156
Set<String> boundBeforeSegment) {
157157
int[] window = null;
158+
if (!LmdbJoinPlanSupport.containsExists(filter.condition)
159+
&& groupDeferredFilterOnBindingAssignments(factors, filter, boundBeforeSegment)) {
160+
return true;
161+
}
158162
if (filter.conditionCost == JoinOrderPlanner.FILTER_COST_CHEAP) {
159163
window = smallestSinglePatternBindingCoveringWindow(factors, filter.requiredVars, boundBeforeSegment);
160164
if (window != null) {
161165
return groupDeferredFilterOnWindow(factors, filter, window);
162166
}
163167
}
164-
if (!LmdbJoinPlanSupport.containsExists(filter.condition)
165-
&& groupDeferredFilterOnBindingAssignments(factors, filter, boundBeforeSegment)) {
166-
return true;
167-
}
168168
if (filter.conditionCost == JoinOrderPlanner.FILTER_COST_CHEAP) {
169169
window = smallestBindingCoveringWindow(factors, filter.requiredVars, boundBeforeSegment);
170170
}

core/sail/lmdb/src/test/java/org/eclipse/rdf4j/sail/lmdb/benchmark/LmdbFlaggedThemeOptimizedQueryRegressionTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,11 @@ private static List<String> invariantMismatches(Expectation expectation, Optimiz
294294
mismatches.add(key + " should keep clique/pair inequality filters on binding windows, not a "
295295
+ "binding-prefix ladder\n" + snapshot.plan);
296296
}
297+
if (expectation.theme == Theme.SOCIAL_MEDIA && expectation.queryIndex == 10
298+
&& !snapshot.renderedQuery.contains("VALUES (?a ?b)")) {
299+
mismatches.add(key + " should bind the first follows edge as a value pair before expanding the cycle\n"
300+
+ snapshot.renderedQuery);
301+
}
297302
if (expectation.theme == Theme.LIBRARY && expectation.queryIndex == 7
298303
&& scansUnboundLocatedAt(snapshot.plan)) {
299304
mismatches.add(key + " should not evaluate the branch exclusion as a broad unbound locatedAt scan\n"

0 commit comments

Comments
 (0)