diff options
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
-rw-r--r-- | src/backend/nodes/outfuncs.c | 85 |
1 files changed, 48 insertions, 37 deletions
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; |