]> granicus.if.org Git - postgresql/commitdiff
Do not write out WCOs in Query
authorStephen Frost <sfrost@snowman.net>
Mon, 5 Oct 2015 11:38:58 +0000 (07:38 -0400)
committerStephen Frost <sfrost@snowman.net>
Mon, 5 Oct 2015 11:38:58 +0000 (07:38 -0400)
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
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c
src/backend/nodes/readfuncs.c
src/include/catalog/catversion.h
src/include/nodes/parsenodes.h

index 88dc0858707bdbe8be90e69abb3e23f26743ee38..0b4ab2310935024259ee87a1cef9455ee3806c19 100644 (file)
@@ -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;
 }
index 8f168335b002b912630860a6b17e56ffd578411a..aa6e10210d3359399cfebb4764c6de68cbeb1ddd 100644 (file)
@@ -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;
 }
index 61dbc75036c1678d008d07e1051b501563ab26f3..df7f6e165aa3b49d39a21f0fc60fb3ec0dd40707 100644 (file)
@@ -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);
index 2777cbb9c08e64c5b6a285bc4dfda551a1b1ce06..5802a73c7182aefba595592ad6d1c1dcaf7e52be 100644 (file)
@@ -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);
index 8afe5cc801a687cfe68459e9e1b1b9618f953ee9..4c08d2ef3c61fb228b078a7c472395b779d815b9 100644 (file)
@@ -53,6 +53,6 @@
  */
 
 /*                                                     yyyymmddN */
-#define CATALOG_VERSION_NO     201510042
+#define CATALOG_VERSION_NO     201510052
 
 #endif
index fdf19fac888007adb0fd0fb0a26bf4f226b543e5..9e1c48d8ca4e93d1d6befef1b8e37aa8c47053bb 100644 (file)
@@ -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;