"Steve Wolfe" <nw@codon.com> writes:
> I'm receiving an error message that I'm not sure how to resolve:
> heap_mark4update: (am)invalid tid . The offending query is:
> "update a set active = 'f' where a.expires < 'now' and a.active = 't' and
> a.cart_id = b.cart_id"
Hmm ... a plain UPDATE doesn't invoke heap_mark4update. Do you have any
foreign keys involved here?
> The error is a bit inconsistent. Doing a select with the saem criteria
> will work fine - but the select gives a few more rows in the result than
> the update will when it works. Often (but not always), vacuuming both
> tables a and b will get the update to work - but again, not always.
So once the error happens, it's persistent? That's pretty interesting.
I'd have expected it to depend on concurrent activity ...
> If this is a
> known issue, I'd love to hear the workaround.
AFAIK there is no known cause for this in 7.3.*.
regards, tom lane