From: | Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp> |
---|---|
To: | Amit Langote <amitlangote09(at)gmail(dot)com>, David Rowley <david(dot)rowley(at)2ndquadrant(dot)com> |
Cc: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, "Imai, Yoshikazu" <imai(dot)yoshikazu(at)jp(dot)fujitsu(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: speeding up planning with partitions |
Date: | 2019-02-07 10:21:45 |
Message-ID: | e85c4b41-80d6-1045-d934-feeca4a463ab@lab.ntt.co.jp |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2019/02/02 22:52, Amit Langote wrote:
> Attached updated patches.
>
> One big change is related to how ECs are transferred to child
> PlannerInfos. As David suggested upthread, I created a block in
> adjust_appendrel_attrs_mutator that creates a translated copy of a
> given EC containing wherein the parent expression in the original
> ec_members list is replaced by the corresponding child expression.
> With that in place, we no longer need the changes to
> add_child_rel_equivalences(). Instead there's just:
> subroot->eq_classes = adjust_appendrel_attrs(root, root->eq_classes,
> ...), just as David described upthread.
Rebased over bdd9a99aac.
That commit fixes the bug that lateral_relids were not propagated to
grandchildren of an appendrel in some cases due to the way parent rels
were mapped to child rels in a nested loop over root->simple_rel_array and
root->append_rel_list. The problem that was fixed with that commit was
not present with the patches here to begin with. With the patch 0002
here, lateral_relids are propagated from parent rel to child rel directly
when the latter's RelOptInfo is built, so lateral_relids are properly
propagated from the (possibly RTE_SUBQUERY) top-most parent rel to all the
child rels.
Thanks,
Amit
Attachment | Content-Type | Size |
---|---|---|
v20-0001-Overhaul-inheritance-update-delete-planning.patch | text/plain | 74.3 KB |
v20-0002-Lazy-creation-of-RTEs-for-inheritance-children.patch | text/plain | 94.2 KB |
v20-0003-Teach-planner-to-only-process-unpruned-partition.patch | text/plain | 6.9 KB |
v20-0004-Do-not-lock-all-partitions-at-the-beginning.patch | text/plain | 1.9 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Amit Langote | 2019-02-07 10:24:55 | Re: ToDo: show size of partitioned table |
Previous Message | Jakub Glapa | 2019-02-07 10:10:44 | Re: dsa_allocate() faliure |