pgsql: pgstat: Fix transactional stats dropping for indexes
От | Andres Freund |
---|---|
Тема | pgsql: pgstat: Fix transactional stats dropping for indexes |
Дата | |
Msg-id | E1obpW3-001hn7-I3@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
pgstat: Fix transactional stats dropping for indexes Because index creation does not go through heap_create_with_catalog() we didn't call pgstat_create_relation(), leading to index stats of a newly created realtion not getting dropped during rollback. To fix, move the pgstat_create_relation() to heap_create(), which indexes do use. Similarly, because dropping an index does not go through heap_drop_with_catalog(), we didn't drop index stats when the transaction dropping an index committed. Here there's no convenient common path for indexes and relations, so index_drop() now calls pgstat_drop_relation(). Add tests for transactional index stats handling. Author: "Drouvot, Bertrand" <bdrouvot@amazon.com> Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Kyotaro Horiguchi <horikyota.ntt@gmail.com> Discussion: https://postgr.es/m/51bbf286-2b4a-8998-bd12-eaae4b765d99@amazon.com Backpatch: 15-, like 8b1dccd37c71, which introduced the bug Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/d811ce6ea343fa8a0b6b9cd7e9cddcbdaa27962b Modified Files -------------- src/backend/catalog/heap.c | 6 +- src/backend/catalog/index.c | 3 + src/test/regress/expected/stats.out | 109 +++++++++++++++++++++++++++++++++++- src/test/regress/sql/stats.sql | 50 ++++++++++++++++- 4 files changed, 161 insertions(+), 7 deletions(-)
В списке pgsql-committers по дате отправления: