Skip to content

Conversation

@Qup42
Copy link
Member

@Qup42 Qup42 commented Dec 22, 2025

No description provided.

Qup42 and others added 9 commits December 22, 2025 20:05
# Conflicts:
#	src/engine/HasPredicateScan.cpp
#	src/index/IndexImpl.cpp
#	src/index/Permutation.cpp
Copy link
Member Author

@Qup42 Qup42 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some places still requiring a bit of polishing.

@Qup42 Qup42 requested a review from RobinTF December 22, 2025 21:03
@codecov
Copy link

codecov bot commented Dec 22, 2025

Codecov Report

❌ Patch coverage is 87.50000% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.51%. Comparing base (d9a5e1a) to head (d4590a5).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
src/engine/CountAvailablePredicates.cpp 0.00% 7 Missing ⚠️
src/index/IndexImpl.cpp 44.44% 5 Missing ⚠️
src/engine/IndexScan.cpp 96.55% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2618      +/-   ##
==========================================
+ Coverage   91.50%   91.51%   +0.01%     
==========================================
  Files         478      479       +1     
  Lines       41066    41182     +116     
  Branches     5464     5474      +10     
==========================================
+ Hits        37578    37689     +111     
- Misses       1909     1915       +6     
+ Partials     1579     1578       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Collaborator

@RobinTF RobinTF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some requests from my side, and please incorporate and/or remove your own TODO proposals.

Qup42 added 5 commits January 12, 2026 11:19
# Conflicts:
#	src/engine/CountAvailablePredicates.cpp
#	src/engine/GroupByImpl.cpp
#	src/engine/HasPredicateScan.cpp
#	src/engine/IndexScan.cpp
#	src/engine/IndexScan.h
#	src/engine/MaterializedViews.cpp
#	src/engine/MaterializedViews.h
#	src/engine/QueryPlanner.cpp
#	src/index/IndexImpl.cpp
#	src/index/Permutation.cpp
#	src/index/Permutation.h
#	test/CompressedRelationsTest.cpp
#	test/IndexTest.cpp
#	test/MaterializedViewsTest.cpp
Copy link
Collaborator

@RobinTF RobinTF left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking very good already in my opinion. Just some minor suggestions left from my side.

const SparqlTripleSimple& triple) {
// Create alias shared pointer of internal the right `LocatedTriplesPerBlock`.
const auto& locatedTriples =
containsInternalIri(triple)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have the exact same check in getPermutationForTriple. Is there a place where only one of the two functions is used? In my imagination you could simply put this return statement you have here and put it in the other function.
On the other hand separation of concerns is also a valid concern.

@Qup42 Qup42 requested a review from joka921 January 13, 2026 12:42
# Conflicts:
#	src/engine/CMakeLists.txt
#	src/engine/Server.cpp
@sparql-conformance
Copy link

Overview

Number of Tests Passed ✅ Intended ✅ Failed ❌ Not tested
547 450 73 24 0

Conformance check passed ✅

No test result changes.

Details: https://qlever.dev/sparql-conformance-ui?cur=d4590a5f0de31beb92e62dcdc64d00ab2c2367c7&prev=7ec91f836cb8c98b4e07c906574cb4bf7f6f4e02

@sonarqubecloud
Copy link

Copy link
Member

@joka921 joka921 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have serious questions about the unwanted changes in unrelated files (where I liked the old syntax better). Maybe let's talk about this quickly.

Comment on lines +172 to +176
const auto& locatedTriples =
locatedTriplesState().getLocatedTriplesForPermutation<false>(perm);
auto fullHasPattern = index.getPermutation(perm).lazyScan(
CompressedRelationReader::ScanSpecAndBlocks::withUpdates(scanSpec,
locatedTriples),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really don't like this pattern (you have to manually get the correct permutation twice, which is an API regression.
This should be done by a single place at once!

Comment on lines +905 to +906
locatedTriplesState().getLocatedTriplesForPermutation<false>(
permutationEnum.value()),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here.
If the reason for this is,
that you with your new changes sometimes only already have the located triples for a single permutation, that probably we can have overloads in the Permutation class, instead of making this error-prone and verbose update to all the classes using the Permutation class.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants