Thread: ECPG - Clarfication of '-t', 'autocommit', BEGIN?

ECPG - Clarfication of '-t', 'autocommit', BEGIN?

From
"William West"
Date:
The ecpg man page says that '-t' will turn autocommit 'on', that
the default is that otherwise a 'commit' statement is needed to
cause a 'commit'.

In a posting from December of 2001, there was a complaint
that issuing EXEC SQL BEGIN; immediately following
CONNECT returned "BEGIN: already a transaction in progress",
to which Michael Meskes replied that it is necessary to run ecpg
*with* the '-t' switch (or, as someone else said, issue 'exec sql set
autocommit to on') if you want to BEGIN your own transactions.

Am I wrong in thinking that BEGIN-(set of commands)
-COMMIT should be equivalent to 'start transaction
-perform sequence of commands-commit result of
sequence of commands'? Or does BEGIN become
superfluous when running *without* -t? Could someone
please clarify?

Thanks.




Re: ECPG - Clarfication of '-t', 'autocommit', BEGIN?

From
Michael Meskes
Date:
On Thu, Sep 26, 2002 at 01:57:40PM -0400, William West wrote:
> The ecpg man page says that '-t' will turn autocommit 'on', that
> the default is that otherwise a 'commit' statement is needed to
> cause a 'commit'.
> ...

Which indeed is correct. "Autocommit" means that the mode is the same as
with for instance psql. Each statement is run inside its own transaction
and thus you do only need a "commit" if you specified a "begin" before.

Without "autocommit" the mode is equivalent to Oracle in that an
explicit transaction is started automatically and all you need to do is
issue a "commit" or "rollback" to end. After that a new transaction is
started immediately.

> Am I wrong in thinking that BEGIN-(set of commands)
> -COMMIT should be equivalent to 'start transaction
> -perform sequence of commands-commit result of
> sequence of commands'? Or does BEGIN become
> superfluous when running *without* -t? Could someone
> please clarify?

Yes, that's it. No need to say "begin" when not using "-t".

Michael
-- 
Michael Meskes
Michael@Fam-Meskes.De
Go SF 49ers! Go Rhein Fire!
Use Debian GNU/Linux! Use PostgreSQL!