pg_trigger's index on tgrelid is replaced by a unique index on
Tom Lane <tgl@sss.pgh.pa.us>
pg_trigger's index on tgrelid is replaced by a unique index on (tgrelid, tgname). This provides an additional check on trigger name uniqueness per-table (which was already enforced by the code anyway). With this change, RelationBuildTriggers will read the triggers in order by tgname, since it's scanning using this index. Since a predictable trigger ordering has been requested for some time, document this behavior as a feature. Also document that rules fire in name order, since yesterday's changes to pg_rewrite indexing cause that too.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/ref/create_rule.sgml | modified | +25 −15 |
| doc/src/sgml/ref/create_trigger.sgml | modified | +33 −7 |
| doc/src/sgml/trigger.sgml | modified | +57 −44 |
| src/backend/catalog/indexing.c | modified | +2 −2 |
| src/backend/commands/comment.c | modified | +14 −9 |
| src/backend/commands/tablecmds.c | modified | +3 −3 |
| src/backend/commands/trigger.c | modified | +46 −40 |
| src/backend/utils/cache/relcache.c | modified | +37 −41 |
| src/include/catalog/catversion.h | modified | +2 −2 |
| src/include/catalog/indexing.h | modified | +5 −3 |
| src/test/regress/expected/foreign_key.out | modified | +1 −1 |