"Tom Lane" <[EMAIL PROTECTED]> wrote > > Right, the snapshot does not become set until you do a non-utility > command (normally, SELECT/INSERT/UPDATE/DELETE). This is a feature, not > a bug, because it lets the transaction take table locks before its > snapshot becomes set. >
Hm, mostly I understand it as an optimization. What do you mean by "it lets the transaction take table locks before its snapshot becomes set"? If we take a snapshot at BEGIN, then the transaction can't take table locks? test=# begin;select count(*) from k; BEGIN count ------- 9999 (1 row) test=# lock table k; LOCK TABLE Regards, Qingqing ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq