Re: Add expressions to pg_restore_extended_stats()
Corey Huinker <corey.huinker@gmail.com>
From: Corey Huinker <corey.huinker@gmail.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Chao Li <li.evan.chao@gmail.com>, Tender Wang <tndrwang@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Tomas Vondra <tomas@vondra.me>
Date: 2026-02-04T06:13:05Z
Lists: pgsql-hackers
> > > Mild change of subject, it seems that we can't get the expression fake > > attnum context into the errors we re-throw in statatt_build_stavalues - > it > > might make sense to to bring a version of that function into > > extended_stats_funcs where we can add the extra parameters for context > (and > > avoid the need for a text datum version of some longish strings that > we've > > already just converted from converting json-string to c-string. If I did > > make a new function, then that'd be 2 statatt_* functions that no longer > > need to be visible outside of attribute_stats.c. Thoughts on both making > > the new function, and maybe sending a few of these statatts back to > > static-land? > > Hmm. I am not sure, that depends. How much additional information > would these extra parameter bring to the errors generated in > statatt_build_stavalues(). Just the index of which expression and the name of the key that fed in the offending value string. > We could also set an error context > callback (ErrorContextCallback) within import_pg_statistic() or in the > loop that calls the routine, with some data based on the counter of > "numexprs" to provide more context about where an error is happening. > If you think it would help, I'd be game for that. It's been a while since I used one of those callbacks, though. > I have used that in the past to avoid complicating functions across > multiple levels of a stack (for example, see ReindexPartitions() in > indexcmds.c with its ReindexErrorInfo). This may be another such case.
Commits
-
Refactor tests for catalog diff comparisons in stats_import.sql
- ccd7abaa456f 19 (unreleased) landed
-
Fix typo in stats_import.sql
- 9e8193a26229 19 (unreleased) landed
-
Add support for "exprs" in pg_restore_extended_stats()
- ba97bf9cb7b4 19 (unreleased) landed
-
Add information about range type stats to pg_stats_ext_exprs
- 307447e6dbc0 19 (unreleased) landed
-
Fix comment in extended_stats_funcs.c
- 9476ef206c64 19 (unreleased) landed