- Upgrade to libpg_query 17-6.2.2
- Add
pg_query::summaryfunction- This uses the new
pg_query_summaryC function that significantly improves performance when you need metadata (like a list of referenced tables) but don't need the full parse tree.
- This uses the new
NodeEnum: Improve performance when iterating over parse tree usingnodesandnodes_mut- Fix build caching issues in
build.rsscript
NodeEnum: SupportMERGEqueriesNodeEnum: SupportCALL fn()queriesNodeEnum: Iterate overIndexElemnodes- Derive
serde::Serializeforprotobuf::ParseResult
- Upgrade to libpg_query 17-6.1.0
- Update to Postgres 17.4, and add recent patches scheduled for Postgres 17.5 (not yet released)
- Notably, this pulls in support for macOS 15.4 which defines strchrnul in its standard library, fixing builds on up-to-date macOS versions.
- Deparser improvements
- Add parenthesis around AT LOCAL / AT TIMEZONE if needed
- Correctness improvements related to expressions and function calls
- Update to Postgres 17.4, and add recent patches scheduled for Postgres 17.5 (not yet released)
- Upgrade prost dependency to fix build issues on Linux
ParseResult: maketablesandfunctionsfields public
- Upgrade to libpg_query 17-6.0.0
- Updates to the Postgres 17 parser
- Deparser improvements:
- Add support for deparsing
JSON_TABLE,JSON_QUERY,JSON_EXISTS,JSON_VALUE - Add support for deparsing
JSON,JSON_SCALAR,JSON_SERIALIZE - Add support for deparsing
COPY ... FORCE_NULL(*) - Add support for deparsing
ALTER COLUMN ... SET EXPRESSION AS - Add support for deparsing
SET STATISTICS DEFAULT - Add support for deparsing
SET ACCESS METHOD DEFAULT - Add support for deparsing
... AT LOCAL - Add support for deparsing
merge_action() - Add support for deparsing
MERGE ... RETURNING - Add support for deparsing
NOT MATCHED [ BY TARGET ]
- Add support for deparsing
- Make
ParseResultstruct public and implementDebug
- Update to libpg_query 16-5.1.0
- Add support for running on Windows
- Add support for compiling on 32-bit systems
- Always build C library using "cc" crate
- Add
filter_columnsfor getting columns that a query filters by- This returns the table name (if present) and column name for every column that's referenced in a JOIN or WHERE clause.
- Align versioning scheme with that of other pg_query libraries (which is to generally aim to match the libpg_query version)
- Upgrade to libpg_query 5.0.0
- Updates to the Postgres 16 parser
- Multiple deparser improvements
- Update bindgen to 0.66.1 to remove transitive dependency on atty and resolve build errors #28
- Upgrade to libpg_query 4.2.3
- Fix builds when compiling with
glibc >= 2.38libpg_query#203 - Deparser: Add support for COALESCE and other expressions in LIMIT clause libpg_query#199
- Fix builds when compiling with
- Upgrade to libpg_query 4.2.2 (Postgres 13 -> 15)
- Improve
ParseResult::tables()to find tables incastexpressions
- Adds ParseResult struct with convenience functions to get table and function references
- Adds ability to deparse a mutated query AST back into a string
- Adds context-aware query truncation
- Adds Ruby test suite to ensure feature parity
- Adds ability to split multi-query strings (#6)
- Fixes memory leaks in fingerprint and normalize (#8)
This crate was previously maintained by @paupino, who now maintains a slimmed down crate: https://github.com/paupino/pg_parse