From: | Shridhar Daithankar <shridhar_daithankar(at)persistent(dot)co(dot)in> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: invalid tid errors in latest 7.3.4 stable. |
Date: | 2003-09-26 14:32:50 |
Message-ID: | 200309262002.50323.shridhar_daithankar@persistent.co.in |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Friday 26 September 2003 19:50, Tom Lane wrote:
> Anyway, on to Chris' example. Load the attached script into a database
> that has plpgsql already created, and then do
> DELETE FROM Activity WHERE ActivityID = 16739;
> You'll get
> ERROR: attempted to mark4update invisible tuple
> (or the equivalent 7.3 message). This is reproducible so long as you
> start a fresh session each time you attempt the DELETE. If you try the
> DELETE again in the same session, it will succeed, because the trigger
> function is already compiled and so no CommandCounterIncrement occurs at
> the critical instant. (It might be possible to make the behavior stable
> by adding some non-SELECT query inside the trigger function to force
> a CommandCounterIncrement to occur anyway. I haven't tried though.)
I didn't understand exactly the explanation but this last paragraph is bit
interesting.
If the trigger function is precompiled, the error would not be reproducible
and it will work correctly, right?
Can we precompile such RI triggers on postmaster startup? Could that be a
workaround?
Just a thought..
Shridhar
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-09-26 14:43:22 | Re: [HACKERS] Threads vs Processes |
Previous Message | Tom Lane | 2003-09-26 14:32:33 | Re: feature request: show pgsql version when running initdb |