| From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
|---|---|
| To: | Amit Khandekar <amitdkhan(dot)pg(at)gmail(dot)com> |
| Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: expanding inheritance in partition bound order |
| Date: | 2017-08-21 06:10:55 |
| Message-ID: | e7fcaf87-1923-b79b-ed20-a533ad6e8f3b@lab.ntt.co.jp |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi Amit,
On 2017/08/17 21:18, Amit Khandekar wrote:
> Anyways, some more comments :
>
> In ExecSetupPartitionTupleRouting(), not sure why ptrinfos array is an
> array of pointers. Why can't it be an array of
> PartitionTupleRoutingInfo structure rather than pointer to that
> structure ?
AFAIK, assigning pointers is less expensive than assigning struct and we
end up doing a lot of assigning of the members of that array to a local
variable in get_partition_for_tuple(), for example. Perhaps, we could
avoid those assignments and implement it the way you suggest.
> diff --git a/src/backend/catalog/partition.c b/src/backend/catalog/partition.c
> + * Close all the leaf partitions and their indices.
> *
> Above comment needs to be shifted a bit down to the subsequent "for"
> loop where it's actually applicable.
That's right, done.
> * node->mt_partition_dispatch_info[0] corresponds to the root partitioned
> * table, for which we didn't create tupslot.
> Above : node->mt_partition_dispatch_info[0] => node->mt_ptrinfos[0]
Oops, fixed.
> /*
> * XXX- do we need a pinning mechanism for partition descriptors
> * so that there references can be managed independently of
> * the parent relcache entry? Like PinPartitionDesc(partdesc)?
> */
> pd->partdesc = partdesc;
>
> Any idea if the above can be handled ? I am not too sure.
A similar mechanism exists for TupleDesc ref-counting (see the usage of
PinTupleDesc and ReleaseTupleDesc across the backend code.) I too am
currently unsure if such an elaborate mechanism is actually *necessary*
for rd_partdesc.
Attached updated patches.
Thanks,
Amit
| Attachment | Content-Type | Size |
|---|---|---|
| 0001-Decouple-RelationGetPartitionDispatchInfo-from-execu.patch | text/plain | 37.2 KB |
| 0002-Teach-expand_inherited_rtentry-to-use-partition-boun.patch | text/plain | 2.0 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Amit Langote | 2017-08-21 06:37:18 | path toward faster partition pruning |
| Previous Message | Simon Riggs | 2017-08-21 05:45:43 | Re: Proposal: global index |