On Mon, Apr 15, 2019 at 12:26:02PM -0400, Tom Lane wrote:
>Dean Rasheed <dean.a.rasheed@gmail.com> writes:
>> SELECT pg_mcv_list_items(stxmcv) from pg_statistic_ext WHERE stxname = 'foo_s';
>> which fails with
>> ERROR: cache lookup failed for type 0
>
>> That definitely used to work, so I'm guessing it got broken by the
>> recent reworking of the serialisation code, but I've not looked into
>> it.
>
>Yeah, looks like sloppy thinking about whether or not the types array
>participates in maxalign-forcing?
>
Actually, no. It seems aligned just fine, AFAICS. The bug a bit more
embarassing - the deserialization does
memcpy(ptr, mcvlist->types, sizeof(Oid) * ndims);
while it should be doing
memcpy(mcvlist->types, ptr, sizeof(Oid) * ndims);
Will fix.
cheers
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services