aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/trigger.c
diff options
context:
space:
mode:
authorJan Wieck <JanWieck@Yahoo.com>2000-02-29 12:28:25 +0000
committerJan Wieck <JanWieck@Yahoo.com>2000-02-29 12:28:25 +0000
commitb1e4b56144151ef9fd309762c7c1d09167ac9aff (patch)
tree7241068ae743cb8c47d7c72c206bd0b142eec69f /src/backend/commands/trigger.c
parentf55624a96cde970d78371970e76f467dde106682 (diff)
downloadpostgresql-b1e4b56144151ef9fd309762c7c1d09167ac9aff.tar.gz
postgresql-b1e4b56144151ef9fd309762c7c1d09167ac9aff.zip
Changed execution time of ON <event> RESTRICT referential
integrity triggers to after statement allways. Ignores deferred state now, closer to SQL3 semantics. Jan
Diffstat (limited to 'src/backend/commands/trigger.c')
-rw-r--r--src/backend/commands/trigger.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 9a4286a500a..78df4fd5e8e 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.61 2000/02/18 09:29:37 inoue Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.62 2000/02/29 12:28:24 wieck Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1643,10 +1643,14 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt)
/* ----------
* If we found some, check that they fit the deferrability
+ * but skip ON <event> RESTRICT ones, since they are silently
+ * never deferrable.
* ----------
*/
pg_trigger = (Form_pg_trigger) GETSTRUCT(htup);
- if (stmt->deferred & !pg_trigger->tgdeferrable)
+ if (stmt->deferred && !pg_trigger->tgdeferrable &&
+ pg_trigger->tgfoid != F_RI_FKEY_RESTRICT_UPD &&
+ pg_trigger->tgfoid != F_RI_FKEY_RESTRICT_DEL)
elog(ERROR, "Constraint '%s' is not deferrable",
(char *)lfirst(l));