Partitioned index can be not dumped
От | Alexander Pyhalov |
---|---|
Тема | Partitioned index can be not dumped |
Дата | |
Msg-id | 704fb6fb99ec9864a4dbeda2478337d2@postgrespro.ru обсуждение исходный текст |
Ответы |
Re: Partitioned index can be not dumped
Re: Partitioned index can be not dumped Re: Partitioned index can be not dumped |
Список | pgsql-hackers |
Hi. I've seen the following effect on PostgreSQL 14 stable branch. Index, created on partitioned table, disappears from pg_dump or psql \d output. This seems to begin after analyze. Partitoned relation relhasindex pg_class field suddenly becomes false. The issue happens after commit 0e69f705cc1a3df273b38c9883fb5765991e04fe (HEAD, refs/bisect/bad) Author: Alvaro Herrera <alvherre@alvh.no-ip.org> Date: Fri Apr 9 11:29:08 2021 -0400 Set pg_class.reltuples for partitioned tables When commit 0827e8af70f4 added auto-analyze support for partitioned tables, it included code to obtain reltuples for the partitioned table as a number of catalog accesses to read pg_class.reltuples for each partition. That's not only very inefficient, but also problematic because autovacuum doesn't hold any locks on any of those tables -- and doesn't want to. Replace that code with a read of pg_class.reltuples for the partitioned table, and make sure ANALYZE and TRUNCATE properly maintain that value. I found no code that would be affected by the change of relpages from zero to non-zero for partitioned tables, and no other code that should be maintaining it, but if there is, hopefully it'll be an easy fix. Per buildfarm. Author: Álvaro Herrera <alvherre@alvh.no-ip.org> Reviewed-by: Zhihong Yu <zyu@yugabyte.com> It seems that in this commit we unconditionally overwrite this data with 0. I've tried to fix it by getting this information when inh is true and ignoring nindexes when inh is not true. -- Best regards, Alexander Pyhalov, Postgres Professional
Вложения
В списке pgsql-hackers по дате отправления: