Re: Why are 'select1; commit' run along with 'set autocommit=on' when turning autocommit on again on a jdbc connection

From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: "Mushran, Vrinda" <Vrinda(at)netopia(dot)com>
Cc: "'pgsql-jdbc(at)postgresql(dot)org'" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Why are 'select1; commit' run along with 'set autocommit=on' when turning autocommit on again on a jdbc connection
Date: 2003-10-02 20:53:47
Message-ID: 20031002205345.GB14745@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Wed, Oct 01, 2003 at 09:23:07AM -0700, Mushran, Vrinda wrote:

> Why does the postgres jdbc driver execute 'select 1' and 'commit' followed
> by 'set autocommit = on'? Setting autocommit on again should just result in
> 'set autocommit=on' statement to be executed, not 'select 1' and 'commit'.
> User would not expect commit to be issued by just turning autocommit on and
> thus its execution here alarms me.

Committing the existing transaction is correct behaviour. The JDBC javadoc
for setAutoCommit includes this:

NOTE: If this method is called during a transaction, the transaction is committed.

Whether committing when the existing transaction hasn't done any work is
"correct" seems to be a non-issue since it'll always be harmless by
definition.

-O

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Mushran, Vrinda 2003-10-02 21:19:55 Re: Why are 'select1; commit' run along with 'set autocomm
Previous Message Barry Lind 2003-10-02 16:33:34 Re: Why are 'select1; commit' run along with 'set autocommit=on'