On 08/08/2018 12:20 AM, Andres Freund wrote:
> Hi,
>
> I noticed
> if (HeapTupleHeaderGetNatts(tuple.t_data) <
> RelationGetDescr(erm->relation)->natts)
> {
> copyTuple = heap_expand_tuple(&tuple,
> RelationGetDescr(erm->relation));
> }
> else
> {
> /* successful, copy tuple */
> copyTuple = heap_copytuple(&tuple);
> }
>
> in EvalPlanQualFetchRowMarks, and I'm somewhat confused why it's there?
> If it's required here, why isn't it required in dozens of other places?
>
>
Not dozens, I think, since you can't have short records for catalog
tables, which account for most of the calls to heap_copytuple().
I will look at the remainder of cases (less than 10) and reply in a day
or two.
cheers
andrew
--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services