Re: Temp rows - is it possible? - Mailing list pgsql-general

From Bruce Momjian
Subject Re: Temp rows - is it possible?
Date
Msg-id 200311101708.hAAH8hQ03739@candle.pha.pa.us
Whole thread Raw
In response to Re: Temp rows - is it possible?  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Temp rows - is it possible?
List pgsql-general
Tom Lane wrote:
> "Mattias Kregert" <mattias@kregert.se> writes:
> > This is great!
>
> >> create table a(...);
> >> insert into a(...); # fixed values
> >>
> >> create table b() inherits (a);
> >> insert into b values(...); # temporary values
> >>
> >> select * from a; # You can get both global and temporary values.
>
> I don't think it's actually reliable.  B was meant to be a temp table,
> right?  The problem is that B will be globally visible to all sessions
> as being a child table of A, but because temp tables are processed in
> backend-local buffers, it will be quite erratic whether other sessions
> can see the rows you've inserted.  In an experiment just now, another
> session could not see the rows in B until I'd inserted several thousand
> of them (enough to overrun the local buffers) ... and then the other
> session could see some but not all of them.
>
> We recently decided we had to forbid foreign-key references from temp
> tables to permanent tables because of this effect.  I wonder whether
> we won't end up forbidding temp tables as children of permanent tables
> too.

Yep, I think we will have to do that.  TODO item?

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-general by date:

Previous
From: Scott Chapman
Date:
Subject: Re: SQL-question: returning the id of an insert querry
Next
From: Bruce Momjian
Date:
Subject: Re: PGSQL technical documentation