Support regex queries with label+property indices #3025
Merged
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.
Queries using a label+property index now correctly return matching results when comparing properties against regular expressions.
The problem was caused by index code rejecting ranges across different
PropertyType
s as being invalid. This is true in most cases, (e.g.WHERE node.a > 'hello' AND node.a < 42
) but not in the case where the upper-bound is an exclusive (<
) bound on the next (from an ordering standpoint)PropertyType
. As the exclusive upper bound exclusive sentinel is not compared against, it means that the range is still across a singlePropertyType
.Regexes uses a range that is inclusively lower bounded on the empty string, and exclusively upper bounded on the minimum value of whatever
PropertyType
happens to follow string.(This bug was a regression introduced by composite indices.)
#Fixes 3010