On 5/12/18 17:25, Tom Lane wrote: > Anyway, attached is a revised patch. I found a test case for > expanded_record_set_fields(), too.
Thank you for fixing this up. In reviewing the committed patch, I noticed that in ER_get_flat_size() you have removed the PG_DETOAST_DATUM() call and let expanded_record_set_field_internal() do the de-toasting work. I had considered that too, but my impression is that the purpose of the PG_DETOAST_DATUM() is to de-compress for the purpose of size computation, whereas expanded_record_set_field_internal() only does the inlining of externally stored values and doesn't do any explicit decompression. Is this correct? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services