aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2001-10-25 14:08:11 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2001-10-25 14:08:11 +0000
commit92e8282229d0be6c8cbfed12d311a0a39f409885 (patch)
tree8b06b627673f0f82a3dff251061dd6522cfd06fd
parent1f42f1da4ed19780d6e4a7ffc81427c152d6ece1 (diff)
downloadpostgresql-92e8282229d0be6c8cbfed12d311a0a39f409885.tar.gz
postgresql-92e8282229d0be6c8cbfed12d311a0a39f409885.zip
Add missing output routine for FkConstraint nodes.
-rw-r--r--src/backend/nodes/outfuncs.c32
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;