PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL-Syntaxprüfung ohne Ausführen der Abfrage

Ich habe kürzlich ein Dienstprogramm geschrieben, um die Syntax von SQL für PostgreSQL statisch zu überprüfen. Es nutzt ecpg, den eingebetteten SQL-C-Präprozessor für Postgres, um die SQL-Syntax zu prüfen, also verwendet es genau denselben Parser, der in Postgres selbst eingebaut ist.

Sie können es auf Github ausprobieren:http://github.com/markdrago/pgsanity . Sie können die README-Datei überfliegen, um eine bessere Vorstellung davon zu bekommen, wie sie funktioniert, und Anweisungen zur Installation zu erhalten. Hier ist ein kurzes Beispiel, wie pgsanity verwendet werden kann:

$ 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"