Re: Statistics Import and Export - Mailing list pgsql-hackers

From Corey Huinker
Subject Re: Statistics Import and Export
Date
Msg-id CADkLM=drSHpmJ_qiHQgsAKuSaWDZLVyOXZrB2=q9tqpmQDERAg@mail.gmail.com
Whole thread Raw
In response to Re: Statistics Import and Export  (Corey Huinker <corey.huinker@gmail.com>)
List pgsql-hackers
On Thu, Feb 27, 2025 at 10:01 PM Corey Huinker <corey.huinker@gmail.com> wrote:
+--- error: relation is wrong type
+SELECT pg_catalog.pg_restore_relation_stats(
+        'relation', 0::oid,
+        'relpages', 17::integer,
+        'reltuples', 400.0::real,
+        'relallvisible', 4::integer);

Why do you need to specify all the stats (relpages, reltuples, etc)?
To exercise this you could just do:
select pg_catalog.pg_restore_relation_stats('relation', 0::oid);

In the above case, it's historical inertia in that the pg_set_* call required all those parameters, as well as a fear that the code - now or in the future - might evaluate "can anything actually change from this call" and short circuit out before actually trying to make sense of the reg_class oid. But we can assuage that fear with just one of the three stat parameters, and I'll adjust accordingly.

* reduced relstats parameters specified to the minimum needed to verify the error and avoid a theoretical future logic short-circuit described above.
* version parameter usage reduced to absolute minimum - verifying that it is accepted and ignored, though Melanie's patch may introduce a need to bring it back in a place or two.

84 lines deleted. Not great, not terrible.

I suppose if we really trusted the TAP test databases to have "one of everything" in terms of tables with all the datatypes, and sufficient rows to generate interesting stats, plus some indexes of each, then we could get rid of those two, but I feel very strongly that it would be a minor savings at a major cost to clarity.
Attachment

pgsql-hackers by date:

Previous
From: Gurjeet Singh
Date:
Subject: Re: Disabling vacuum truncate for autovacuum
Next
From: Amul Sul
Date:
Subject: Re: NOT ENFORCED constraint feature