On Wed, 6 Mar 2002, Eric Lu wrote:
> To whom it may concern: > > I found a constraint bug on PostgreSQL lastest version (7.2). Yes, it's still seeing some invalid states of the table. I believe the following will fix the case (it was part of a larger patch that was rejected, but I think this part is safe -- if not I'm sure someone will jump in). *** pgsql/src/backend/utils/adt/ri_triggers.c.orig Tue Mar 12 23:33:32 2002 --- pgsql/src/backend/utils/adt/ri_triggers.c Tue Mar 12 23:33:47 2002 *************** *** 208,213 **** --- 208,224 ---- 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): ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/users-lounge/docs/faq.html