pgsql: Introduce extensible node types. - Mailing list pgsql-committers

From Robert Haas
Subject pgsql: Introduce extensible node types.
Date
Msg-id E1aUErb-00045e-NP@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Introduce extensible node types.

An extensible node is always tagged T_Extensible, but the extnodename
field identifies it more specifically; it may also include arbitrary
private data.  Extensible nodes can be copied, tested for equality,
serialized, and deserialized, but the core system doesn't know
anything about them otherwise.  Some extensions may find it useful to
include these nodes in fdw_private or custom_private lists in lieu of
arm-wrestling their data into a format that the core code can
understand.

Along the way, so as not to burden the authors of such extensible
node types too much, expose the functions for writing serialized
tokens, and for serializing and deserializing bitmapsets.

KaiGai Kohei, per a design suggested by me.  Reviewed by Andres Freund
and by me, and further edited by me.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/bcac23de73b89b001fbc628d84471a392e928d1c

Modified Files
--------------
src/backend/nodes/Makefile     |  2 +-
src/backend/nodes/copyfuncs.c  | 29 +++++++++++++
src/backend/nodes/equalfuncs.c | 27 +++++++++++++
src/backend/nodes/extensible.c | 92 ++++++++++++++++++++++++++++++++++++++++++
src/backend/nodes/outfuncs.c   | 40 ++++++++++++++++++
src/backend/nodes/readfuncs.c  | 40 ++++++++++++++++++
src/include/nodes/extensible.h | 72 +++++++++++++++++++++++++++++++++
src/include/nodes/nodes.h      | 12 ++++++
8 files changed, 313 insertions(+), 1 deletion(-)


pgsql-committers by date:

Previous
From: Robert Haas
Date:
Subject: pgsql: Make builtin lwlock tranche names consistent.
Next
From: Tom Lane
Date:
Subject: pgsql: Add missing "static" qualifier.