Обсуждение: Initialization of ResultTupleSlot in AppendNode

Поиск
Список
Период
Сортировка

Initialization of ResultTupleSlot in AppendNode

От
Amit Kapila
Дата:
<div class="Section1"><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Hi All,</span></font><p class="MsoNormal"><font face="Arial" size="2"><span
style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">I observed that during initialization of planstate for Append Node, we allocate ResulttupleSlot,
howeverit is used only to send NULL slot indicate no more tuples. </span></font><p class="MsoNormal"><font face="Arial"
size="2"><spanstyle="font-size:10.0pt;
 
font-family:Arial">Is it right or there is any other purpose of it?</span></font><p class="MsoNormal"><font
face="Arial"size="2"><span style="font-size:10.0pt;
 
font-family:Arial"> </span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial">Amit</span></font><p class="MsoNormal"><font face="Arial" size="2"><span style="font-size:10.0pt;
font-family:Arial"> </span></font><p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><font
face="Arial"size="2"><span
style="font-size:10.0pt;font-family:Arial">***************************************************************************************<br
/>This e-mail and attachments contain confidential information from HUAWEI, which is intended only for the person or
entitywhose address is listed above. Any use of the information contained herein in any way (including, but not limited
to,total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient's) is
prohibited.If you receive this e-mail in error, please notify the sender by phone or email immediately and delete
it!</span></font><pclass="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size:
 
12.0pt"> </span></font></div>

Re: Initialization of ResultTupleSlot in AppendNode

От
Tom Lane
Дата:
Amit Kapila <amit.kapila@huawei.com> writes:
> I observed that during initialization of planstate for Append Node, we
> allocate ResulttupleSlot, however it is used only to send NULL slot indicate
> no more tuples. 

> Is it right or there is any other purpose of it?

That also holds the plan's output tuple descriptor.  If you tried to
remove it, I think the ExecAssignResultTypeFromTL call would crash.
And if you removed *that*, upper nodes would get unhappy, cf
ExecGetResultType.

The use as an end-of-scan signal seems a bit vestigial, since we
could just as well return NULL, but it doesn't really cost enough
to be worth changing ...
        regards, tom lane


Re: Initialization of ResultTupleSlot in AppendNode

От
Amit Kapila
Дата:
> That also holds the plan's output tuple descriptor.  If you tried to
> remove it, I think the ExecAssignResultTypeFromTL call would crash.
> And if you removed *that*, upper nodes would get unhappy, cf
> ExecGetResultType.
Yes, this is true. However upper nodes doesn't need in all cases, so is it
possible that ExecGetResultType should check if ResultTupleSlot is NULL,
then does functionality similar to ExecAssignResultTypeFromTL, to return
tuple descriptor.
This can save everytime allocation of ResultTupleSlot for AppendNode.
****************************************************************************
***********
This e-mail and attachments contain confidential information from HUAWEI,
which is intended only for the person or entity whose address is listed
above. Any use of the information contained herein in any way (including,
but not limited to, total or partial disclosure, reproduction, or
dissemination) by persons other than the intended recipient's) is
prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us] 
Sent: Friday, September 16, 2011 4:24 AM
To: Amit Kapila
Cc: pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] Initialization of ResultTupleSlot in AppendNode 

Amit Kapila <amit.kapila@huawei.com> writes:
> I observed that during initialization of planstate for Append Node, we
> allocate ResulttupleSlot, however it is used only to send NULL slot
indicate
> no more tuples. 

> Is it right or there is any other purpose of it?

That also holds the plan's output tuple descriptor.  If you tried to
remove it, I think the ExecAssignResultTypeFromTL call would crash.
And if you removed *that*, upper nodes would get unhappy, cf
ExecGetResultType.

The use as an end-of-scan signal seems a bit vestigial, since we
could just as well return NULL, but it doesn't really cost enough
to be worth changing ...
        regards, tom lane



Re: Initialization of ResultTupleSlot in AppendNode

От
Amit Kapila
Дата:
> That also holds the plan's output tuple descriptor.  If you tried to 
> remove it, I think the ExecAssignResultTypeFromTL call would crash.
> And if you removed *that*, upper nodes would get unhappy, cf 
> ExecGetResultType.
Yes, this is true. However upper nodes doesn't need in all cases, so is it
possible that ExecGetResultType should check if ResultTupleSlot is NULL,
then does functionality similar to ExecAssignResultTypeFromTL, to return
tuple descriptor.
This can save everytime allocation of ResultTupleSlot for AppendNode.

****************************************************************************
***********
This e-mail and attachments contain confidential information from HUAWEI,
which is intended only for the person or entity whose address is listed
above. Any use of the information contained herein in any way (including,
but not limited to, total or partial disclosure, reproduction, or
dissemination) by persons other than the intended recipient's) is
prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!


-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us] 
Sent: Friday, September 16, 2011 4:24 AM
To: Amit Kapila
Cc: pgsql-hackers@postgresql.org
Subject: Re: [HACKERS] Initialization of ResultTupleSlot in AppendNode 

Amit Kapila <amit.kapila@huawei.com> writes:
> I observed that during initialization of planstate for Append Node, we
> allocate ResulttupleSlot, however it is used only to send NULL slot
indicate
> no more tuples. 

> Is it right or there is any other purpose of it?

That also holds the plan's output tuple descriptor.  If you tried to
remove it, I think the ExecAssignResultTypeFromTL call would crash.
And if you removed *that*, upper nodes would get unhappy, cf
ExecGetResultType.

The use as an end-of-scan signal seems a bit vestigial, since we
could just as well return NULL, but it doesn't really cost enough
to be worth changing ...
        regards, tom lane