feat: add support for detecting SELECT * in const and var declarations #2
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.
Summary
Adds support for detecting
SELECT *usage inconstandvardeclarations at package and function levels.Problem
Previously, the analyzer only detected
SELECT *in:query := "SELECT * FROM users"db.Query("SELECT * FROM users")But missed a common pattern of storing SQL queries in constants:
Solution
Core Changes
checkGenDecl()function to process*ast.GenDeclnodes (const/var declarations)run()andRunWithConfig()const Query = "SELECT * FROM users"var Query = "SELECT * FROM users"const (...)andvar (...)Documentation Updates
Examples
❌ Will be detected:
✅ Good practices:
Technical Details
AST Analysis confirms no duplication:
checkAssignStmthandles*ast.AssignStmt: short declarations (:=) and assignments (=)checkGenDecl(new) handles*ast.GenDecl:constandvardeclarations