postgresql/src
Tomas Vondra 08aa131c7a 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
2019-07-05 01:32:49 +02:00
..
backend Simplify pg_mcv_list (de)serialization 2019-07-05 01:32:49 +02:00
bin Unwind some workarounds for lack of portable int64 format specifier 2019-07-04 17:01:43 +02:00
common Introduce safer encoding and decoding routines for base64.c 2019-07-04 16:08:09 +09:00
fe_utils Use appendStringInfoString and appendPQExpBufferStr where possible 2019-07-04 13:01:13 +12:00
include Simplify pg_mcv_list (de)serialization 2019-07-05 01:32:49 +02:00
interfaces Remove unnecessary casts from size_t to int 2019-07-04 17:02:13 +02:00
makefiles Remove support for non-ELF BSD systems 2019-07-01 23:56:20 +01:00
pl Ensure plpgsql result tuples have the right composite type marking. 2019-07-03 18:08:53 -04:00
port Stamp HEAD as 13devel. 2019-07-01 12:50:55 -04:00
template Yet further rethinking of build changes for macOS Mojave. 2018-11-02 18:54:00 -04:00
test Fix pg_mcv_list_items() to produce text[] 2019-07-05 01:32:46 +02:00
timezone Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
tools Add support for Visual Studio 2019 in build scripts 2019-07-02 14:02:33 +09:00
tutorial Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
.gitignore
DEVELOPERS
Makefile Fix partial-build problems introduced by having more generated headers. 2018-04-09 16:42:10 -04:00
Makefile.global.in Remove support for non-ELF BSD systems 2019-07-01 23:56:20 +01:00
Makefile.shlib Remove support for non-ELF BSD systems 2019-07-01 23:56:20 +01:00
nls-global.mk Move logging.h and logging.c from src/fe_utils/ to src/common/. 2019-05-14 14:20:10 -04:00