Re: Why do we expand tuples in execMain.c? - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: Why do we expand tuples in execMain.c?
Date
Msg-id 9cda6809-290b-c747-14d2-3263bd4b407a@2ndQuadrant.com
Whole thread Raw
In response to Why do we expand tuples in execMain.c?  (Andres Freund <andres@anarazel.de>)
Responses Re: Why do we expand tuples in execMain.c?
List pgsql-hackers

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



pgsql-hackers by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: memory leak when serializing TRUNCATE in reorderbuffer
Next
From: Pavel Stehule
Date:
Subject: Re: [HACKERS] proposal: schema variables