creating and accessing temp table data inside a non-committed transaction

From: Leon Starr <leon_starr(at)modelint(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: creating and accessing temp table data inside a non-committed transaction
Date: 2011-01-31 04:16:39
Message-ID: FC69D86A-2486-4967-84C5-1E97BDC12E80@modelint.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Plpgsql experts:

I've got a situation and am wondering if temp tables are the accepted solution. (setting the temp
parameter on create table) I've never worked with them and a colleague just brought them to my
attention as a way to solve a problem I've encountered. He's not sure about this, so I am hoping
you guys can point me in the right direction.

The problem is that I've got function that takes some parameters, for example:

set constraints all deferred;
select my_func( x, y, z );
commit;

The problem is that the values x, y and z are inserted into a permanent table Q early in the processing of
my_func. Then, several calls down in deep_func(), still inside my_func, I need to access the value of x. I
tried to do a select on Q to get the value, but I came up NULL! Guessing that is because the transaction
hasn't committed yet since I am still inside my_func. Right?

So how do I get the value of parameter x? Possible solutions:

1) just pass x all the way down the calling path so that deep_func( x ) can just access it as a
parameter value. Pain in the butt because none of the intermediate calls need x.

2) insert the value of a into a temp table and the do a select on that within deep_func().
But will I stull come up NULL, or do temp tables work differently?

3) some other technique if I am thinking about this totally the wrong way!

As always, help clearing my confusion muchly appreciated! (obviously I can just do a bunch of experiments on my
own, but expert insight is always nice to have)

- Leon

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message McKee, Shawn 2011-01-31 14:00:14 Unable to setup hot-standy for Postgresql 9.0.2 "seeded"
Previous Message Viktor Bojović 2011-01-29 19:15:55 Re: Drop Schema Error