postgres.git / summary / log / commit / refs

commit    4158cc3793fe0e074dcb58e91103344c8ffcd6df
Author:   Stephen Frost <sfrost@snowman.net>
Date:     Mon Oct 05 11:38:58 2015 +0000

    Do not write out WCOs in Query
    
    The WithCheckOptions list in Query are only populated during rewrite and
    do not need to be written out or read in as part of a Query structure.
    
    Further, move WithCheckOptions to the bottom and add comments to clarify
    that it is only populated during rewrite.
    
    Back-patch to 9.5 with a catversion bump, as we are still in alpha.


src/backend/nodes/copyfuncs.c | 2 +- src/backend/nodes/equalfuncs.c | 2 +- src/backend/nodes/outfuncs.c | 1 - src/backend/nodes/readfuncs.c | 1 - src/include/catalog/catversion.h | 2 +- src/include/nodes/parsenodes.h | 6 ++++-- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index 88dc0858707..0b4ab231093 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -2725,7 +2725,6 @@ _copyQuery(const Query *from) COPY_NODE_FIELD(rtable); COPY_NODE_FIELD(jointree); COPY_NODE_FIELD(targetList); - COPY_NODE_FIELD(withCheckOptions); COPY_NODE_FIELD(onConflict); COPY_NODE_FIELD(returningList); COPY_NODE_FIELD(groupClause); @@ -2739,6 +2738,7 @@ _copyQuery(const Query *from) COPY_NODE_FIELD(rowMarks); COPY_NODE_FIELD(setOperations); COPY_NODE_FIELD(constraintDeps); + COPY_NODE_FIELD(withCheckOptions); return newnode; } diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 8f168335b00..aa6e10210d3 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -906,7 +906,6 @@ _equalQuery(const Query *a, const Query *b) COMPARE_NODE_FIELD(rtable); COMPARE_NODE_FIELD(jointree); COMPARE_NODE_FIELD(targetList); - COMPARE_NODE_FIELD(withCheckOptions); COMPARE_NODE_FIELD(onConflict); COMPARE_NODE_FIELD(returningList); COMPARE_NODE_FIELD(groupClause); @@ -920,6 +919,7 @@ _equalQuery(const Query *a, const Query *b) COMPARE_NODE_FIELD(rowMarks); COMPARE_NODE_FIELD(setOperations); COMPARE_NODE_FIELD(constraintDeps); + COMPARE_NODE_FIELD(withCheckOptions); return true; } diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 61dbc75036c..df7f6e165aa 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -2397,7 +2397,6 @@ _outQuery(StringInfo str, const Query *node) WRITE_NODE_FIELD(rtable); WRITE_NODE_FIELD(jointree); WRITE_NODE_FIELD(targetList); - WRITE_NODE_FIELD(withCheckOptions); WRITE_NODE_FIELD(onConflict); WRITE_NODE_FIELD(returningList); WRITE_NODE_FIELD(groupClause); diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c index 2777cbb9c08..5802a73c718 100644 --- a/src/backend/nodes/readfuncs.c +++ b/src/backend/nodes/readfuncs.c @@ -244,7 +244,6 @@ _readQuery(void) READ_NODE_FIELD(rtable); READ_NODE_FIELD(jointree); READ_NODE_FIELD(targetList); - READ_NODE_FIELD(withCheckOptions); READ_NODE_FIELD(onConflict); READ_NODE_FIELD(returningList); READ_NODE_FIELD(groupClause); diff --git a/src/include/catalog/catversion.h b/src/include/catalog/catversion.h index 8afe5cc801a..4c08d2ef3c6 100644 --- a/src/include/catalog/catversion.h +++ b/src/include/catalog/catversion.h @@ -53,6 +53,6 @@ */ /* yyyymmddN */ -#define CATALOG_VERSION_NO 201510042 +#define CATALOG_VERSION_NO 201510052 #endif diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index fdf19fac888..9e1c48d8ca4 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -130,8 +130,6 @@ typedef struct Query List *targetList; /* target list (of TargetEntry) */ - List *withCheckOptions; /* a list of WithCheckOption's */ - OnConflictExpr *onConflict; /* ON CONFLICT DO [NOTHING | UPDATE] */ List *returningList; /* return-values list (of TargetEntry) */ @@ -158,6 +156,10 @@ typedef struct Query List *constraintDeps; /* a list of pg_constraint OIDs that the query * depends on to be semantically valid */ + + List *withCheckOptions; /* a list of WithCheckOption's, which are + * only added during rewrite and therefore + * are not written out as part of Query. */ } Query; [parent: 2596d705bdc4]