diff options
author | Bruce Momjian <bruce@momjian.us> | 2002-03-19 02:57:15 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2002-03-19 02:57:15 +0000 |
commit | d8e70cd829c517890fd35de74d2654e5bdaf201b (patch) | |
tree | c0031919c4514ba00a453ee3a2218c73f517cc07 /src | |
parent | eb1fb8650fb2b12d93f8c20cdb97c772ede944de (diff) | |
download | postgresql-d8e70cd829c517890fd35de74d2654e5bdaf201b.tar.gz postgresql-d8e70cd829c517890fd35de74d2654e5bdaf201b.zip |
Fix for trigger handling:
* We should not even consider checking the row if it is no longer
* valid since it was either deleted (doesn't matter) or updated
* (in which case it'll be checked with its final values).
Stephan Szabo
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/utils/adt/ri_triggers.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/backend/utils/adt/ri_triggers.c b/src/backend/utils/adt/ri_triggers.c index 5ee4c26c553..6ecc586af69 100644 --- a/src/backend/utils/adt/ri_triggers.c +++ b/src/backend/utils/adt/ri_triggers.c @@ -18,7 +18,7 @@ * Portions Copyright (c) 2000-2001, PostgreSQL Global Development Group * Copyright 1999 Jan Wieck * - * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.32 2002/03/06 06:10:14 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/ri_triggers.c,v 1.33 2002/03/19 02:57:15 momjian Exp $ * * ---------- */ @@ -208,6 +208,17 @@ RI_FKey_check(PG_FUNCTION_ARGS) new_row = trigdata->tg_trigtuple; } + /* + * We should not even consider checking the row if it is no longer + * valid since it was either deleted (doesn't matter) or updated + * (in which case it'll be checked with its final values). + */ + if (new_row) { + if (!HeapTupleSatisfiesItself(new_row->t_data)) { + return PointerGetDatum(NULL); + } + } + /* ---------- * SQL3 11.9 <referential constraint definition> * Gereral rules 2) a): |