Re: Implicit autocommit? - Mailing list pgsql-jdbc

From Eric Faulhaber
Subject Re: Implicit autocommit?
Date
Msg-id 469A5AA6.3090005@goldencode.com
Whole thread Raw
In response to Re: Implicit autocommit?  (Oliver Jowett <oliver@opencloud.com>)
Responses Re: Implicit autocommit?  (Jan de Visser <jdevisser@digitalfairway.com>)
List pgsql-jdbc
Oliver Jowett wrote:
> Eric Faulhaber wrote:
>
>> I debugged into the driver and found it was issuing a "BEGIN" to the
>> backend just before each statement.  Why would it do this with
>> autocommit disabled?
>
> autocommit on = implicit transaction wrapping each individual
> statement. In the postgres world, this means "don't use BEGIN/COMMIT
> at all".
>
> autocommit off = explicit transaction demarcation, the first statement
> executed starts a new transaction that lasts until rollback()/commit()
> are called. In the postgres world, this means "use
> BEGIN/ROLLBACK/COMMIT to demarcate the transaction". So the driver
> issues a BEGIN to start a new transaction as necessary.
>
> -O
Unless I misunderstand your answer, this suggests that vacuum cannot be
run via JDBC, since it cannot be run within a transaction block.  It is
my understanding that autovacuum skips temp tables:

http://archives.postgresql.org/pgsql-general/2007-06/msg01645.php

This is consistent with my experience.  So, how can I vacuum a
long-lived temp table created with a JDBC connection?

Thanks,
Eric Faulhaber


pgsql-jdbc by date:

Previous
From: Kris Jurka
Date:
Subject: Re: incomplete batch-updates
Next
From: Jan de Visser
Date:
Subject: Re: Implicit autocommit?