RE: Re: postgres TODO - Mailing list pgsql-hackers

From Hiroshi Inoue
Subject RE: Re: postgres TODO
Date
Msg-id 002801bfebc8$51a94ea0$2801007e@tpf.co.jp
Whole thread Raw
In response to Re: Re: postgres TODO  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
> -----Original Message-----
> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> 
> "Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> > I've forgotten to propose that INSERT returns TID together
> > with OID before 7.0.  This has been in my mind since
> > I planned to implement Tid scan. Different from OID
> > ,TID has its specific (fast) access method now.
> 
> Couple of thoughts here ---
> 
> * OID is (nominally) unique across tables.  TID is not.  This is a
> serious point in the presence of inheritance.  I'd like to see the
> return be table OID plus TID if we are going to rely on TID.
> 
> * TID identification of a row does not survive VACUUM, does it?
> So you'd have to assume a vacuum didn't happen in between.  Seems a
> little risky.  Vadim's overwriting smgr would make this issue a lot
> worse.  Might be OK in certain application contexts, but I wouldn't
> want to encourage people to use it without thinking.
>

VACUUM would invalidate keeped TIDs. Even OIDs couldn't
survive 'drop and create table'.
So I would keep [relid],oid,tid-s for fetched rows and reload
the rows using tids (and [relid]). If the OID != keeped OID,then
I would refresh the resultset entirely.

BTW,wouldn't TIDs be more stable under overwriting smgr ?
Unfortunately TIDs are transient under current no overwrite
smgr and need to follow update chain of tuples. 
> * I don't see any way to add TID (or table OID) to the default return
> data without changing the fe/be protocol and breaking a lot of existing
> client code.
>

I've thought backends could return info  'INSERT oid count tid' 
to their frontends but is it imposiible ?
Should (tuples)count be the 3rd and the last item to return on INSERT ?
> Philip's INSERT ... RETURNING idea could support returning TID and
> table OID as a special case, and it has the saving grace that it
> won't affect apps that don't use it...
>

If commandInfo(cmdStatus)  is unavailable,this seems to be
needed though I don't know how to implement it.

Regards.

Hiroshi Inoue


pgsql-hackers by date:

Previous
From: Philip Warner
Date:
Subject: Re: Performance problem in aset.c
Next
From: Philip Warner
Date:
Subject: Re: Connection pooling.