forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit62bf0fb
committed
Fix deserialization of pg_mcv_list values
There were multiple issues in deserialization of pg_mcv_list values.Firstly, the data is loaded from syscache, but the deserialization wasperformed after ReleaseSysCache(), at which point the data might havealready disappeared. Fixed by moving the calls in statext_mcv_load,and using the same NULL-handling code as existing stats.Secondly, the deserialized representation used pointers into theserialized representation. But that is also unsafe, because the datamay disappear at any time. Fixed by reworking and simplifying thedeserialization code to always copy all the data.And thirdly, when deserializing values for types passed by value, thecode simply did memcpy(d,s,typlen) which however does not work onbigendian machines. Fixed by using fetch_att/store_att_byval.1 parentf3afbbd commit62bf0fb
File tree
2 files changed
+207
-231
lines changed- src
- backend/statistics
- include/statistics
2 files changed
+207
-231
lines changed0 commit comments
Comments
(0)