Skip site navigation (1) Skip section navigation (2)

Re: referential constraint bug

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com>
Cc: Eric Lu <yclu(at)ecompliance(dot)net>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: referential constraint bug
Date: 2002-03-14 22:37:48
Message-ID: 200203142237.g2EMbmZ11185@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-bugs
Your patch has been added to the PostgreSQL unapplied patches list at:

	http://candle.pha.pa.us/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

---------------------------------------------------------------------------


> Stephan, let me know if you want this considered for inclusion in CVS.

Probably a good idea in case I can't manage to rewrite the triggers which
is involving lots of looking through other code to see how to do stuff.
It's fairly safe, but probably not worth putting into 7.2.x if only
because we've had the bug since the constraints were added in 7.0
so waiting for the next full version is probably okay (and we can always
point users to the patch if they need it).

> 
> 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
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

In response to

pgsql-bugs by date

Next:From: Ben GrimmDate: 2002-03-14 22:47:39
Subject: Re: Bug #613: Sequence values fall back to previously chec
Previous:From: Daniel Malaquias de FreitasDate: 2002-03-14 20:54:17
Subject: Storage problems

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group