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