aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-01-08 22:54:36 +0000
committerBruce Momjian <bruce@momjian.us>2003-01-08 22:54:36 +0000
commitfdb1c80747705bbb98027ff5f64bd5a89ee40874 (patch)
tree0cd94c358594f1f35e0ae1cc461ac6dad6913ffa
parenta899179c8cdbd74c4a3a1b9e2712b92321182f0d (diff)
downloadpostgresql-fdb1c80747705bbb98027ff5f64bd5a89ee40874.tar.gz
postgresql-fdb1c80747705bbb98027ff5f64bd5a89ee40874.zip
Fix dumping of DEFERRABLE/INITIALLY DEFERRED:
> The big problem is that while pg_dump's dump_trigger() looks at > tginitdeferred and dumps accordingly, pg_get_constraintdef doesn't look > at tginitdeferred, and therefore doesn't record the requirement as part > of ALTER TABLE ADD CONSTRAINT. pg_get_constraintdef should probably be looking at condeferrable and condeferred in the pg_constraint row it's looking at. Maybe something like the attached. (Added, output only non-default values.) Stephan Szabo
-rw-r--r--src/backend/utils/adt/ruleutils.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 796eaa05069..c70e74caab2 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -3,7 +3,7 @@
* back to source text
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.124 2002/09/19 23:40:56 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.124.2.1 2003/01/08 22:54:36 momjian Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -688,6 +688,11 @@ pg_get_constraintdef(PG_FUNCTION_ARGS)
}
appendStringInfo(&buf, " ON DELETE %s", string);
+ if (conForm->condeferrable)
+ appendStringInfo(&buf, " DEFERRABLE");
+ if (conForm->condeferred)
+ appendStringInfo(&buf, " INITIALLY DEFERRED");
+
break;
}