Fwd: [HACKERS] RI_FKey_check: foreign key constraint blocks parallel - Mailing list pgsql-general

From Stephan Szabo
Subject Fwd: [HACKERS] RI_FKey_check: foreign key constraint blocks parallel
Date
Msg-id 20021115153919.U13816-100000@megazone23.bigpanda.com
Whole thread Raw
List pgsql-general
(Just noticed that this was sent to hackers, but -general would probably
get to more of the people who might want to see it)

On Fri, 15 Nov 2002, Stephan Szabo wrote:

> On Fri, 15 Nov 2002, Manfred Koizar wrote:
>
> > On Wed, 13 Nov 2002 14:22:51 -0800 (PST), Stephan Szabo
> > <sszabo@megazone23.bigpanda.com> wrote:
> > >Right now, I know that it has a hole that lets through invalid data
> >
> > Stephan, your patch has been posted to -general (Subject: Re:
> > [GENERAL] Help..Help...).  Is this version still valid?
>
> I have a newer version of it on my machine, but I was still sending out
> that version of the patch. :( Thanks for letting me know before even more
> people got a version that was broken. :)
>
> For anyone working with the patch, you need to fix the lines below as
> noted by Manfred.  This is mostly unrelated to the hole mentioned in the
> quoted message above (it's a bug that with the bug you actually partially
> fill the hole but instead deadlock).  I wonder if there were any other
> stupdities in there.
>
> > > void
> > > heap_mark4fk_lock_acquire(Relation relation, HeapTuple tuple) {
> > >  [...]
> > >  /* try to find the list for the table in question */
> > This part of the patch works, if the list
> > (a) is initially empty or
> > (b) already contains relid or
> > (c) starts with a table > relid.
> >
> > >  while (ptr!=NULL) {
> > >   if (relid>ptr->table) {
> > >    ptr=ptr->next;
> > >    oldptr=ptr;
> > // AFAICT above two lines should be swapped ...
> > >   }
> > >   else
> > >    break;
> > >  }
> >
> > ... otherwise
> > (d) if the new relid is to be inserted between two existing entries,
> > we get two items pointing to each other
> > (e) if the new relid is > the last table in the list, we lose the
> > whole list.



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Error in SELECT clause with UPPER function
Next
From: "Alex Cheung Tin Ka"
Date:
Subject: data restore