Awesome
pg_query-ocaml
Bindings for pg_query for parsing PostgreSQL. Documentation is here.
Usage
This provides a library that can be used in OCaml code like so:
let statement = "SELECT user, email FROM users WHERE id = 7"
let () =
match Pg_query.parse statement with
| Ok parse_tree -> use parse_tree
| Error error_message -> use error_message
and a command-line utility:
$ echo "SELECT * FROM users" >> good.sql
$ echo "SELECT * FFROM users" >> bad.sql
$ pg_check good.sql bad.sql
[{"RawStmt": {"stmt": {"SelectStmt": {"targetList": [{"ResTarget": {"val": {"ColumnRef": {"fields": [{"A_Star": {}}], "location": 7}}, "location": 7}}], "fromClause": [{"RangeVar": {"relname": "users", "inh": true, "relpersistence": "p", "location": 14}}], "op": 0}}}}]
syntax error at or near "FFROM"