Re: DML fails after updatable cursor is used with trigger returning function

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Dharmendra Goyal" <dharmendra(dot)goyal(at)gmail(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: DML fails after updatable cursor is used with trigger returning function
Date: 2007-10-31 22:36:55
Message-ID: 22169.1193870215@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Dharmendra Goyal" <dharmendra(dot)goyal(at)gmail(dot)com> writes:
> I created one function which updates a table using updatable cursor. I wrote
> one trigger also on the same table. When i execute the function it gives
> expected results. But after that all DMLs fail.

The problem is that your trigger function recursively invokes itself.

If you used an unbound cursor variable (so that the portal name gets
selected dynamically) you could avoid the conflict of cursor name
between inner and outer executions, but you'd still need to do something
about avoiding infinite recursion. Also, closing a cursor when done
with it would be a real good idea.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2007-10-31 23:07:56 Re: psql show dbsize?
Previous Message Tom Lane 2007-10-31 22:11:57 Re: psql show dbsize?