| От | wieck@postgresql.org (Jan Wieck) |
|---|---|
| Тема | pgsql-server/src backend/utils/adt/ri_triggers ... |
| Дата | |
| Msg-id | 20030407203038.45054475EC9@postgresql.org обсуждение исходный текст |
| Список | pgsql-committers |
CVSROOT: /cvsroot
Module name: pgsql-server
Changes by: wieck@postgresql.org 03/04/07 16:30:38
Modified files:
src/backend/utils/adt: ri_triggers.c
src/test/regress/expected: foreign_key.out
Log message:
Avoid primary key lookup (and lock) if foreign key does not change
on UPDATE.
This get's rid of the long standing annoyance that updating a row
that has foreign keys locks all the referenced rows even if the
foreign key values do not change.
The trick is to actually do a check identical to NO ACTION after an
eventually done UPDATE in the SET DEFAULT case. Since a SET DEFAULT
operation should have moved referencing rows to a new "home", a following
NO ACTION check can only fail if the column defaults of the referencing
table resulted in the key we actually deleted. Thanks to Stephan.
Jan
В списке pgsql-committers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера