pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Michael Meskes <meskes@postgreSQL.org>
To: Margarita Barvinok <brita@umich.edu>
Cc: pgsql-interfaces@postgreSQL.org
Subject: Re: [INTERFACES] Transaction: Begin, Lock
Date: Tue, 14 Sep 1999 20:22:15 +0200
Message-ID: <19990914202215.A5414@gmx.net> (raw)
In-Reply-To: <Pine.SOL.4.10.9909131044130.5490-100000@joust.rs.itd.umich.edu>
References: <Pine.SOL.4.10.9909131044130.5490-100000@joust.rs.itd.umich.edu>

On Mon, Sep 13, 1999 at 10:58:43AM -0400, Margarita Barvinok wrote:
> EXEC SQL CONNECT TO ...
> for (i=2; i<x: i++) {
>   strncpy(oid_c, entries[i].val, 10);  /* get oid */
>   oid_rec = atoi(oid_c);
>   EXEC SQL BEGIN WORK;
>   EXEC SQL DELETE FROM phonebook
>            WHERE oid = :oid_rec;
>   EXEC SQL COMMIT WORK;
> }
> EXEC SQL DISCONNECT;
> 
> 1. Why i get the following message when I run this code?
> NOTICE: BeginTransactionBlock and not in default state

I take it you did not use 'ecpg -t' did you? The normal situation is that
ecpg creates a auto-transaction mode, i.e. a transaction is started
automatically. You only need to issue a COMMIT once you finish your
transaction resp. a ROLLBACK if you want to cancel it. 

So you tell the backend to start a transaction while already inside a
transaction. And that cannot work. 

You can either just remove the BEGIN WORK statement or you always give
option '-t' to ecpg.

> 2. How should I lock the table phonebook during this transaction?

Why do you need that? You do not need an explicit lock for the delete to
work.

Michael
-- 
Michael Meskes                         | Go SF 49ers!
Th.-Heuss-Str. 61, D-41812 Erkelenz    | Go Rhein Fire!
Tel.: (+49) 2431/72651                 | Use Debian GNU/Linux!
Email: Michael@Fam-Meskes.De           | Use PostgreSQL!



view thread (3+ messages)  latest in thread

Message-ID: <19990914202215.A5414@gmx.net>
Permalink:  ../19990914202215.A5414@gmx.net/
Also on:    postgresql.org/message-id/19990914202215.A5414@gmx.net

 · 

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: meskes@postgreSQL.org, brita@umich.edu
  Subject: Re: [INTERFACES] Transaction: Begin, Lock
  In-Reply-To: <19990914202215.A5414@gmx.net>

* 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