diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-10-25 14:08:11 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-10-25 14:08:11 +0000 |
commit | 92e8282229d0be6c8cbfed12d311a0a39f409885 (patch) | |
tree | 8b06b627673f0f82a3dff251061dd6522cfd06fd /src/backend/nodes/outfuncs.c | |
parent | 1f42f1da4ed19780d6e4a7ffc81427c152d6ece1 (diff) | |
download | postgresql-92e8282229d0be6c8cbfed12d311a0a39f409885.tar.gz postgresql-92e8282229d0be6c8cbfed12d311a0a39f409885.zip |
Add missing output routine for FkConstraint nodes.
Diffstat (limited to 'src/backend/nodes/outfuncs.c')
-rw-r--r-- | src/backend/nodes/outfuncs.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 417082b39b1..fab75d50d76 100644 --- a/src/backend/nodes/outfuncs.c +++ b/src/backend/nodes/outfuncs.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.146 2001/10/25 05:49:31 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/nodes/outfuncs.c,v 1.147 2001/10/25 14:08:11 tgl Exp $ * * NOTES * Every (plan) node in POSTGRES has an associated "out" routine which @@ -1325,14 +1325,14 @@ _outAConst(StringInfo str, A_Const *node) static void _outConstraint(StringInfo str, Constraint *node) { - appendStringInfo(str, " "); + appendStringInfo(str, " CONSTRAINT :name "); _outToken(str, node->name); appendStringInfo(str, " :type "); switch (node->contype) { case CONSTR_PRIMARY: - appendStringInfo(str, "PRIMARY KEY "); + appendStringInfo(str, "PRIMARY_KEY :keys "); _outNode(str, node->keys); break; @@ -1351,11 +1351,11 @@ _outConstraint(StringInfo str, Constraint *node) break; case CONSTR_NOTNULL: - appendStringInfo(str, "NOT NULL"); + appendStringInfo(str, "NOT_NULL"); break; case CONSTR_UNIQUE: - appendStringInfo(str, "UNIQUE "); + appendStringInfo(str, "UNIQUE :keys "); _outNode(str, node->keys); break; @@ -1366,6 +1366,25 @@ _outConstraint(StringInfo str, Constraint *node) } static void +_outFkConstraint(StringInfo str, FkConstraint *node) +{ + appendStringInfo(str, " FKCONSTRAINT :constr_name "); + _outToken(str, node->constr_name); + appendStringInfo(str, " :pktable_name "); + _outToken(str, node->pktable_name); + appendStringInfo(str, " :fk_attrs "); + _outNode(str, node->fk_attrs); + appendStringInfo(str, " :pk_attrs "); + _outNode(str, node->pk_attrs); + appendStringInfo(str, " :match_type "); + _outToken(str, node->match_type); + appendStringInfo(str, " :actions %d :deferrable %s :initdeferred %s", + node->actions, + booltostr(node->deferrable), + booltostr(node->initdeferred)); +} + +static void _outCaseExpr(StringInfo str, CaseExpr *node) { appendStringInfo(str, " CASE :casetype %u :arg ", @@ -1646,6 +1665,9 @@ _outNode(StringInfo str, void *obj) case T_Constraint: _outConstraint(str, obj); break; + case T_FkConstraint: + _outFkConstraint(str, obj); + break; case T_CaseExpr: _outCaseExpr(str, obj); break; |