]> granicus.if.org Git - postgresql/commitdiff
Fix various infelicities in node functions.
authorRobert Haas <rhaas@postgresql.org>
Wed, 18 Apr 2012 14:43:16 +0000 (10:43 -0400)
committerRobert Haas <rhaas@postgresql.org>
Wed, 18 Apr 2012 14:43:16 +0000 (10:43 -0400)
Mostly, this consists of adding support for fields which exist in the
structure but aren't handled by copy/equal/outfuncs; but the create
foreign table case can actually produce garbage output.

Noah Misch

src/backend/nodes/copyfuncs.c
src/backend/nodes/equalfuncs.c
src/backend/nodes/outfuncs.c

index c94799b15c7fbfb630241a8b472161afa5f85e6a..c58a1724cd1f4dab65d71672537ee4ded960f9f0 100644 (file)
@@ -2891,6 +2891,7 @@ _copyRenameStmt(const RenameStmt *from)
        RenameStmt *newnode = makeNode(RenameStmt);
 
        COPY_SCALAR_FIELD(renameType);
+       COPY_SCALAR_FIELD(relationType);
        COPY_NODE_FIELD(relation);
        COPY_NODE_FIELD(object);
        COPY_NODE_FIELD(objarg);
@@ -3047,6 +3048,7 @@ _copyViewStmt(const ViewStmt *from)
        COPY_NODE_FIELD(aliases);
        COPY_NODE_FIELD(query);
        COPY_SCALAR_FIELD(replace);
+       COPY_NODE_FIELD(options);
 
        return newnode;
 }
index 956421020c7cc148d63c600856f0ddf696ec4e33..5d3e2414518f53a7bed5e4423ab1753a10780617 100644 (file)
@@ -1306,6 +1306,7 @@ static bool
 _equalRenameStmt(const RenameStmt *a, const RenameStmt *b)
 {
        COMPARE_SCALAR_FIELD(renameType);
+       COMPARE_SCALAR_FIELD(relationType);
        COMPARE_NODE_FIELD(relation);
        COMPARE_NODE_FIELD(object);
        COMPARE_NODE_FIELD(objarg);
@@ -1438,6 +1439,7 @@ _equalViewStmt(const ViewStmt *a, const ViewStmt *b)
        COMPARE_NODE_FIELD(aliases);
        COMPARE_NODE_FIELD(query);
        COMPARE_SCALAR_FIELD(replace);
+       COMPARE_NODE_FIELD(options);
 
        return true;
 }
@@ -2182,6 +2184,7 @@ _equalColumnDef(const ColumnDef *a, const ColumnDef *b)
        COMPARE_NODE_FIELD(collClause);
        COMPARE_SCALAR_FIELD(collOid);
        COMPARE_NODE_FIELD(constraints);
+       COMPARE_NODE_FIELD(fdwoptions);
 
        return true;
 }
index 594b3fdea85c571bd04e2c07a8da20fffce1af7a..f713773efb40b75d6e93b155b5fcdba73eae60a7 100644 (file)
@@ -1927,11 +1927,12 @@ _outPlannerParamItem(StringInfo str, const PlannerParamItem *node)
  *
  *****************************************************************************/
 
+/*
+ * print the basic stuff of all nodes that inherit from CreateStmt
+ */
 static void
-_outCreateStmt(StringInfo str, const CreateStmt *node)
+_outCreateStmtInfo(StringInfo str, const CreateStmt *node)
 {
-       WRITE_NODE_TYPE("CREATESTMT");
-
        WRITE_NODE_FIELD(relation);
        WRITE_NODE_FIELD(tableElts);
        WRITE_NODE_FIELD(inhRelations);
@@ -1943,12 +1944,20 @@ _outCreateStmt(StringInfo str, const CreateStmt *node)
        WRITE_BOOL_FIELD(if_not_exists);
 }
 
+static void
+_outCreateStmt(StringInfo str, const CreateStmt *node)
+{
+       WRITE_NODE_TYPE("CREATESTMT");
+
+       _outCreateStmtInfo(str, (const CreateStmt *) node);
+}
+
 static void
 _outCreateForeignTableStmt(StringInfo str, const CreateForeignTableStmt *node)
 {
        WRITE_NODE_TYPE("CREATEFOREIGNTABLESTMT");
 
-       _outCreateStmt(str, (const CreateStmt *) &node->base);
+       _outCreateStmtInfo(str, (const CreateStmt *) node);
 
        WRITE_STRING_FIELD(servername);
        WRITE_NODE_FIELD(options);
@@ -2088,7 +2097,7 @@ _outColumnDef(StringInfo str, const ColumnDef *node)
        WRITE_BOOL_FIELD(is_local);
        WRITE_BOOL_FIELD(is_not_null);
        WRITE_BOOL_FIELD(is_from_type);
-       WRITE_INT_FIELD(storage);
+       WRITE_CHAR_FIELD(storage);
        WRITE_NODE_FIELD(raw_default);
        WRITE_NODE_FIELD(cooked_default);
        WRITE_NODE_FIELD(collClause);