Thread: Alter Temporary table in Stored Procedure
Does any know of a way that I can alter a temporary table by adding a serial column within a stored procedure after it has been created? Any help greatly appreciated. Thanks.
Andy Nykolyn
Northrop Grumman
"Nykolyn, Andrew" <andrew.nykolyn@ngc.com> writes: > Does any know of a way that I can alter a temporary table by adding a > serial column within a stored procedure after it has been created? It should just work. What did you try, exactly, and what error message did you get? regards, tom lane
> Does any know of a way that I can alter a temporary table by adding a > serial column within a stored procedure after it has been created? It should just work. What did you try, exactly, and what error message did you get? I have the following code in my stored procedure: create temporary table t_resultset as select * from get_createtempmsg(); alter table t_resultset add column seq serial; Where get_createtempmsg() is a stored procedure that returns a composite type with no records. The error I get is - relation "public.t_resultset" does not exist. I am using 8.1.3
"Nykolyn, Andrew" <andrew.nykolyn@ngc.com> writes: > I have the following code in my stored procedure: > create temporary table t_resultset as select * from > get_createtempmsg(); > alter table t_resultset add column seq serial; > The error I get is - relation "public.t_resultset" does not exist. > I am using 8.1.3 Hmm, well, the case seems to work for me in 8.1.11, but only for rather small values of "work": the sequence is created in the public schema, which is the wrong place for a temp object. On looking back, this whole area is badly broken in releases before 8.3 --- see discussion of bug #3403: http://archives.postgresql.org/pgsql-bugs/2007-06/msg00114.php We concluded that the fix was too invasive to risk back-patching, so it's unlikely that anything will ever get done about it in 8.1.x or 8.2.x. If you really need this to work, I'd suggest updating to 8.3. regards, tom lane