relpages for pg_toast.* tables - Mailing list pgsql-general

From Paul Ramsey
Subject relpages for pg_toast.* tables
Date
Msg-id CACowWR0S7-G_XQEJ-n9OJbaQ0UgYsELq=xPYjy3pL4zAdMGUSg@mail.gmail.com
Whole thread Raw
Responses Re: relpages for pg_toast.* tables
List pgsql-general
I've been trying to write up a "pg_total_relation_size()" replacement
that just uses the system tables (sum up relpages for tables, indexes
and toast tables), thereby avoiding the overhead of running stat() on
thousands of filesystem tables, but I've come up against what seems to
be an unsuperable problem.

The `relpages` data for the toast tables doesn't seem to get updated.
Not when I run a general 'ANALYZE' call, and when I specifically call
ANALYZE on the toast tables, it tells me "WARNING:  skipping
"pg_toast_4597532" --- cannot analyze non-tables or special system
tables". Well, OK then.

Presumably this is by design, but it makes it impossible to get a true
guesstimate (as of latest ANALYZE) of size. Are there any known
workarounds?

Thanks,
P


pgsql-general by date:

Previous
From: Ladislav Lenart
Date:
Subject: Re: UPDATE an updatable view
Next
From: Paul Ramsey
Date:
Subject: Re: relpages for pg_toast.* tables