Re: BUG #19715: pg_restore_attribute_stats() rejects range statistics for a domain over int4multirange

From: Corey Huinker <corey(dot)huinker(at)gmail(dot)com>
To: Michael Paquier <michael(at)paquier(dot)xyz>
Cc: jian he <jian(dot)universality(at)gmail(dot)com>, imchifan(at)163(dot)com, pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #19715: pg_restore_attribute_stats() rejects range statistics for a domain over int4multirange
Date: 2026-09-25 19:45:10
Message-ID: CADkLM=fvZ-4Gry9WWocB0SkR+jiTq+GH+RmWhG=zvsJJBJBXwg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

>
> With all that in mind, I am getting down to the point that we should
> accept that the early stages of attribute and extended stats restore
> should try to fetch the typcache data of the base types, then roll it
> around. This leads to the attached, taking care of the range,
> multirange and tsvector cases.
>

This is a good move, as it further opens the door to making stats import
work with custom stakinds, but a lot of things need to happen [1][2][3]
before we can even attempt that.

> I'd certainly welcome more eyes here. Please note that this applies
> on HEAD cleanly, and should mostly apply cleanly on v19. The v18
> flavor would be much more localized, of course.
>

It does apply cleanly to 19, and yes, the v18 is a bigger change, and will
look much more like my patch unless we decide to backport
statatt_get_type()...which probably isn't worth it.

[1] pg_stats needs a way to expose non-builtin stakinds
[2] pg_type needs to add an oid for typimport(), or the custom basel/elem
oid and collation stuff would have to be calculated in the existing custom
FOO_typanalyze()
[3] pg_dump needs to be made aware of this

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Bharath Rupireddy 2026-09-25 21:41:39 Re: autovacuum: automatically propagate updated parameters
Previous Message PG Bug reporting form 2026-09-25 19:38:25 BUG #19720: pg_trgm GiST index corruption from gtrgm_union() dropping SIGNKEY