creating and accessing temp table data inside a non-committed transaction
От | Leon Starr |
---|---|
Тема | creating and accessing temp table data inside a non-committed transaction |
Дата | |
Msg-id | FC69D86A-2486-4967-84C5-1E97BDC12E80@modelint.com обсуждение исходный текст |
Ответы |
Re: creating and accessing temp table data inside a
non-committed transaction
|
Список | 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
В списке pgsql-admin по дате отправления: