Search Postgresql Archives

Re: LOCK TABLE is not allowed in a non-volatile function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Apr 18, 2012 at 3:47 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
Eliot Gable <egable+pgsql-general@xxxxxxxxx> writes:
> On Wed, Apr 18, 2012 at 1:01 PM, Tom Lane <tgl@xxxxxxxxxxxxx> wrote:
>> However, there still might be an issue, because the CONTEXT trace that
>> you showed certainly seemed to point where you thought it did.

> After re-reading the LOCK modes and realizing that ACCESS SHARE is not the
> same as SHARE, I believe you are correct; the only issue seems to be in the
> CONTEXT trace failing to point out that the error occurred three function
> calls deeper than what was reported. It seems it reported it in the first
> function where the EXCEPTION handling was set up.

Oh!  Yes, that's to be expected, because so far as Postgres is concerned
it's logging the location of the RAISE WARNING command.  You've only
told it to print the SQLERRM string, and nothing else:

RAISE WARNING 'An error occurred while trying to rotate the live user
activity records; code %: %', SQLSTATE, SQLERRM;

As of 9.2 there is a way to get the context string for the original
error (GET STACKED DIAGNOSTICS) which you could then include in the
RAISE message.  That hasn't made it to any released versions
unfortunately.

                       regards, tom lane

Thanks, Tom. I will keep that in mind for when we update our Postgres build on our systems.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux