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/UPDATE
withoutWHERE
- Always-true logic (e.g.,
OR 1=1
) - Excessive JOINs (4+)
- Populates
flagged_issues
- Added
score
andrewrite_sql
to each issue - Suggests optimized versions of bad queries
- Adds numeric scoring for each rule
- View:
user_violation_summary
ranks user query quality
- PostgreSQL
- Advanced SQL (regex, scoring, joins, CTEs)
- GitHub for version control