Обсуждение: pg_class.relpages documentation does not mention relpages corner case

Поиск
Список
Период
Сортировка

pg_class.relpages documentation does not mention relpages corner case

От
PG Doc comments form
Дата:
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

Re: pg_class.relpages documentation does not mention relpages corner case

От
Bruce Momjian
Дата:
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.