-
Notifications
You must be signed in to change notification settings - Fork 54
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
Implement construct PrefilterExpression
from SparqlExpression
.
#1573
Closed
realHannes
wants to merge
86
commits into
ad-freiburg:master
from
realHannes:environment_for_using_prefiltering
Closed
Changes from 7 commits
Commits
Show all changes
86 commits
Select commit
Hold shift + click to select a range
99da434
Added conversion str to int
realHannes 424d023
templated function for toNumeric, add declaration to NaryExpression.h
realHannes 0117e82
str to num for SparqlExpression implemented + added test
realHannes 35fd0b1
Merge branch 'ad-freiburg:master' into master
realHannes 94356c2
Update src/engine/sparqlExpressions/StringExpressions.cpp
realHannes decc8ba
Update src/engine/sparqlExpressions/StringExpressions.cpp
realHannes 850152c
Update src/engine/sparqlExpressions/StringExpressions.cpp
realHannes d650d67
Update src/engine/sparqlExpressions/StringExpressions.cpp
realHannes 46cc697
using now absl::from_chars() and stripping whitespaces for string to …
realHannes 7fc5c28
added new functions to processIriFuntionCall() (for string to number)
realHannes efb0e24
renaming to: toIntExpression and toDoubleExpression for later more ge…
realHannes a88537c
made format (clang-format-16)
realHannes ca1e2e0
Update src/parser/sparqlParser/SparqlQleverVisitor.cpp
realHannes 4adc831
Update src/parser/sparqlParser/SparqlQleverVisitor.cpp
realHannes d0f0d63
renaming in NaryExpression.h for accordance with other function, addi…
realHannes a118609
added test coverage for function calls makeIntExpression and make Dou…
realHannes 062052e
toNumeric has now correct behavior and uses absl::from_chars() and st…
realHannes 6d0f42a
made clang-format for NaryExpressionImpl.h
realHannes f90b8e2
Merge branch 'ad-freiburg:master' into master
realHannes fb88493
Merge branch 'ad-freiburg:master' into master
realHannes b2eb514
Merge remote-tracking branch 'upstream/master'
realHannes b165ac1
Merge branch 'ad-freiburg:master' into master
realHannes 7a3dfb2
Merge branch 'master' of https://github.com/realHannes/qlever
realHannes fc0ad3a
Merge branch 'ad-freiburg:master' into master
realHannes f3e6086
Merge branch 'ad-freiburg:master' into master
realHannes fd4c351
Merge branch 'ad-freiburg:master' into master
realHannes 220c9bf
Merge branch 'ad-freiburg:master' into master
realHannes a81cb8a
Merge branch 'ad-freiburg:master' into master
realHannes acc0109
Merge branch 'ad-freiburg:master' into master
realHannes cb8e560
Merge branch 'ad-freiburg:master' into master
realHannes 2b39970
Merge branch 'ad-freiburg:master' into master
realHannes a0101e4
Merge branch 'ad-freiburg:master' into master
realHannes 47dee1d
Merge branch 'ad-freiburg:master' into master
realHannes a8625f9
Merge branch 'ad-freiburg:master' into master
realHannes 7f95069
Merge branch 'ad-freiburg:master' into master
realHannes 28b8a69
Merge branch 'ad-freiburg:master' into master
realHannes 7bb6e01
Merge branch 'ad-freiburg:master' into master
realHannes edc974a
Add implementation for pre-filtering blocks on their metadata
realHannes ca6c2ff
Merge branch 'master' into prefilter_on_metadata_relational
realHannes 46be51a
fix spelling error
realHannes 0385b56
add namespace for CompressedBlockPrefiltering.h
realHannes 5707338
use std::ranges::set_union, std::ranges::upper_bound/lower_bound
realHannes c9687ec
move template specializations into namespace prefilterExpressions
realHannes d8246f7
fix
realHannes 66b4872
hopefully fix namespace issue
realHannes e4eddc4
Merge branch 'ad-freiburg:master' into prefilter_on_metadata_relational
realHannes b5d7dd7
first adaptations regarding the comments
realHannes 802e3aa
Merge branch 'ad-freiburg:master' into prefilter_on_metadata_relational
realHannes 662b1d4
applied suggestions from review
realHannes 510aa9e
fix std::move
realHannes 0d7f75b
Merge branch 'ad-freiburg:master' into prefilter_on_metadata_relational
realHannes c119200
adjusted CompressedBlockPrefiltering
realHannes af17181
mark method with override
realHannes 3d7238d
Merge branch 'master' into prefilter_on_metadata_relational
realHannes 5af6138
make further changes to prefiltering procedure and its tests
realHannes b02dc57
add additional testing on IDs from other datatypes
realHannes eb86f1b
addition to test Not Expression with And and Or
realHannes 69ed019
changes to test and fix index check fail
realHannes 854322b
increase test coverage for Not expression
realHannes b2aa689
just add all mixed blocks
realHannes 546c3b3
Merge branch 'ad-freiburg:master' into prefilter_on_metadata_relational
realHannes 7e61cb1
remove unnecessary values in test context
realHannes 009ebed
for sonar check
realHannes 6c19bf6
Merge branch 'ad-freiburg:master' into prefilter_on_metadata_relational
realHannes bf733ce
Merge branch 'ad-freiburg:master' into environment_for_using_prefilte…
realHannes 5b42c1f
methods to get PrefilterExpresssions from RelationalExpressions (Spar…
realHannes 6cf6609
Completed the implementation for constructing PrefilterExpressions fr…
realHannes 18c4c84
Merge branch 'master' into environment_for_using_prefiltering
realHannes e4be1fe
all builds should compile now
realHannes bde09cd
Merge branch 'ad-freiburg:master' into environment_for_using_prefilte…
realHannes 74756fe
fix build issue and increase test coverage
realHannes 1278d39
Merge branch 'master' into environment_for_using_prefiltering
realHannes 47d3d56
Merge branch 'ad-freiburg:master' into environment_for_using_prefilte…
realHannes 49de4d0
introduce test structure from PR1 (#1503)
realHannes fcefdf0
Merge branch 'master' into environment_for_using_prefiltering
realHannes 9f0efc6
fix build
realHannes 25f325a
implement proposed changes (2)
realHannes d65acc3
correction for codespell check
realHannes f85a96f
fix for codespell
realHannes 0a188a5
Merge branch 'ad-freiburg:master' into environment_for_using_prefilte…
realHannes 5f4e586
remove optionality (std::optional) for return value
realHannes 8062753
Merge branch 'ad-freiburg:master' into environment_for_using_prefilte…
realHannes c06de60
implement proposed improvements (4)
realHannes 95e9027
further adjustments + apply PrefilterExpressions in IndexScan
realHannes 0992fab
Merge branch 'master' into environment_for_using_prefiltering
realHannes f489b24
few additional adaptations
realHannes File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Some detailed comments here:
You may only pass on PrefilterExpressions to a child execution tree, if the variable of the expression is visible in the variable to column map. Otherwise you have the case that subqueries filter out too much.
It is fishy (and leads to unexpected behavior) if you just change the
Operation
without informing theshared_ptr<ExecutionTree>
that owns it.So what you need, is a
forThisExecutionTreeAndAllDescendents(
shared_ptr) that completely replaces the shared_ptr with a completely new execution tree (via
make_sharedor respectively
ad_utility::createExecutionTree) that stores the IndexScan. Then you best have a function in the IndexScanClass that can do something like
shared_ptr makeCopyWithAddedPrefilters(Prefilters) const(we have something similar in the
TransitivePathclass called
bindLeftOrRightSide`.You should make two PRs out of this, one for the extraction of the prefilters out of the expression (the first part of this PR), and then this second one here which is based on that one. Because then we can merge the first part earlier (which is further in the review process), and it gets much easier to review.