Skip to content

omkar2503/sql-sherlock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ•΅οΈ SQL Sherlock

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.


πŸš€ Project Objective

To create a meta-SQL engine that:

  • Flags bad SQL practices (e.g. SELECT *, unsafe DELETE, YEAR() filters)
  • Suggests cleaner SQL rewrites
  • Scores query violations and ranks users
  • Generates views and reports for SQL quality auditing

πŸ“‚ Project Structure

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


βœ… Step-by-Step Progress

βœ… Step 1: Schema & Setup

  • Tables for users, queries_raw, and flagged_issues
  • Inserted sample SQL queries with common violations

βœ… Step 2: Violation Rule Engine

  • Detects:
    • SELECT * usage
    • Non-SARGable filters (e.g., YEAR(date))
    • Unsafe DELETE/UPDATE without WHERE
    • Always-true logic (e.g., OR 1=1)
    • Excessive JOINs (4+)
  • Populates flagged_issues

βœ… Step 3: Rewrites & Severity Scoring

  • Added score and rewrite_sql to each issue
  • Suggests optimized versions of bad queries
  • Adds numeric scoring for each rule
  • View: user_violation_summary ranks user query quality

πŸ›  Tech Stack

  • PostgreSQL
  • Advanced SQL (regex, scoring, joins, CTEs)
  • GitHub for version control

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published