BUG #3665: INSERT is not allowed in a non-volatile function

Started by Evgeniover 18 years ago2 messagesbugs
Jump to latest
#1Evgeni
evgeni117@mail.ru

The following bug has been logged online:

Bug reference: 3665
Logged by: Evgeni
Email address: evgeni117@mail.ru
PostgreSQL version: 8.1.7
Operating system: Linux Redhat 7.2
Description: INSERT is not allowed in a non-volatile function
Details:

I write function in c. in function using SPI_exeс("INSERT ...
CREATE OR REPLACE FUNCTION my_fun(character varying, character varying,
integer)
RETURNS integer AS
'$libdir/my_fun', 'my_fun'
LANGUAGE 'c' VOLATILE STRICT;

On SPI_exec see erorr ERROR: INSERT is not allowed in a non-volatile
function
Manualy INSERT is command, all ok!
Ok/
I'm make example
:http://www.postgresql.org/docs/8.1/interactive/spi-examples.html
INSERT INTO a VALUES (execq('INSERT INTO a VALUES (0)',0));
The same error!!!
Help me/

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Evgeni (#1)
Re: BUG #3665: INSERT is not allowed in a non-volatile function

"Evgeni" <evgeni117@mail.ru> writes:

On SPI_exec see erorr ERROR: INSERT is not allowed in a non-volatile
function

You didn't show us your code, but somehow or other you're managing to
pass read_only = true to the SPI execution code.

regards, tom lane