Problems with insert rule called from plpython

Started by Pavel Hanakabout 23 years ago1 messageshackers
Jump to latest
#1Pavel Hanak
hanak@brailcom.cz

Hello,

I've noticed one problem by upgrading from postgresql-7.3.1 to 7.3.2.
The example of this problem looks like this:

create table test (a int, b text);
create view testview as select * from test;

create or replace rule testview_ins as
on insert to testview do instead
(
insert into test values (1, 'a');
insert into test values (2, 'b');
);

create or replace function testfun() returns text as
'
plpy.execute("""insert into testview values (3, ''c'')""")
return "test"
' language plpython;

Now calling "select testfun()" shows this fatal error:

FATAL: SPI: improper call to spi_dest_setup
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Succeeded.

This example worked in postgresql-7.3.1. In postgresql-7.3.2 works only
one command used in instead:

create or replace rule testview_ins as
on insert to testview do instead
(
insert into test values (1, 'a');
);

Can you explain me this problem? Is it possible to reply also to my
email address, since I am not member of any postgresql mailing list.
Thanks.

--
Pavel Hanak