http://www.postgresql.org/docs/9.2/static/transaction-iso.html
Режим повторяемого чтения обеспечивает строгую гарантию того, что каждая транзакция видит полностью стабильное представление базы данных. Тем не менее, это представление не всегда будет соответствовать последовательному (по одному) выполнению параллельных транзакций одного и того же уровня. Например, даже транзакция только для чтения на этом уровне может видеть контрольную запись, обновленную, чтобы показать, что пакет был завершен, но не увидеть одну из подробных записей, которая логически является частью пакета, потому что она прочитала более раннюю версию контрольной записи. , Попытки обеспечить выполнение бизнес-правил транзакциями, выполняющимися на этом уровне изоляции, вряд ли будут работать правильно без осторожного использования явных блокировок для блокировки конфликтующих транзакций.
Разве это не фантомное чтение, которое невозможно в режиме повторяющегося чтения?
В документации говорится, что запрос в повторяемой транзакции чтения видит моментальный снимок на момент начала транзакции, тогда как может быть возможно, чтобы запрос считывал противоречивые данные?