pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Michael Fuhr <mike@fuhr.org>
Cc: PostgreSQL-interfaces <pgsql-interfaces@postgresql.org>
Cc: PostgreSQL-patches <pgsql-patches@postgresql.org>
Subject: Re: [HACKERS] ECPG ignores SAVEPOINT if first statement of a transaction
Date: Fri, 12 Aug 2005 22:22:32 -0400 (EDT)
Message-ID: <200508130222.j7D2MWh29185@candle.pha.pa.us> (raw)
In-Reply-To: <20050803153223.GA17861@winnie.fuhr.org>


Would someone on the interface list look for a fix to this?  Thanks.

---------------------------------------------------------------------------

Michael Fuhr wrote:
> ECPG ignores SAVEPOINT if it's the first statement of a transaction:
> 
> % cat foo.pgc
> int
> main(void)
> {
>     EXEC SQL WHENEVER SQLERROR SQLPRINT;
>     EXEC SQL WHENEVER SQLWARNING SQLPRINT;
> 
>     EXEC SQL CONNECT TO test;
> 
>     EXEC SQL SAVEPOINT foo;
>     EXEC SQL DROP TABLE nosuch_1;
>     EXEC SQL ROLLBACK TO foo;
>     EXEC SQL DROP TABLE nosuch_2;
> 
>     EXEC SQL COMMIT;
>     EXEC SQL DISCONNECT;
> 
>     return 0;
> }
> 
> % ./foo
> sql error 'table "nosuch_1" does not exist' in line 10.
> sql error 'current transaction is aborted, commands ignored until end of transa
> 
> The SAVEPOINT code is generated but apparently ECPGtrans() doesn't
> execute it.  A sniff of the connection doesn't show it, and the
> sniff shows the ROLLBACK TO failing with "no such savepoint."
> 
> If I execute a command before the SAVEPOINT then I get the following,
> which is what I was expecting:
> 
> % ./foo
> sql error 'table "nosuch_1" does not exist' in line 11.
> sql error 'table "nosuch_2" does not exist' in line 13.
> 
> A sniff of this connection shows both the SAVEPOINT and ROLLBACK TO
> being executed and succeeding.
> 
> -- 
> Michael Fuhr
> http://www.fuhr.org/~mfuhr/
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073



view thread (5+ messages)  latest in thread

Message-ID: <200508130222.j7D2MWh29185@candle.pha.pa.us>
Permalink:  ../200508130222.j7D2MWh29185@candle.pha.pa.us/
Also on:    postgresql.org/message-id/200508130222.j7D2MWh29185@candle.pha.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: pgman@candle.pha.pa.us, mike@fuhr.org, pgsql-patches@postgresql.org
  Subject: Re: [HACKERS] ECPG ignores SAVEPOINT if first statement of a transaction
  In-Reply-To: <200508130222.j7D2MWh29185@candle.pha.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox