Friday, July 18, 2008

Re: [HACKERS] temp table problem

"Abbas" <abbas.butt@enterprisedb.com> writes:
> I have come across a problem. When you try to access a temp table
> created via SPI_EXEC, you get a table not found error.

> SPI_EXEC("CREATE TEMP TABLE my_temp_table(first_name text, last_name
> text)", UTILITY);
> SPI_EXEC("REVOKE ALL ON TABLE my_temp_table FROM PUBLIC", UTILITY);

> The second statement generates a table not found error, although the
> first statement was successful.

Works for me ...

ret = SPI_execute("CREATE TEMP TABLE my_temp_table(first_name text, last_name text)", false, 0);

if (ret != SPI_OK_UTILITY)
elog(ERROR, "SPI_execute(CREATE) returned %d", ret);

ret = SPI_execute("REVOKE ALL ON TABLE my_temp_table FROM PUBLIC", false, 0);

if (ret != SPI_OK_UTILITY)
elog(ERROR, "SPI_execute(REVOKE) returned %d", ret);

What PG version are you testing? Maybe you need to show a complete
test case, instead of leaving us to guess at details?

regards, tom lane

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

No comments: