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

Reply via email to