SQL Sherlock is a PostgreSQL-powered SQL query analysis engine that detects bad patterns, flags risky logic, suggests optimized rewrites, and ranks queries by quality — like Sherlock Holmes, but for SQL.
To create a meta-SQL engine that:
- Flags bad SQL practices (e.g.
SELECT *, unsafeDELETE,YEAR()filters) - Suggests cleaner SQL rewrites
- Scores query violations and ranks users
- Generates views and reports for SQL quality auditing
sql-sherlock/ ├── schema/ │ ├── 01_create_tables.sql │ └── 02_insert_sample_data.sql ├── analysis/ │ ├── 01_detect_violations.sql │ └── 02_rewrite_and_score.sql ├── reports/ │ └── user_violation_summary.sql ├── .gitignore ├── README.md
yaml Copy Edit
- Tables for
users,queries_raw, andflagged_issues - Inserted sample SQL queries with common violations
- Detects:
SELECT *usage- Non-SARGable filters (e.g.,
YEAR(date)) - Unsafe
DELETE/UPDATEwithoutWHERE - Always-true logic (e.g.,
OR 1=1) - Excessive JOINs (4+)
- Populates
flagged_issues
- Added
scoreandrewrite_sqlto each issue - Suggests optimized versions of bad queries
- Adds numeric scoring for each rule
- View:
user_violation_summaryranks user query quality
- PostgreSQL
- Advanced SQL (regex, scoring, joins, CTEs)
- GitHub for version control