That's lock upgrading, which opens you up to deadlocks. If another
process grabs a lock after your update exclusive, you're not going to
be able to upgrade it.

OK I got the point.
Is it possible to create a new table-level lock mode that says "OK, now I'm on share level, but soon I will upgrade it to exclusive". Then it would be possible to allow any read-only operation, and to forbid all operation that would need to upgrade. I know that there is a sx_try_upgrade function on freeBSD kernel (man sx), so I guess there is a way to do it, isn't it?

Jonathan Scher

---------------------------(end of broadcast)---------------------------
TIP 7: You can help support the PostgreSQL project by donating at


Reply via email to