Simplify some stats restore code with InputFunctionCallSafe()
Michael Paquier <michael@paquier.xyz>
Simplify some stats restore code with InputFunctionCallSafe() statatt_build_stavalues() and array_in_safe() have been relying on InitFunctionCallInfoData() with a locally-filled state to call a data type input function. InputFunctionCallSafe() can be used to achieve the same job, simplifying some code. This fixes an over-allocation of FunctionCallInfoBaseData done in statatt_build_stavalues(), where there was space for 8 elements but only 3 were needed. The over-allocation exists since REL_18_STABLE, and was harmless in practice. While on it, fix some comments for both routines, where elemtypid was mentioned. Backpatch down to v19. This code has been reworked during the last development cycle while working on the restore of extended statistics, so this keeps the code consistent across all branches. Author: Jian He <jian.universality@gmail.com> Author: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/CACJufxEGah9PaiTQ=cG14GMMBsUQ3ohGct9tdSwbMQPQ0-nbbQ@mail.gmail.com Backpatch-through: 19
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/statistics/extended_stats_funcs.c | modified | +3 −14 |
| src/backend/statistics/stat_utils.c | modified | +6 −17 |
Discussion
- statatt_build_stavalues->LOCAL_FCINFO wrong number 7 messages · 2026-06-27 → 2026-06-30