Обсуждение: pgsql: Repair problems occurring when multiple RI updates have to be

Поиск
Список
Период
Сортировка

pgsql: Repair problems occurring when multiple RI updates have to be

От
tgl@postgresql.org (Tom Lane)
Дата:
Log Message:
-----------
Repair problems occurring when multiple RI updates have to be done to the same
row within one query: we were firing check triggers before all the updates
were done, leading to bogus failures.  Fix by making the triggers queued by
an RI update go at the end of the outer query's trigger event list, thereby
effectively making the processing "breadth-first".  This was indeed how it
worked pre-8.0, so the bug does not occur in the 7.x branches.
Per report from Pavel Stehule.

Tags:
----
REL8_2_STABLE

Modified Files:
--------------
    pgsql/src/backend/commands:
        trigger.c (r1.210.2.3 -> r1.210.2.4)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/commands/trigger.c?r1=1.210.2.3&r2=1.210.2.4)
    pgsql/src/backend/executor:
        spi.c (r1.165.2.3 -> r1.165.2.4)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/executor/spi.c?r1=1.165.2.3&r2=1.165.2.4)
    pgsql/src/backend/utils/adt:
        ri_triggers.c (r1.89 -> r1.89.2.1)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/backend/utils/adt/ri_triggers.c?r1=1.89&r2=1.89.2.1)
    pgsql/src/include/executor:
        spi.h (r1.58 -> r1.58.2.1)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/include/executor/spi.h?r1=1.58&r2=1.58.2.1)
    pgsql/src/test/regress/expected:
        foreign_key.out (r1.41.2.1 -> r1.41.2.2)

(http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/expected/foreign_key.out?r1=1.41.2.1&r2=1.41.2.2)
    pgsql/src/test/regress/sql:
        foreign_key.sql (r1.17.2.1 -> r1.17.2.2)
        (http://developer.postgresql.org/cvsweb.cgi/pgsql/src/test/regress/sql/foreign_key.sql?r1=1.17.2.1&r2=1.17.2.2)