Re: Extending outfuncs support to utility statements

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, pgsql-hackers@lists.postgresql.org
Date: 2022-09-22T17:01:03Z
Lists: pgsql-hackers
On 2022-09-22 12:48:47 -0400, Tom Lane wrote:
> I wrote:
> > I think this is the issue Peter mentioned about needing to distinguish
> > between empty strings and NULL strings.  We're going to need to rethink
> > the behavior of pg_strtok() a bit to fix that.
> 
> After staring at the code a bit, I think we don't need to touch
> pg_strtok() per se.  I propose that this can be resolved with changes
> at the next higher level.  Let's make outToken print NULL as <> as
> it always has, but print an empty string as "" (two double quotes).
> If the raw input string is two double quotes, print it as \"" to
> disambiguate.  This'd require a catversion bump when committed,
> but I don't think there are any showstopper problems otherwise.

Makes sense to me.



Commits

  1. Avoid copying undefined data in _readA_Const().

  2. Enable WRITE_READ_PARSE_PLAN_TREES of rewritten utility statements

  3. Implement WRITE_READ_PARSE_PLAN_TREES for raw parse trees

  4. Don't lose precision for float fields of Nodes.

  5. Fix write/read of empty string fields in Nodes.

  6. Add read support for some missing raw parse nodes

  7. Fix reading of BitString nodes

  8. Fix reading of most-negative integer value nodes