aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/xml.c
diff options
context:
space:
mode:
authorTomas Vondra <tomas.vondra@postgresql.org>2019-04-21 19:54:15 +0200
committerTomas Vondra <tomas.vondra@postgresql.org>2019-04-21 20:23:34 +0200
commitd08c44f7a4ec574110bf1587fe8bd682b8557e0f (patch)
tree1326ddda497bc201add0f690fde6f6157737b696 /src/backend/utils/adt/xml.c
parentbfbc150e39515c08a5691c7da4291d1b9f2b2b9c (diff)
downloadpostgresql-d08c44f7a4ec574110bf1587fe8bd682b8557e0f.tar.gz
postgresql-d08c44f7a4ec574110bf1587fe8bd682b8557e0f.zip
Fix mvdistinct and dependencies size calculations
The formulas used to calculate size while (de)serializing mvndistinct and functional dependencies were based on offset() of the structs. But that is incorrect, because the structures are not copied directly, we we copy the individual fields directly. At the moment this works fine, because there is no alignment padding on any platform we support. But it might break if we ever added some fields into any of the structs, for example. It's also confusing. Fixed by reworking the macros to directly sum sizes of serialized fields. The macros are now useful only for serialiation, so there is no point in keeping them in the public header file. So make them private by moving them to the .c files. Also adds a couple more asserts to check the serialization, and fixes an incorrect allocation of MVDependency instead of (MVDependency *). Reported-By: Tom Lane Discussion: https://postgr.es/m/29785.1555365602@sss.pgh.pa.us
Diffstat (limited to 'src/backend/utils/adt/xml.c')
0 files changed, 0 insertions, 0 deletions