From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
Subject: | pgsql: Remove artificial restrictions on which node types have out/read |
Date: | 2022-07-13 15:48:26 |
Message-ID: | E1oBebB-002cG9-DT@gemulon.postgresql.org |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Remove artificial restrictions on which node types have out/read funcs.
The initial version of gen_node_support.pl manually excluded most
utility statement node types from having out/read support, and
also some raw-parse-tree-only node types. That was mostly to keep
the output comparable to the old hand-maintained code. We'd like
to have out/read support for utility statements, for debugging
purposes and so that they can be included in new-style SQL functions;
so it's time to lift that restriction.
Most if not all of the previously-excluded raw-parse-tree-only node
types can appear in expression subtrees of utility statements, so
they have to be handled too.
We don't quite have full read support yet; certain custom_read_write
node types need to have their handwritten read functions implemented
before that will work.
Doing this allows us to drop the previous hack in _outQuery to not
dump the utilityStmt field in most cases, which means we no longer
need manually-maintained out/read functions for Query, so get rid
of those in favor of auto-generating them.
Fix a couple of omissions in gen_node_support.pl that are exposed
through having to handle more node types.
catversion bump forced because somebody was sloppy about the field
order in the manually-maintained Query out/read functions.
(Committers should note that almost all changes in parsenodes.h
are now grounds for a catversion bump.)
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/ff33a8c8874b43ec55d517ce0612ed79ad08a38a
Modified Files
--------------
src/backend/nodes/gen_node_support.pl | 39 ++++++-------------
src/backend/nodes/outfuncs.c | 73 -----------------------------------
src/backend/nodes/readfuncs.c | 50 ------------------------
src/include/catalog/catversion.h | 6 ++-
src/include/nodes/parsenodes.h | 10 ++---
5 files changed, 19 insertions(+), 159 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2022-07-13 16:57:09 | pgsql: Use wildcards instead of manually-maintained file lists in */nls |
Previous Message | Peter Eisentraut | 2022-07-13 12:54:35 | pgsql: Convert macros to static inline functions (itemptr.h) |