Re: Temp rows - is it possible?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Mattias Kregert" <mattias(at)kregert(dot)se>
Cc: "TANIDA Yutaka" <tanida(at)sra(dot)co(dot)jp>, "Boris Popov" <boris(at)procedium(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Temp rows - is it possible?
Date: 2003-11-10 14:39:32
Message-ID: 18567.1068475172@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Mattias Kregert" <mattias(at)kregert(dot)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.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Philippe Lang 2003-11-10 14:41:07 Dynamic expression evaluation
Previous Message Rajesh Kumar Mallah 2003-11-10 14:02:23 Re: PL/PGSQL help for getting number of rows matched.