pgsql: Simplify pg_mcv_list (de)serialization

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема pgsql: Simplify pg_mcv_list (de)serialization
Дата
Msg-id E1hjQYa-0007zY-0h@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Simplify pg_mcv_list (de)serialization

The serialization format of multivariate MCV lists included alignment in
order to allow direct access to part of the serialized data, but despite
multiple fixes (see for example commits d85e0f366a and ea4e1c0e8f) this
proved to be problematic.

This commit abandons alignment in the serialized format, and just copies
everything during deserialization.  We now also track amount of memory
needed after deserialization (including alignment), which allows us to
deserialize the MCV list in a single pass.

Bump catversion, as this affects contents of pg_statistic_ext_data.

Backpatch to 12, where multi-column MCV lists were introduced.

Author: Tomas Vondra
Reviewed-by: Tom Lane
Discussion: https://postgr.es/m/2201.1561521148@sss.pgh.pa.us

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/e74d141d0d97a7a9f059cdb3cd91ff52599a629b

Modified Files
--------------
src/backend/statistics/mcv.c                     | 291 ++++++++++++++---------
src/include/catalog/catversion.h                 |   2 +-
src/include/statistics/extended_stats_internal.h |   1 +
3 files changed, 183 insertions(+), 111 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Thomas Munro
Дата:
Сообщение: pgsql: Improve comment in postgresql.conf.sample.
Следующее
От: Tom Lane
Дата:
Сообщение: pgsql: Add \warn command to psql.