"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote
>
> It can, but there are cases where you want the lock to be taken before
> the snapshot is set. Otherwise, there could be committed changes in the
> database that you can't see in your snapshot. I think there are some
> examples in the manual, or check the archives.
>
Ok, here are the links:
http://archives.postgresql.org/pgsql-bugs/2002-12/msg00169.php - a bug
analysis of the take-snapshot at wrong point;
http://archives.postgresql.org/pgsql-hackers/2004-09/msg00133.php - recent
redesign notes.
Regards,
Qingqing