Return-Path: postarch
Received: by postgres.Berkeley.EDU (5.61/1.29)
	id AA04434; Mon, 15 Jun 92 08:53:30 -0700
Message-Id: <9206151553.AA04434@postgres.Berkeley.EDU>
From: postarch (Postgres Mailing Archive)
Subject: Re: HELP: mystery error message
To: postgres@postgres.berkeley.edu
Sender: pg_adm@postgres.berkeley.edu
In-Reply-To: Your message of "Tue, 02 Jun 92 17:30:58 PDT."
             <9206030030.AA14670@postgres.Berkeley.EDU> 
Date: Mon, 15 Jun 92 08:53:09 PDT

you write:
> I am persistently getting the following message on a replace command (which i
 +mmediately
> follows another on a different table, but otherwise identical which always wo
 +rks):
> 
> WARN:Jun  2 17:28:53:heap_replace: (am)invalid otid
> 
> What does this mean??  Does it have something to do with transaction ids?  Wh
 +at can I
> do about it?
> 
> Go 
> * replace edge (mid = graph.mid) where (graph.mid = 2) and (graph.edge = edge
 +.name) and (edge.mid = 0)\g
> 
> Query sent to backend is "replace edge (mid = graph.mid) where (graph.mid = 2
 +) and (graph.edge = edge.name) and (edge.mid = 0)"
> WARN:Jun  2 17:28:53:heap_replace: (am)invalid otid

This is a system failure.  Given the above replace command, Postgres first
does the scans to find out which tuples in the edge relation it has to
replace.  It then passes what we call tuple ids (page number and offset
within the page) to the access method replace function.  The replace function
checks that the tuple pointed to by the tuple id is valid.  When it
isn't you get the above cryptic error message.  I don't know why this is
happening, but will look into it.


Jeff Meredith
mer@postgres.berkeley.edu
