Crate pg_query[][src]

pg_query   Build Status Latest Version Docs Badge

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_query = "0.1"

Example: Parsing a query

use pg_query::ast::Node;

let result = pg_query::parse("SELECT * FROM contacts");
assert!(result.is_ok());
let result = result.unwrap();
assert!(matches!(*&result[0], Node::SelectStmt(_)));

Modules

ast

Generated structures representing the PostgreSQL AST.

Structs

Fingerprint

Represents the resulting fingerprint containing both the raw integer form as well as the corresponding 16 character hex value.

Enums

Error

Error structure representing the basic error scenarios for pg_query.

Functions

fingerprint

Fingerprints the given SQL statement. Useful for comparing parse trees across different implementations of libpg_query.

normalize

Normalizes the given SQL statement, returning a parametized version.

parse

Parses the given SQL statement into the given abstract syntax tree.

parse_plpgsql

An experimental API which parses a PLPGSQL function. This currently returns the raw JSON structure.

Type Definitions

Result

Convenient Result alias for returning pg_query::Error.