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.
This PR replace our previous naive rel pattern label pruning with a new pruning class that prune both node and relationship labels based on topology.
Primary use case
In RDF processing, since a join can only happen on resource node, the following query
can be pruned as
The join over
e1,b
will benefit from pruning.And of course general multi label query will also benefit from this PR.
Minutia
Technically speaking, label pruning should be performed iteratively until the algorithm converge. Though I don't think it make much difference in practice, plus we want the compilation to be fast. So the current implementation only perform pruning once over each node and rel.