Search Postgresql Archives

creating a temp table in a function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I have a function that creates a temp table and drops it on commit.  If I run the function twice in the same psql interactive session, I get an error.  If I run it twice in two different psql sessions (using the -c flag), I get no error.  Is this expected behavior?  If so, why?

 

You are now connected to database "test".

test=# CREATE OR REPLACE FUNCTION test_function() RETURNS void AS $t$

test$# BEGIN

test$# create temp table my_temp_table(id bigint) on commit drop;

test$# insert into my_temp_table values(0);

test$# END;

test$# $t$ LANGUAGE plpgsql;

CREATE FUNCTION

test=# select test_function();

 test_function

---------------

 

(1 row)

 

test=# select test_function();

ERROR:  relation with OID 70828339 does not exist

CONTEXT:  SQL statement "INSERT INTO my_temp_table values(0)"

PL/pgSQL function "test_function" line 3 at SQL statement

test=# \q

[shahaf@staging-query-1 ~]$ psql -U postgres -d test -c "select test_function()"

Password for user postgres:

 test_function

---------------

 

(1 row)

 

[shahaf@staging-query-1 ~]$ psql -U postgres -d test -c "select test_function()"

Password for user postgres:

 test_function

---------------

 

(1 row)

 

 

 

Shahaf Abileah | Lead Software Developer - Data Team

shahaf@xxxxxxxxxx | tel: 206.859.2869 | cell: 206.331.2057 | www.redfin.com

 


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux