This repository has been archived by the owner on May 14, 2020. It is now read-only.
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 solves issues #1607 and #1598 and adds new regression tests.
A "having" SQL statement only makes sense in combination with a SELECT statement somewhere.
The whole new regex is:
(?i:[\s()]case\s*?\(|\)\s*?like\s*?\(|select.*?having\s*?[^\s]+\s*?[^\w\s]|if\s?\([\d\w]\s*?[=<>~])
The important part is
select.*?having\s*?[^\s]+\s*?[^\w\s]
(original part was|having\s*?[^\s]+\s*?[^\w\s]
only)I'm not quite sure about my
.*?
maybe there would be a better option. But we definitely solve the reported false positives. A word boundary with\b
would not be sufficient.For info:
We cover the
having
clause in 5 other rules too: