Thread: pg_class.relpages documentation does not mention relpages corner case
pg_class.relpages documentation does not mention relpages corner case
From
PG Doc comments form
Date:
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/14/catalog-pg-class.html Description: In the pg_class documentation [1], the relpages column is described as >Size of the on-disk representation of this table in pages (of size BLCKSZ). This is only an estimate used by the planner. It is updated by VACUUM, ANALYZE, and a few DDL commands such as CREATE INDEX. However, it looks like this is -1 for partitioned tables. At least for ones that have children and have been analyze since adding a child partition, it seems. I'm not sure how to word that concisely, but should the documentation note this case? Or can this just be zero for partitioned tales? I'm not sure if it's too late for that, but they don't actually have any relpages, so it seems odd that they need a sentinel value. Thanks, Maciek [1]: https://www.postgresql.org/docs/current/catalog-pg-class.html
On Mon, Jun 5, 2023 at 11:03:49PM +0000, PG Doc comments form wrote: > The following documentation comment has been logged on the website: > > Page: https://www.postgresql.org/docs/14/catalog-pg-class.html > Description: > > In the pg_class documentation [1], the relpages column is described as > > >Size of the on-disk representation of this table in pages (of size BLCKSZ). > This is only an estimate used by the planner. It is updated by VACUUM, > ANALYZE, and a few DDL commands such as CREATE INDEX. > > However, it looks like this is -1 for partitioned tables. At least for ones > that have children and have been analyze since adding a child partition, it > seems. I'm not sure how to word that concisely, but should the documentation > note this case? Or can this just be zero for partitioned tales? I'm not sure > if it's too late for that, but they don't actually have any relpages, so it > seems odd that they need a sentinel value. Uh, there are discussions about needing to run ANALYZE on partitioned tables, so in those cases the statistics would be cumulative of all partitions: https://www.postgresql.org/message-id/20230112232747.GA2111950@nathanxps13 If we set the relpages to zero, that would not be reflecting the partitions. I feel -1 is probably the best unless we want to put the total of all partitions in there, but that would be confusing too. -- Bruce Momjian <bruce@momjian.us> https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.