Re: ERROR: heap_mark4update: (am)invalid tid in triggers

From: Kevin Hendrickson <hndrcksn(at)groupinfo(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: ERROR: heap_mark4update: (am)invalid tid in triggers
Date: 2003-04-04 16:16:53
Message-ID: D9687B72-66B8-11D7-8BD1-0003935B3696@groupinfo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


On Thursday, April 3, 2003, at 05:41 PM, Tom Lane wrote:

> Kevin Hendrickson <hndrcksn(at)groupinfo(dot)com> writes:
>> As the title says I'm getting this heap_mark4update error when I
>> execute
>> code inside a trigger. I have search the archives, but haven't found
>> an
>> answer.
>
> I think your search wasn't very thorough --- does this look like your
> problem?
> http://fts.postgresql.org/db/mw/msg.html?mid=1082183
>
> The contents of the trigger don't matter too much to that bug, only
> whether the calling query is such that it might try to update the same
> row multiple times.

You mean Google isn't omniscient? :-) I searched via Google and the
Postgresql archives mailing list website. I started searching before
3/26 when your post was made. But I even searched yesterday and got
other posts about heap_mark4update, but missed yours. Anyway thanks for
the link. This seems to explain what is going on in my case.

I switched my test trigger from a BEFORE action to an AFTER action and
it works. So I tried it on the real trigger and no more invalid tid
error. So what is the fix for situations where your table really needs
a BEFORE action trigger? Is there a patch for Postgresql 7.3.2 that
addresses this issue yet?

BTW. Thank you for your endeavor to track down this issue. It was
driving me nuts for quite some time.

Kevin Hendrickson

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dennis Gearon 2003-04-04 16:19:24 Re: feature request - adding columns with default value
Previous Message Joe Conway 2003-04-04 16:14:44 Re: hex to decimal and back again