On Mon, Feb 24, 2025 at 1:54 PM Jeff Davis <pg...@j-davis.com> wrote:
> On Mon, 2025-02-24 at 13:47 -0500, Corey Huinker wrote: > > There doesn't seem to be any way around it, but it will > > slightly complicate the dump-ing side of things, in that we need to > > either: > > > > a) switch to attnums for index expressions and keep attname calls for > > everything else. > > The only stats for indexes are on expression columns, so AFAICT there's > no difference between the above description and "use attnums for > indexes and attnames for tables". Either way, I agree that's the way to > go. > That's true now, but may not be in the future, like if we started keeping separate stats for partial indexes. > > We certainly want attnames for tables to keep it working reasonably > well for cases where the user might be doing something more interesting > than a binary upgrade, as you point out. But attribute numbers for > indexes seem much more reliable: an index with a different attribute > order is a fundamentally different index. Sadly, that attnum isn't available in pg_stats, so we'd have to reintroduce the joins to pg_namespace and pg_class to get at pg_attribute, at least for indexes.