Expand description
pg_parse
PostgreSQL parser that uses the actual PostgreSQL server source to parse SQL queries and return the internal PostgreSQL parse tree.
Warning! This library is in early stages of development so any APIs exposed are subject to change.
Getting started
Add the following to your Cargo.toml
[dependencies]
pg_parse = "0.9"
Example: Parsing a query
use pg_parse::ast::Node;
let result = pg_parse::parse("SELECT * FROM contacts");
assert!(result.is_ok());
let result = result.unwrap();
assert!(matches!(*&result[0], Node::SelectStmt(_)));
// We can also convert back to a string
assert_eq!(result[0].to_string(), "SELECT * FROM contacts");
Modules
Generated structures representing the PostgreSQL AST.
Structs
Represents the resulting fingerprint containing both the raw integer form as well as the
corresponding 16 character hex value.
Enums
Error structure representing the basic error scenarios for
pg_parse
.Functions
Fingerprints the given SQL statement. Useful for comparing parse trees across different implementations
of
libpg_query
.Normalizes the given SQL statement, returning a parametized version.
Parses the given SQL statement into the given abstract syntax tree.
An experimental API which parses a PLPGSQL function. This currently returns the raw JSON structure.
Type Definitions
Convenient Result alias for returning
pg_parse::Error
.