postgresql/src
Tomas Vondra e74d141d0d 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 16:45:05 +02:00
..
backend Simplify pg_mcv_list (de)serialization 2019-07-05 16:45:05 +02:00
bin Fix accidentally swapped error message arguments 2019-07-02 23:45:00 +01:00
common Make script output more pgindent compatible 2019-06-24 22:50:56 +02:00
fe_utils Update stale comments, and fix comment typos. 2019-06-08 10:12:26 -07:00
include Simplify pg_mcv_list (de)serialization 2019-07-05 16:45:05 +02:00
interfaces Fix many typos and inconsistencies 2019-07-01 10:00:23 +09:00
makefiles Define WIN32_STACK_RLIMIT throughout win32 and cygwin builds. 2019-04-09 08:25:39 -07:00
pl Ensure plpgsql result tuples have the right composite type marking. 2019-07-03 18:08:53 -04:00
port Fix more typos and inconsistencies in the tree 2019-06-17 16:13:16 +09: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 16:18:10 +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-03 08:57:22 +09:00
tutorial Phase 2 pgindent run for v12. 2019-05-22 13:04:48 -04:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Fix partial-build problems introduced by having more generated headers. 2018-04-09 16:42:10 -04:00
Makefile.global.in Consistently test for in-use shared memory. 2019-04-12 22:36:38 -07:00
Makefile.shlib Ensure static libraries have correct mod time even if ranlib messes it up. 2018-11-29 15:53:44 -05: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