On Fri, Jun 24, 2016 at 4:13 AM, Dusan Milanov <dusanmilanov@gmail.com> wrote:
> Hi,
>
> A question about transactions: does postgres report serialization errors
> before a transaction is committed? Obviously, it does on commit, but how
> about previous statements? Can there be an ERRCODE_T_R_SERIALIZATION_FAILURE
> error as a response to anything else but the commit?
Yes. See src/test/isolation/expected/project-manager.out, which shows
how to reach this error:
postgres=# UPDATE person SET is_project_manager = false WHERE person_id = 1;
ERROR: could not serialize access due to read/write dependencies
among transactions
DETAIL: Reason code: Canceled on identification as a pivot, during write.
HINT: The transaction might succeed if retried.
--
Thomas Munro
http://www.enterprisedb.com