Jeg skrev for nylig et værktøj til statisk at kontrollere SQL-syntaksen for PostgreSQL. Den udnytter ecpg, den indlejrede SQL C-forbehandling til postgres, til at kontrollere SQL-syntaksen, så den bruger nøjagtig den samme parser, som er indbygget i Postgres selv.
Du kan tjekke det ud på github:http://github.com/markdrago/pgsanity . Du kan give README en skimning for at få en bedre ide om, hvordan den fungerer, og for at få vejledning i, hvordan den installeres. Her er et kort eksempel på, hvordan pgsanity kan bruges:
$ pgsanity good1.sql good2.sql bad.sql
bad.sql: line 1: ERROR: syntax error at or near "bogus_token"
$ find -name '*.sql' | xargs pgsanity
./sql/bad1.sql: line 59: ERROR: syntax error at or near ";"
./sql/bad2.sql: line 41: ERROR: syntax error at or near "insert"
./sql/bad3.sql: line 57: ERROR: syntax error at or near "update"