-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lazy TransitivePath
operation
#1595
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1595 +/- ##
==========================================
+ Coverage 89.08% 89.11% +0.02%
==========================================
Files 371 371
Lines 34437 34491 +54
Branches 3899 3908 +9
==========================================
+ Hits 30678 30735 +57
+ Misses 2484 2478 -6
- Partials 1275 1278 +3 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A first round of reviews.
Haven't checked the tests yet,
but otherwise this looks pretty good alright.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please reduce code duplication in the tests, otherwise we will try this out, the main code looks nice:)
Conformance check passed ✅No test result changes. |
Quality Gate passedIssues Measures |
This PR enables the `TransitivePath` operation to yield its result lazily and to consume its left/right child lazily. Note that the graph which is transitively traversed needs to be fully materialized due to the underlying algorithm. E.G when computing the (large) result of `wdt:P31/wdt:P279*`, the large result and the `wdt:P31` can be dealt with lazily, but the full `wdt:P279` predicate needs to be materialized.
This PR enables the
TransitivePath
operation to yield its result lazily and to consume its left/right child lazily. Note that the graph which is transitively traversed needs to be fully materialized due to the underlying algorithm. E.G when computing the (large) result ofwdt:P31/wdt:P279*
, the large result and thewdt:P31
can be dealt with lazily, but the fullwdt:P279
predicate needs to be materialized.