- Upgrade to Postgres 18
- Rework PL/pgSQL parsing to use proper type definitions
- This is a substantial change to the hack-ish approach we've taken in
prior versions, instead of hacking our way to get the PL/pgSQL parser
to accept our constructs, imitate actual CREATE FUNCTION logic and
PL/pgSQL compilation for a function.
- This is a substantial change to the hack-ish approach we've taken in
- Deparser: Rework comment handling for PG 18 multi-statement strings
- Previously a subsequent statement in a multi-statement string would start
at the end of the prior statement, including any comments between. In
Postgres 18 this has changed, and such comments (and whitespace) are
excluded from the statements, the next statement starts at the first
non-whitespace (and non-comment) character.
- Previously a subsequent statement in a multi-statement string would start
- Deparser: Pass opts by reference/pointer instead of copying it
- This is a breaking change for callers, but seems more appropriate since
it avoids implicit shallow copying of the struct (which itself includes
pointer values, that would be retained in such a copy).
- This is a breaking change for callers, but seems more appropriate since
- Fingerprinting: Rework alias/schema name handling to match Postgres 18
% shasum -a 256 libpg_query-18.0.0*
6ad7783f272acfd116455c66a03298a0cac9a9168281df547969219112f0260f libpg_query-18.0.0.tar.gz
e7276c7111c4518561e7e2bce01acb0e74b1d1805e5d3817771bf334442e74e7 libpg_query-18.0.0.zip