Handle malformed regex comparisons during parsing (fixes #3301) #3351
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.
Previously, if your query used a regex operator but didn't follow it with a regex, parseRegex would return an empty RegexLiteral, and the expression parser would put that into the right-hand side of the expression. This caused a nil-pointer panic when the query was later executed. This change adds a check at the parsing level and returns an error message if a regex operator (e.g. =~) is not followed by an actual regex.
Before, doing the following would cause a panic and kill the server:
After, we gracefully handle the problem during the parsing stage: