Using Temporary Tables in postgres functions
От | Mario Splivalo |
---|---|
Тема | Using Temporary Tables in postgres functions |
Дата | |
Msg-id | 1169735954.31872.38.camel@localhost.localdomain обсуждение исходный текст |
Ответы |
Re: Using Temporary Tables in postgres functions
Re: Using Temporary Tables in postgres functions Re: Using Temporary Tables in postgres functions |
Список | pgsql-sql |
When I try to use TEMPORARY TABLE within postgres functions (using 'sql' as a function language), I can't because postgres can't find that temporary table. Consider this example: CREATE FUNCTION func1() RETURNS SETOF v_messages_full AS $BODY$ CREATE TEMPORARY TABLE tmpTbl AS SELECT message_id FROM cached_messages WHERE billing_status = 2; UPDATE cached_messages SET billing_status = 1 WHERE message_id IN (SELECT message_id FROM tmpTbl); SELECT* FROMv_messages_full WHEREmessage_id IN (SELECT message_id FROM tmpTbl); $BODY$ LANGUAGE 'sql' VOLATILE SECURITY DEFINER; When I try to execute above CREATE FUNCTION statement postgres gives me this: ERROR: relation "tmptbl" does not exist CONTEXT: SQL function "func1" If I rewrite func1() using 'plpgsq' I have no troubles creating temporary tables, I just need to use EXEC when referencing to those temporary tables (which is cumbersome, but there it is). Am I doing something wrong here, or there is no way of using temporary tables within 'sql' written functions? Mike
В списке pgsql-sql по дате отправления: