Alban Hertroys wrote on 03.04.2011 11:17:
On 2 Apr 2011, at 12:44, Thomas Kellerer wrote:
Even after a plain SELECT you should issue a COMMIT (or ROLLBACK)
to end the transaction that was implicitely started with the
SELECT.
Sorry, but you're wrong about that. A statement that implicitly
starts a transaction also implicitly COMMITs it. Otherwise single
UPDATE and INSERT statements outside of transaction blocks would not
COMMIT, and they do.
AFAIK this is only true if you are running in auto commit mode.
If you have auto commit turned off, a SELECT statement will leave the current transaction as "IDLE in transaction" not "IDLE" which means it *will* hold a lock on the tables involved that will prevent an ALTER TABLE.
Regards
Thomas
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general