Re: revisiting transaction isolation - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: revisiting transaction isolation
Date
Msg-id 40F9AF24.9090601@opencloud.com
Whole thread Raw
In response to Re: revisiting transaction isolation  (Kris Jurka <books@ejurka.com>)
Responses Re: revisiting transaction isolation
Re: revisiting transaction isolation
List 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

pgsql-jdbc by date:

Previous
From: Tom Lane
Date:
Subject: Re: [ADMIN] Migrate postgres databases from SQL_ASCII to UNICODE encoding
Next
From: "Dario V. Fassi"
Date:
Subject: Re: [ADMIN] Migrate postgres databases from SQL_ASCII to UNICODE