"Jenny -" <nat_lazy@hotmail.com> writes:
> hi, does anyone know what session level locks mean in postgresql..i've heard
> of table-level locks and row level locks but not session level
It's a hack for VACUUM. VACUUM needs to run two transactions to
vacuum both a table and its toast table; plus another one if it's
going to ANALYZE. Ordinary locks would go away at transaction
commit. Session locks are used to ensure the table doesn't disappear
till we're done vacuuming.
I doubt that session locks as currently designed are good for anything
except VACUUM. They *do* go away on error abort --- which is exactly
what VACUUM wants, but is unlikely to be useful behavior for anything
else.
regards, tom lane