Saya baru-baru ini menulis sebuah utilitas untuk memeriksa sintaks SQL untuk PostgreSQL secara statis. Ini memanfaatkan ecpg, preprosesor SQL C tertanam untuk postgres, untuk memeriksa sintaks SQL, sehingga menggunakan parser yang sama persis yang dibangun di Postgres itu sendiri.
Anda dapat memeriksanya di github:http://github.com/markdrago/pgsanity . Anda dapat membaca sekilas README untuk mendapatkan ide yang lebih baik tentang cara kerjanya dan untuk mendapatkan petunjuk tentang cara menginstalnya. Berikut adalah contoh singkat bagaimana pgsanity dapat digunakan:
$ 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"