Обсуждение: 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