plgpsql and transactions - Mailing list pgsql-general

From Bill Moseley
Subject plgpsql and transactions
Date
Msg-id 20060406183608.GA8518@hank.org
Whole thread Raw
Responses Re: plgpsql and transactions
List pgsql-general
In a BEFORE INSERT trigger, depending on input values, I need to lock
a table and do a few selects.  Of course, the "lock table" isn't much
use if not currently in a transaction.

So my question is this:  can I tell if I'm inside a transaction or
not and issue a BEGIN if not.  And then also set a flag so that after
the INSERT I can detect that I issued a BEGIN and do a COMMIT?

Or, maybe better is to just throw an exception if not already inside a
transaction.

BTW -- it seems odd to me that you can issue a lock table outside of
an explicit begin/commit and not get a warning.  When would issuing a
lock table outside an explicit transaction be of any use?


--
Bill Moseley
moseley@hank.org


pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Unique constraint or index, case insensitive, on multiple fields
Next
From: Wayne Schroeder
Date:
Subject: The dangers of long running open transactions