| From: | Jan Wieck <JanWieck(at)Yahoo(dot)com> | 
|---|---|
| To: | Gaetano Mendola <mendola(at)bigfoot(dot)com> | 
| Cc: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>, Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us> | 
| Subject: | Re: Foreign Key bug -- 7.4b4 | 
| Date: | 2003-10-27 19:57:31 | 
| Message-ID: | 3F9D78AB.2080704@Yahoo.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Gaetano Mendola wrote:
> Bruce Momjian wrote:
> 
>> I can confirm this bug in CVS.
Dropping the pkey from table b in fact drops the unique index from it. 
The SPI plan cached to check if a row deleted from table a is still 
referenced from table b "can" (and in your case does) use an index scan 
on table b and is thereby corrupted by dropping the pkey.
Switching to a generally non-cached model for all foreign key checks 
would be the only workaround at the moment, and I don't see us doing 
that as it would cause performance to suffer big times for everyone 
who's system doesn't have a permanent "what's the latest schema" contest 
going on.
Since all caching procedural languages and all caching custom C 
functions suffer the same, the correct fix would be to let 
SPI_saveplan() maintain a hash table of all referenced system cache 
objects who's entries point to the referencing saved plans and then mark 
those plans for recompile at system cache invalidation.
I will probably not do it today ... tomorrow doesn't look good either.
Jan
-- 
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck(at)Yahoo(dot)com #
| From | Date | Subject | |
|---|---|---|---|
| Next Message | strk | 2003-10-27 20:29:41 | Re: DETOASTing in custom memory context | 
| Previous Message | Tom Lane | 2003-10-27 19:50:56 | Re: Vacuum thoughts |