Re: revisiting transaction isolation

From: Oliver Jowett <oliver(at)opencloud(dot)com>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: revisiting transaction isolation
Date: 2004-07-17 22:58:44
Message-ID: 40F9AF24.9090601@opencloud.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Kris Jurka wrote:
>
> On Sat, 17 Jul 2004, Oliver Jowett wrote:
>
>
>>Currently, this type of code will fail:
>>
>>
>>> conn.setAutoCommit(false);
>>> if (conn.getTransactionIsolation() != Connection.TRANSACTION_SERIALIZABLE)
>>> conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
>>
>>The problem is that getTransactionIsolation() issues a query and thus
>>starts a new transaction, and then setTransactionIsolation() complains
>>you can't change isolation level mid-transaction.
>>
>>I'm not sure this is reasonable behaviour. One option is to make
>>getTransactionIsolation (and what other methods too?) not cause a BEGIN
>>to occur if there is no transaction in progress and autocommit is off.
>
>
> I see no reason for getTransactionIsolation or any driver call to start a
> transaction, these are only SELECTs and won't be rolled back anyway.

It's ok for getTransactionIsolation(), but what about, say, metadata
queries -- we do want transaction isolation to apply there even if it's
just a SELECT, right?

A quick skim of AbstractJdbc2Connection turns up these methods as
candidates for ignoring autocommit:

- getTransactionIsolation()
- getPGType (both versions) on a cache miss

It seems reasonable to suppress BEGINs for both of those cases. I can
put together a patch to do that. I'll leave the metadata queries alone
for the moment.

>>>The return value of the method getTransactionIsolation should reflect
>>>the change in isolation level when it actually occurs. [...]
>
> This seems confusing and error prone.

Ok -- I'll leave that alone too.

-O

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dario V. Fassi 2004-07-17 23:26:17 Re: [ADMIN] Migrate postgres databases from SQL_ASCII to UNICODE
Previous Message Tom Lane 2004-07-17 21:18:16 Re: Migrate postgres databases from SQL_ASCII to UNICODE encoding