Re: Why do we have MakeSingleTupleTableSlot instead of not using MakeTupleTableSlot? - Mailing list pgsql-hackers

From Bharath Rupireddy
Subject Re: Why do we have MakeSingleTupleTableSlot instead of not using MakeTupleTableSlot?
Date
Msg-id CALj2ACX2pwpn=G5OXsZ1JzVOb0CwcmxvjPP3-36vaD3nzOj0ow@mail.gmail.com
Whole thread Raw
In response to Re: Why do we have MakeSingleTupleTableSlot instead of not using MakeTupleTableSlot?  (Zhihong Yu <zyu@yugabyte.com>)
Responses Re: Why do we have MakeSingleTupleTableSlot instead of not using MakeTupleTableSlot?
List pgsql-hackers
On Fri, Feb 12, 2021 at 9:37 PM Zhihong Yu <zyu@yugabyte.com> wrote:
> On Fri, Feb 12, 2021 at 5:44 AM Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com> wrote:
>>
>> Hi,
>>
>> I wonder, is there a specific reason that MakeTupleTableSlot is
>> wrapped up in MakeSingleTupleTableSlot without doing anything than
>> just returning the slot created by MakeTupleTableSlot? Do we really
>> need MakeSingleTupleTableSlot? Can't we just use MakeTupleTableSlot
>> directly? Am I missing something?
>>
>> I think we can avoid some unnecessary function call costs, for
>> instance when called 1000 times inside table_slot_create from
>> copyfrom.c or in some other places where MakeSingleTupleTableSlot is
>> called in a loop.
>>
>> If it's okay to remove MakeSingleTupleTableSlot and use
>> MakeTupleTableSlot instead, we might have to change in a lot of
>> places. If we don't want to change in those many files, we could
>> rename MakeTupleTableSlot to MakeSingleTupleTableSlot and change it in
>> only a few places.
>>
>> Thoughts?
>
> MakeSingleTupleTableSlot can be defined as a macro, calling MakeTupleTableSlot().

Right, we could as well have an inline function. My point was that why
do we need to wrap MakeTupleTableSlot inside MakeSingleTupleTableSlot
which just does nothing.  As I said upthread, how about renaming
MakeTupleTableSlot to
MakeSingleTupleTableSlot which requires  minimal changes?  Patch
attached. Both make check and make check-world passes on it. Please
have a look.

With Regards,
Bharath Rupireddy.
EnterpriseDB: http://www.enterprisedb.com

Attachment

pgsql-hackers by date:

Previous
From: Zhihong Yu
Date:
Subject: Re: Possible dereference null return (src/backend/replication/logical/reorderbuffer.c)
Next
From: Masahiko Sawada
Date:
Subject: Re: 64-bit XIDs in deleted nbtree pages