Ik heb onlangs een hulpprogramma geschreven om de syntaxis van SQL voor PostgreSQL statisch te controleren. Het maakt gebruik van ecpg, de ingebedde SQL C-preprocessor voor postgres, om de SQL-syntaxis te controleren, dus het gebruikt exact dezelfde parser die in Postgres zelf is ingebouwd.
Je kunt het bekijken op github:http://github.com/markdrago/pgsanity . U kunt de README een korte samenvatting geven om een beter idee te krijgen van hoe het werkt en om instructies te krijgen voor het installeren ervan. Hier is een kort voorbeeld van hoe pgsanity kan worden gebruikt:
$ 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"