mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Fix various infelicities in node functions.
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
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user