PL/perl elog(ERROR) Does not Abort Transaction

From: "David E(dot) Wheeler" <david(dot)wheeler(at)iovation(dot)com>
To: Pg Hackers <pgsql-hackers(at)postgreSQL(dot)org>
Subject: PL/perl elog(ERROR) Does not Abort Transaction
Date: 2012-05-10 23:21:24
Message-ID: B751D88F-23AA-432D-BA80-A13AD9C0ED91@iovation.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hackers,

Shouldn't a call to elog(NOTICE) invalidate the current tranaction?

david=# begin;
BEGIN
Time: 0.178 ms
david=# do language plperl $$ elog(ERROR, 'foo')$$;
ERROR: foo at line 1.
CONTEXT: PL/Perl anonymous code block
david=# select true;
bool
------
t
(1 row)

Time: 0.203 ms

The docs say:

> ERROR raises an error condition; if this is not trapped by the surrounding Perl code, the error propagates out to the calling query, causing the current transaction or subtransaction to be aborted.

So I'm surprised that the transaction is not aborted. Bug?

David

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 2012-05-10 23:28:20 Re: synchronous_commit and remote_write
Previous Message Andrew Dunstan 2012-05-10 23:19:16 Re: Draft release notes complete