NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1569 most downloaded on PyPI
PostgreSQL Languages AST and statements prettifier
Last release today
04 Oct 2026
Release timing varies
gaps range from 9 days to 7 months
Nearly every release is documented
notes for 52 of 53 stable releases
1 version withdrawn
withdrawn after publishing
4 years old
55 releases · first in 2023
One column per quarter.
Nothing published for this version
Fix setuptools vulnerability noticed by GH dependabot.
Fix dependency issue that broke CI on Github.
Fix setuptools vulnerability noticed by GH dependabot.
No visible changes, merge with v7 to fix WindowDef printer.
No visible changes, merge with v7 to fix WindowDef printer.
No visible changes, merge with v7 to fix missing postgres_deparse.h in the sdist archive.
No visible changes, merge with v7 to fix missing postgres_deparse.h in the sdist archive.
Fix CI configuration defect that impeded proper wheels build
Fix CI configuration defect that impeded proper wheels build
I really wanted to add support for PLPgSQL, but I cannot delay releasing a final version anymore.
I really wanted to add support for PLPgSQL, but I cannot delay releasing a final version anymore.
Development version 8.0.dev0
Development version 8.0.dev0
No visible changes with respect to v7, apart from the support for new/revised syntaxes of PostgreSQL 18
Improve type hints (PR #191), thanks to Alexander Macdonald
Replace usage of deprecated argparse.FileType
Replace usage of deprecated argparse.FileType
Fix disalignment between pyproject.toml and requirements.txt
Build wheels for Windows ARM64 (backport of PR #210__), thanks to Nikhil Dabas
Fix WindowDef printer, properly emitting EXCLUDE clauses (PR #201__), thanks to Andrew Chen
Fix WindowDef printer, properly emitting EXCLUDE clauses (PR #201), thanks to Andrew Chen
Include libpg_query's postgres_deparse.h header in the sdist archive (issue #199__)
Include libpg_query's postgres_deparse.h header in the sdist archive (issue #199)
Generate Python 3.15 wheels, thanks to cibuildwheel 4.1.0__
Generate Python 3.15 wheels, thanks to cibuildwheel 4.1.0
Preserve SQL-syntax function roundtrips (PR #198__), thanks to Alexander Macdonald
Preserve SQL-syntax function roundtrips (PR #198), thanks to Alexander Macdonald
Fix split comment slices (PR #192__), thanks to Alexander Macdonald
Fix split comment slices (PR #192), thanks to Alexander Macdonald
Implement visitor Add action as documented (PR #193), thanks to Alexander Macdonald
Fix RawStmt stmt_len with Unicode statements (PR #194), thanks to Alexander Macdonald
Fix string literal splitting on trailing backslash (PR #195), thanks to Alexander Macdonald
Define default visit method for visitor fixing typing inconsistency (PR #188), thanks to Bolaji Wahab
Remove extra empty line separating CTE queries (issue #187)
Double quote the name of function when it is a column-reserverd keyword (issue #189)
Fix compatibility with Cython 3.1.x (issue #183__), thanks to Christoph Berg for the patch
Fix compatibility with Cython 3.1.x (issue #183), thanks to Christoph Berg for the patch
__ https://github.com/cython/cython/blob/master/CHANGES.rst#324-2026-01-04
Use Cython 3.2.4
Upgrade libpg_query to 17-6.2.2
Properly recognize ATOMIC SQL functions (issue #182)
Add basic type hints (PR #178), thanks to Pierce Freeman
Expose pg_query_deparse_protobuf_opts() instead of its pg_query_deparse_protobuf() wrapper
Expose pg_query_deparse_comments_for_query()
__ https://github.com/lelit/pglast/issues/180
Use Cython 3.2.3
Upgrade libpg_query to 17-6.2.0
Fix AlterTableCmd printer, to handle ALTER TABLE a ALTER b SET STATISTICS DEFAULT
Fix AlterTableCmd printer, to handle ALTER TABLE a ALTER b SET STATISTICS DEFAULT
Use Cython 3.1.6
Add an empty line between a SELECT foo UNION SELECT bar and its ORDER BY/LIMIT/OFFSET clause, to emphasize the fact that it applies to the whole state
Add an empty line between a SELECT foo UNION SELECT bar and its ORDER BY/LIMIT/OFFSET clause, to emphasize the fact that it applies to the whole statement, not to the "right" subquery.
Fix prettification of single keyword statements (PR #173__), thanks to Vlastimil Zíma
Fix prettification of single keyword statements (PR #173), thanks to Vlastimil Zíma
Improve WithClause printer, when there is more than one CTE
Avoid spurious parenthesis around expression terms in some common cases like 1 + 2 + 3 + 4
Use macOS 14 to build arm 64 wheels and macOS 15 to build x86-64 wheels, given that GH is going to drop macOS 13 runners in a couple of months
Generate Python 3.14 wheels, thanks to cibuildwheel 3.2.1
Nothing visible, fix GitHub Actions CI environment
Nothing visible, fix GitHub Actions CI environment
Upgrade libpg_query to 17-6.1.0__
Upgrade libpg_query to 17-6.1.0
- Merge with Version 6_
Merge with `Version 6`_
- Merge with Version 6_
Merge with `Version 6`_
Handle the SET configuration_parameter FROM CURRENT case in the VariableSetStmt printer (PR #168__), thanks to Bolaji Wahab
Handle the SET configuration_parameter FROM CURRENT case in the VariableSetStmt printer (PR #168), thanks to Bolaji Wahab
Handle timestamp AT LOCAL expression, new in PG17
Merge with `Version 6`_
Handle timestamp AT LOCAL expression, new in PG17
- Merge with Version 6_
Merge with `Version 6`_
- No visible changes
No visible changes
No visible changes, just a workaround to a strange CI Windows-only failure on a test introduced by v6.15
No visible changes, just a workaround to a strange CI Windows-only failure on a test introduced by v6.15
Escape occurrences of C-style end markers in SQL-style comments, when changing comment style in the RawStream (issue #170__)
Escape occurrences of C-style end markers in SQL-style comments, when changing comment style in the RawStream (issue #170)
Handle the SET configuration_parameter FROM CURRENT case in the VariableSetStmt printer (backport of PR #168__)
Handle the SET configuration_parameter FROM CURRENT case in the VariableSetStmt printer (backport of PR #168)
Better fix to the x AT TIME ZONE foo glitch, v6.12 solution was incomplete
Better fix to the x AT TIME ZONE foo glitch, v6.12 solution was incomplete
Properly wrap x AT TIME ZONE foo in parens when it is the argument of a DEFAULT constraint
Properly wrap x AT TIME ZONE foo in parens when it is the argument of a DEFAULT constraint
Remove spurious trailing space in the ConstrTypePrinter.CONSTR_IDENTITY and the Constraint printers (issue #165__)
Remove spurious trailing space in the ConstrTypePrinter.CONSTR_IDENTITY and the Constraint printers (issue #165)
Upgrade libpg_query to 16-5.2.0__
Upgrade libpg_query to 16-5.2.0
Fix regression introduced by recent modification to the CommonTableExpr printer that impacted on the RawStream renderer (issue #163__)
Fix regression introduced by recent modification to the CommonTableExpr printer that impacted on the RawStream renderer (issue #163)
Expose the RawStream renderer in the CLI tool with a new --normalize option
Upgrade libpg_query to not-yet-publicly-released commit__, to solve an issue related to plpgsql (issue #156__)
Generate wheels on PyPI using Python 3.13.0 final release, thanks to cibuildwheel 2.21.3__
Generate wheels on PyPI using Python 3.13.0 final release, thanks to cibuildwheel 2.21.3
Improve CommonTableExpr printer, reducing horizontal space waste
Make recently introduced doctest related to issue #88 work on different Python versions
Make recently introduced doctest related to issue #88 work on different Python versions
Fix glitch when using the --preserve-comments flag (issue #159__)
Fix issue with deserialization of deeply nested ASTs (issue #153__)
Fix SEQUENCE NAME in create_seq_stmt_def_elem (PR #151__), thanks to orages
Fix SEQUENCE NAME in create_seq_stmt_def_elem (PR #151), thanks to orages
Generate wheels on PyPI using Python 3.13.0rc1 release, thanks to cibuildwheel 2.20.0
Use Cython 3.0.11
Almost no-op release to fix issue #144__, producing correct wheels for macOS arm64
Almost no-op release to fix issue #144, producing correct wheels for macOS arm64
Inherit fix for issue #143__ from version 5_
Inherit fix for issue #143 from `version 5`_
- Produce wheels for macOS arm64
Produce wheels for macOS arm64
Fix issue #143__, affecting AlterOwnerStmt and RenameStmt printers
Fix issue #143, affecting AlterOwnerStmt and RenameStmt printers
Fix issue #142__, a glitch that affected 32-bit systems
Fix issue #142, a glitch that affected 32-bit systems
__ https://github.com/cython/cython/blob/master/CHANGES.rst#307-2023-12-19
Use Cython 3.0.7
Update libpg_query to 15-4.2.4
Fix issue #138__, a defect that hindered the creation of AST nodes that act as *markers*, (currently A_Star and CheckPointStmt), that do not carry any
Fix issue #138, a defect that hindered the creation of AST nodes that act as markers, (currently A_Star and CheckPointStmt), that do not carry any other information
Use Cython 3.0.6
Handle the ENABLE TRIGGER ALL in AlterTableCmd
Fix issue #136, a regression introduced by “Avoid overly abundancy of parentheses in expressions”
__ https://github.com/cython/cython/blob/master/CHANGES.rst#303-2023-10-05
Use Cython 3.0.3
Produce wheels using final Python 3.12 release, thanks to cibuildwheel 2.16.2
Improve documentation, adding parser.Displacements, parser.scan and parser.split examples (issue #128__)
Improve documentation, adding parser.Displacements, parser.scan and parser.split examples (issue #128)
Update libpg_query to 15-4.2.3__
Update libpg_query to 15-4.2.3
Update libpg_query to 15-4.2.1__
Update libpg_query to 15-4.2.1
- Merge version 4.2__ changes __ 4.2 (2023-02-27)_
Merge `version 4.2`__ changes
- No changes
No changes
Your coding agent can read these notes before it upgrades. Set up the MCP server →