From 92e8282229d0be6c8cbfed12d311a0a39f409885 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 25 Oct 2001 14:08:11 +0000 Subject: [PATCH] Add missing output routine for FkConstraint nodes. --- src/backend/nodes/outfuncs.c | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c index 417082b39b..fab75d50d7 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; @@ -1365,6 +1365,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) { @@ -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; -- 2.40.0