Free · Open source

OMOP SQL Validator

Catch silent OMOP CDM v5.4 bugs before they run. Static analysis against 154 rules covering standard-concept enforcement, hierarchy expansion, join paths, and temporal logic.

Your SQL stays in this session — nothing is logged or stored.
Try:

SQL query to check — Press ⌘/Ctrl + to validate

Paste a query or pick an example above, then click Validate SQL.

Frequently asked

What does FastSSV check?

FastSSV runs 154 static rules against your SQL, targeting the silent failures you can't catch with a linter: missing standard_concept = 'S' enforcement, wrong concept_ancestor rollup direction, temporal logic outside observation periods, joins that don't align with OMOP CDM v5.4 foreign keys, type mismatches, and more.

See /rules for the full live list.

Is my SQL sent anywhere?

The query is POSTed to this service's validator process and parsed in memory. Only a SHA-256 hash of the SQL plus counts (rule IDs fired, duration) are logged — never the SQL body itself. No database is contacted, no data is persisted between requests.

Which SQL dialects are supported?

PostgreSQL and T-SQL / SQL Server are both supported. Use the dialect dropdown to force one, or leave it on Auto-detect — FastSSV looks for T-SQL indicators (@vars, GETDATE(), DATEDIFF(day, …), TOP N, etc.) and picks the right parser.

Can I use this programmatically?

Yes. The same validator backs a CLI (pip install fastssv) and a JSON API — POST /v1/validate with {sql, dialect, strict} returns per-query results with query_index attribution. Swagger UI lives at /docs.

Found a bug or have a feature request?

FastSSV is open source and tracked on GitHub. If a rule fires on a query you believe is correct, or a real bug slipped through, please file an issue — a minimal failing SQL snippet and the dialect are enough to get it reproduced.

Open an issue on GitHub →