Search Postgresql Archives

Re: Problem JDBC, AutoCommit ON and SELECT FOR UPDATE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/06/2015 08:27 AM, Philippe EMERIAUD wrote:
Hi all,
We have an application based on DB2 database, We are testing this same
application on PostgreSQL database. By default we are in autocommit on
mode.
On DB2 (and Oracle), the query SELECT FOR UPDATE locks the row until the
resultset is closed. On PostgreSQL database (all versions) this same
query never locks (because we are in autocommit on mode). But this is a
bad implementation of JDBC specification : "If a connection is in
auto-commit mode, then all its SQL statements will be executed and
committed as individual transactions.[...] The commit occurs when the
statement completes or the next execute occurs, whichever comes first.
In the case of statements returning a ResultSet object, the statement
completes when the last row of the ResultSet object has been retrieved
or the ResultSet object has been closed."
Is it possible to lock row in autocommit on mode on PostgreSQL database ?

I am not following. So you have:

BEGIN;
SELECT FOR UPDATE ...;
COMMIT;

The SELECT FOR UPDATE will lock the rows while doing the SELECT and then release when it the COMMIT happens. So barring an error the lock will hold for the time it takes to do the SELECT and process the COMMIT.

Do you want the lock to hold past the COMMIT?

--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux