diff options
Diffstat (limited to 'src/backend/nodes')
-rw-r--r-- | src/backend/nodes/copyfuncs.c | 38 | ||||
-rw-r--r-- | src/backend/nodes/equalfuncs.c | 36 | ||||
-rw-r--r-- | src/backend/nodes/nodeFuncs.c | 5 | ||||
-rw-r--r-- | src/backend/nodes/outfuncs.c | 85 |
4 files changed, 76 insertions, 88 deletions
diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index d10a9eb6cc5..48039b86cb9 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -15,7 +15,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.436 2009/07/29 20:56:19 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.437 2009/07/30 02:45:37 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1738,25 +1738,6 @@ _copyRangeTblEntry(RangeTblEntry *from) return newnode; } -static FkConstraint * -_copyFkConstraint(FkConstraint *from) -{ - FkConstraint *newnode = makeNode(FkConstraint); - - COPY_STRING_FIELD(constr_name); - COPY_NODE_FIELD(pktable); - COPY_NODE_FIELD(fk_attrs); - COPY_NODE_FIELD(pk_attrs); - COPY_SCALAR_FIELD(fk_matchtype); - COPY_SCALAR_FIELD(fk_upd_action); - COPY_SCALAR_FIELD(fk_del_action); - COPY_SCALAR_FIELD(deferrable); - COPY_SCALAR_FIELD(initdeferred); - COPY_SCALAR_FIELD(skip_validation); - - return newnode; -} - static SortGroupClause * _copySortGroupClause(SortGroupClause *from) { @@ -2085,14 +2066,22 @@ _copyConstraint(Constraint *from) Constraint *newnode = makeNode(Constraint); COPY_SCALAR_FIELD(contype); - COPY_STRING_FIELD(name); + COPY_STRING_FIELD(conname); + COPY_SCALAR_FIELD(deferrable); + COPY_SCALAR_FIELD(initdeferred); + COPY_LOCATION_FIELD(location); COPY_NODE_FIELD(raw_expr); COPY_STRING_FIELD(cooked_expr); COPY_NODE_FIELD(keys); COPY_NODE_FIELD(options); COPY_STRING_FIELD(indexspace); - COPY_SCALAR_FIELD(deferrable); - COPY_SCALAR_FIELD(initdeferred); + COPY_NODE_FIELD(pktable); + COPY_NODE_FIELD(fk_attrs); + COPY_NODE_FIELD(pk_attrs); + COPY_SCALAR_FIELD(fk_matchtype); + COPY_SCALAR_FIELD(fk_upd_action); + COPY_SCALAR_FIELD(fk_del_action); + COPY_SCALAR_FIELD(skip_validation); return newnode; } @@ -4082,9 +4071,6 @@ copyObject(void *from) case T_CommonTableExpr: retval = _copyCommonTableExpr(from); break; - case T_FkConstraint: - retval = _copyFkConstraint(from); - break; case T_PrivGrantee: retval = _copyPrivGrantee(from); break; diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 6fceab27855..6c75f2e2747 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -22,7 +22,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.359 2009/07/29 20:56:19 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/equalfuncs.c,v 1.360 2009/07/30 02:45:37 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2064,14 +2064,22 @@ static bool _equalConstraint(Constraint *a, Constraint *b) { COMPARE_SCALAR_FIELD(contype); - COMPARE_STRING_FIELD(name); + COMPARE_STRING_FIELD(conname); + COMPARE_SCALAR_FIELD(deferrable); + COMPARE_SCALAR_FIELD(initdeferred); + COMPARE_LOCATION_FIELD(location); COMPARE_NODE_FIELD(raw_expr); COMPARE_STRING_FIELD(cooked_expr); COMPARE_NODE_FIELD(keys); COMPARE_NODE_FIELD(options); COMPARE_STRING_FIELD(indexspace); - COMPARE_SCALAR_FIELD(deferrable); - COMPARE_SCALAR_FIELD(initdeferred); + COMPARE_NODE_FIELD(pktable); + COMPARE_NODE_FIELD(fk_attrs); + COMPARE_NODE_FIELD(pk_attrs); + COMPARE_SCALAR_FIELD(fk_matchtype); + COMPARE_SCALAR_FIELD(fk_upd_action); + COMPARE_SCALAR_FIELD(fk_del_action); + COMPARE_SCALAR_FIELD(skip_validation); return true; } @@ -2190,23 +2198,6 @@ _equalCommonTableExpr(CommonTableExpr *a, CommonTableExpr *b) } static bool -_equalFkConstraint(FkConstraint *a, FkConstraint *b) -{ - COMPARE_STRING_FIELD(constr_name); - COMPARE_NODE_FIELD(pktable); - COMPARE_NODE_FIELD(fk_attrs); - COMPARE_NODE_FIELD(pk_attrs); - COMPARE_SCALAR_FIELD(fk_matchtype); - COMPARE_SCALAR_FIELD(fk_upd_action); - COMPARE_SCALAR_FIELD(fk_del_action); - COMPARE_SCALAR_FIELD(deferrable); - COMPARE_SCALAR_FIELD(initdeferred); - COMPARE_SCALAR_FIELD(skip_validation); - - return true; -} - -static bool _equalXmlSerialize(XmlSerialize *a, XmlSerialize *b) { COMPARE_SCALAR_FIELD(xmloption); @@ -2859,9 +2850,6 @@ equal(void *a, void *b) case T_CommonTableExpr: retval = _equalCommonTableExpr(a, b); break; - case T_FkConstraint: - retval = _equalFkConstraint(a, b); - break; case T_PrivGrantee: retval = _equalPrivGrantee(a, b); break; diff --git a/src/backend/nodes/nodeFuncs.c b/src/backend/nodes/nodeFuncs.c index 4dc9bd4bbf7..61c0e21db08 100644 --- a/src/backend/nodes/nodeFuncs.c +++ b/src/backend/nodes/nodeFuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/nodeFuncs.c,v 1.41 2009/07/16 06:33:42 petere Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/nodeFuncs.c,v 1.42 2009/07/30 02:45:37 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -903,6 +903,9 @@ exprLocation(Node *expr) case T_TypeName: loc = ((TypeName *) expr)->location; break; + case T_Constraint: + loc = ((Constraint *) expr)->location; + break; case T_XmlSerialize: /* XMLSERIALIZE keyword should always be the first thing */ loc = ((XmlSerialize *) expr)->location; diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index e4de1c5aee2..454a8d08867 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.362 2009/07/29 20:56:19 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/nodes/outfuncs.c,v 1.363 2009/07/30 02:45:37 tgl Exp $ * * NOTES * Every node type that can appear in stored rules' parsetrees *must* @@ -2277,18 +2277,39 @@ _outConstraint(StringInfo str, Constraint *node) { WRITE_NODE_TYPE("CONSTRAINT"); - WRITE_STRING_FIELD(name); + WRITE_STRING_FIELD(conname); + WRITE_BOOL_FIELD(deferrable); + WRITE_BOOL_FIELD(initdeferred); + WRITE_LOCATION_FIELD(location); appendStringInfo(str, " :contype "); switch (node->contype) { + case CONSTR_NULL: + appendStringInfo(str, "NULL"); + break; + + case CONSTR_NOTNULL: + appendStringInfo(str, "NOT_NULL"); + break; + + case CONSTR_DEFAULT: + appendStringInfo(str, "DEFAULT"); + WRITE_NODE_FIELD(raw_expr); + WRITE_STRING_FIELD(cooked_expr); + break; + + case CONSTR_CHECK: + appendStringInfo(str, "CHECK"); + WRITE_NODE_FIELD(raw_expr); + WRITE_STRING_FIELD(cooked_expr); + break; + case CONSTR_PRIMARY: appendStringInfo(str, "PRIMARY_KEY"); WRITE_NODE_FIELD(keys); WRITE_NODE_FIELD(options); WRITE_STRING_FIELD(indexspace); - WRITE_BOOL_FIELD(deferrable); - WRITE_BOOL_FIELD(initdeferred); break; case CONSTR_UNIQUE: @@ -2296,47 +2317,40 @@ _outConstraint(StringInfo str, Constraint *node) WRITE_NODE_FIELD(keys); WRITE_NODE_FIELD(options); WRITE_STRING_FIELD(indexspace); - WRITE_BOOL_FIELD(deferrable); - WRITE_BOOL_FIELD(initdeferred); break; - case CONSTR_CHECK: - appendStringInfo(str, "CHECK"); - WRITE_NODE_FIELD(raw_expr); - WRITE_STRING_FIELD(cooked_expr); + case CONSTR_FOREIGN: + appendStringInfo(str, "FOREIGN_KEY"); + WRITE_NODE_FIELD(pktable); + WRITE_NODE_FIELD(fk_attrs); + WRITE_NODE_FIELD(pk_attrs); + WRITE_CHAR_FIELD(fk_matchtype); + WRITE_CHAR_FIELD(fk_upd_action); + WRITE_CHAR_FIELD(fk_del_action); + WRITE_BOOL_FIELD(skip_validation); break; - case CONSTR_DEFAULT: - appendStringInfo(str, "DEFAULT"); - WRITE_NODE_FIELD(raw_expr); - WRITE_STRING_FIELD(cooked_expr); + case CONSTR_ATTR_DEFERRABLE: + appendStringInfo(str, "ATTR_DEFERRABLE"); break; - case CONSTR_NOTNULL: - appendStringInfo(str, "NOT_NULL"); + case CONSTR_ATTR_NOT_DEFERRABLE: + appendStringInfo(str, "ATTR_NOT_DEFERRABLE"); break; - default: - appendStringInfo(str, "<unrecognized_constraint>"); + case CONSTR_ATTR_DEFERRED: + appendStringInfo(str, "ATTR_DEFERRED"); break; - } -} -static void -_outFkConstraint(StringInfo str, FkConstraint *node) -{ - WRITE_NODE_TYPE("FKCONSTRAINT"); + case CONSTR_ATTR_IMMEDIATE: + appendStringInfo(str, "ATTR_IMMEDIATE"); + break; - WRITE_STRING_FIELD(constr_name); - WRITE_NODE_FIELD(pktable); - WRITE_NODE_FIELD(fk_attrs); - WRITE_NODE_FIELD(pk_attrs); - WRITE_CHAR_FIELD(fk_matchtype); - WRITE_CHAR_FIELD(fk_upd_action); - WRITE_CHAR_FIELD(fk_del_action); - WRITE_BOOL_FIELD(deferrable); - WRITE_BOOL_FIELD(initdeferred); - WRITE_BOOL_FIELD(skip_validation); + default: + appendStringInfo(str, "<unrecognized_constraint %d>", + (int) node->contype); + break; + } } @@ -2765,9 +2779,6 @@ _outNode(StringInfo str, void *obj) case T_Constraint: _outConstraint(str, obj); break; - case T_FkConstraint: - _outFkConstraint(str, obj); - break; case T_FuncCall: _outFuncCall(str, obj); break; |