On Thu, May 10, 2012 at 04:21:24PM -0700, David E. Wheeler wrote: > Hackers, > > Shouldn't a call to elog(NOTICE) invalidate the current tranaction?
I assume you mean elog(ERROR)? > 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? Well, git head show an error: test=> begin; BEGIN test=> do language plperl $$ elog(ERROR, 'foo')$$; ERROR: foo at line 1. CONTEXT: PL/Perl anonymous code block test=> select true; ERROR: current transaction is aborted, commands ignored until end of transaction block -- Bruce Momjian <br...@momjian.us> http://momjian.us EnterpriseDB http://enterprisedb.com + It's impossible for everything to be true. + -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers