BUG #18340: BitString may break nodetoString() conversion for a raw parse tree
The Post Office <noreply@postgresql.org>
From: PG Bug reporting form <noreply@postgresql.org>
To: pgsql-bugs@lists.postgresql.org
Cc: exclusion@gmail.com
Date: 2024-02-13T09:00:00Z
Lists: pgsql-bugs
The following bug has been logged on the website: Bug reference: 18340 Logged by: Alexander Lakhin Email address: exclusion@gmail.com PostgreSQL version: 16.2 Operating system: Ubuntu 22.04 Description: When a server compiled with -DWRITE_READ_PARSE_PLAN_TREES, the following query: SELECT x' 0'; produces: ERROR: did not find '}' at end of input node Observed starting from commit 40ad8f9de, which implemented WRITE_READ_PARSE_PLAN_TREES for raw parse trees. More interesting results may be obtained (e.g., WARNING: outfuncs/readfuncs failed to produce an equal raw parse tree ), but with raw trees only, not with node trees stored in the database, considering core code. Still codesearch.debian.net shows that nodeToString() used by several extensions: pg_qual_stats, pgpool2, hypopg, pglogical; perhaps some of them use that conversion unsafely (without processing a node with transformExpr() or so).
Commits
-
Use a safer outfuncs/readfuncs representation for BitStrings.
- f15d01cb5dbd 16.3 landed
- 0736a8ef6f0e 17.0 landed
-
Implement WRITE_READ_PARSE_PLAN_TREES for raw parse trees
- 40ad8f9deed2 16.0 cited