Can a locked row [in Postgres] still be read from?

postgresql, sql, transaction-isolation

Solution

You can read just fine. There are lock modes that prevent reading but this isn't one of them.

http://www.postgresql.org/docs/current/static/explicit-locking.html

Problem

If I `SELECT... FOR UPDATE` a row in a transaction, it will obviously block the row from being written to, but will it disallow reads as well? I'd prefer to still be able to read from the row, so if the answer is yes, can you provide a solution to work this?

Original source