Re: [SQL] reliable lock inside stored procedure (SOLVED) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [SQL] reliable lock inside stored procedure (SOLVED)
Date
Msg-id 23499.1225747247@sss.pgh.pa.us
Whole thread Raw
Responses Re: [SQL] reliable lock inside stored procedure (SOLVED)  ("Robert Haas" <robertmhaas@gmail.com>)
List pgsql-hackers
Sebastian Böhm <psql@seb.exse.net> writes:
> Am 03.11.2008 um 12:06 schrieb Richard Huxton:
>> It's not possible to have a LOCK statement outside of a
>> transaction. It's just not meaningful to have a transaction that only
>> has a LOCK statement in it.

> as postgres does not warn you about this, this may lead to not so easy  
> to spot bugs.

That's a good point.  We throw error for DECLARE CURSOR outside a
transaction block, since it's obviously a mistake.  I wonder whether
we shouldn't equally throw error for LOCK outside a transaction block.

I can sort of imagine some corner cases where
lock-and-immediately-release would be the intended behavior, but that
sure seems a whole lot less probable than it being user error.
And you could always throw BEGIN/COMMIT into the command if that
really was what you wanted.

Objections anyone?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [PATCH] PageGetTempPage cleanup
Next
From: Hannu Krosing
Date:
Subject: Re: Simple postgresql.conf wizard