On Mon, Apr 16, 2012 at 06:25:15AM -0400, Noah Misch wrote:
> I observed these inconsistencies in node support functions:

A fresh audit found the attached problems new in 9.5[1].  Most are cosmetic
INT/UINT or field order corrections.  The non-cosmetic changes involve
CustomPath, CustomScan, and CreatePolicyStmt.  Feature committers, if the
existing treatments (ignore custom_plans/custom_paths fields; copy/compare
"cmd" string pointer as a scalar) were deliberate, please let me know.

Thanks,
nm

[1] The _equalCreateEventTrigStmt() cosmetic change is relevant as far back as
9.3, but I won't back-patch it further than the others (9.5).
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c
index 7248440..1c8425d 100644
--- a/src/backend/nodes/copyfuncs.c
+++ b/src/backend/nodes/copyfuncs.c
@@ -647,6 +647,7 @@ _copyCustomScan(const CustomScan *from)
         * copy remainder of node
         */
        COPY_SCALAR_FIELD(flags);
+       COPY_NODE_FIELD(custom_plans);
        COPY_NODE_FIELD(custom_exprs);
        COPY_NODE_FIELD(custom_private);
        COPY_NODE_FIELD(custom_scan_tlist);
@@ -1925,9 +1926,9 @@ _copyOnConflictExpr(const OnConflictExpr *from)
        COPY_SCALAR_FIELD(action);
        COPY_NODE_FIELD(arbiterElems);
        COPY_NODE_FIELD(arbiterWhere);
+       COPY_SCALAR_FIELD(constraint);
        COPY_NODE_FIELD(onConflictSet);
        COPY_NODE_FIELD(onConflictWhere);
-       COPY_SCALAR_FIELD(constraint);
        COPY_SCALAR_FIELD(exclRelIndex);
        COPY_NODE_FIELD(exclRelTlist);
 
@@ -4082,7 +4083,7 @@ _copyCreatePolicyStmt(const CreatePolicyStmt *from)
 
        COPY_STRING_FIELD(policy_name);
        COPY_NODE_FIELD(table);
-       COPY_SCALAR_FIELD(cmd);
+       COPY_STRING_FIELD(cmd);
        COPY_NODE_FIELD(roles);
        COPY_NODE_FIELD(qual);
        COPY_NODE_FIELD(with_check);
diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c
index 6597dbc..1d6c43c 100644
--- a/src/backend/nodes/equalfuncs.c
+++ b/src/backend/nodes/equalfuncs.c
@@ -759,9 +759,9 @@ _equalOnConflictExpr(const OnConflictExpr *a, const 
OnConflictExpr *b)
        COMPARE_SCALAR_FIELD(action);
        COMPARE_NODE_FIELD(arbiterElems);
        COMPARE_NODE_FIELD(arbiterWhere);
+       COMPARE_SCALAR_FIELD(constraint);
        COMPARE_NODE_FIELD(onConflictSet);
        COMPARE_NODE_FIELD(onConflictWhere);
-       COMPARE_SCALAR_FIELD(constraint);
        COMPARE_SCALAR_FIELD(exclRelIndex);
        COMPARE_NODE_FIELD(exclRelTlist);
 
@@ -1868,8 +1868,8 @@ _equalCreateEventTrigStmt(const CreateEventTrigStmt *a, 
const CreateEventTrigStm
 {
        COMPARE_STRING_FIELD(trigname);
        COMPARE_STRING_FIELD(eventname);
-       COMPARE_NODE_FIELD(funcname);
        COMPARE_NODE_FIELD(whenclause);
+       COMPARE_NODE_FIELD(funcname);
 
        return true;
 }
@@ -2074,7 +2074,7 @@ _equalCreatePolicyStmt(const CreatePolicyStmt *a, const 
CreatePolicyStmt *b)
 {
        COMPARE_STRING_FIELD(policy_name);
        COMPARE_NODE_FIELD(table);
-       COMPARE_SCALAR_FIELD(cmd);
+       COMPARE_STRING_FIELD(cmd);
        COMPARE_NODE_FIELD(roles);
        COMPARE_NODE_FIELD(qual);
        COMPARE_NODE_FIELD(with_check);
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index 86f3214..068724e 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -341,7 +341,7 @@ _outModifyTable(StringInfo str, const ModifyTable *node)
        WRITE_NODE_FIELD(arbiterIndexes);
        WRITE_NODE_FIELD(onConflictSet);
        WRITE_NODE_FIELD(onConflictWhere);
-       WRITE_INT_FIELD(exclRelRTI);
+       WRITE_UINT_FIELD(exclRelRTI);
        WRITE_NODE_FIELD(exclRelTlist);
 }
 
@@ -591,6 +591,7 @@ _outCustomScan(StringInfo str, const CustomScan *node)
        _outScanInfo(str, (const Scan *) node);
 
        WRITE_UINT_FIELD(flags);
+       WRITE_NODE_FIELD(custom_plans);
        WRITE_NODE_FIELD(custom_exprs);
        WRITE_NODE_FIELD(custom_private);
        WRITE_NODE_FIELD(custom_scan_tlist);
@@ -1016,7 +1017,7 @@ _outGroupingFunc(StringInfo str, const GroupingFunc *node)
        WRITE_NODE_FIELD(args);
        WRITE_NODE_FIELD(refs);
        WRITE_NODE_FIELD(cols);
-       WRITE_INT_FIELD(agglevelsup);
+       WRITE_UINT_FIELD(agglevelsup);
        WRITE_LOCATION_FIELD(location);
 }
 
@@ -1532,9 +1533,9 @@ _outOnConflictExpr(StringInfo str, const OnConflictExpr 
*node)
        WRITE_ENUM_FIELD(action, OnConflictAction);
        WRITE_NODE_FIELD(arbiterElems);
        WRITE_NODE_FIELD(arbiterWhere);
+       WRITE_OID_FIELD(constraint);
        WRITE_NODE_FIELD(onConflictSet);
        WRITE_NODE_FIELD(onConflictWhere);
-       WRITE_OID_FIELD(constraint);
        WRITE_INT_FIELD(exclRelIndex);
        WRITE_NODE_FIELD(exclRelTlist);
 }
@@ -1674,6 +1675,7 @@ _outCustomPath(StringInfo str, const CustomPath *node)
        _outPathInfo(str, (const Path *) node);
 
        WRITE_UINT_FIELD(flags);
+       WRITE_NODE_FIELD(custom_paths);
        WRITE_NODE_FIELD(custom_private);
        appendStringInfoString(str, " :methods ");
        _outToken(str, node->methods->CustomName);
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 71be840..23e0b36 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -538,7 +538,7 @@ _readGroupingFunc(void)
        READ_NODE_FIELD(args);
        READ_NODE_FIELD(refs);
        READ_NODE_FIELD(cols);
-       READ_INT_FIELD(agglevelsup);
+       READ_UINT_FIELD(agglevelsup);
        READ_LOCATION_FIELD(location);
 
        READ_DONE();
@@ -1256,9 +1256,9 @@ _readOnConflictExpr(void)
        READ_ENUM_FIELD(action, OnConflictAction);
        READ_NODE_FIELD(arbiterElems);
        READ_NODE_FIELD(arbiterWhere);
+       READ_OID_FIELD(constraint);
        READ_NODE_FIELD(onConflictSet);
        READ_NODE_FIELD(onConflictWhere);
-       READ_OID_FIELD(constraint);
        READ_INT_FIELD(exclRelIndex);
        READ_NODE_FIELD(exclRelTlist);
 
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to