Re: UNION ALL on partitioned tables won't use indices.

From: Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp>
To: tgl(at)sss(dot)pgh(dot)pa(dot)us
Cc: noah(at)leadboat(dot)com, peter_e(at)gmx(dot)net, robertmhaas(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: UNION ALL on partitioned tables won't use indices.
Date: 2014-03-05 06:28:41
Message-ID: 20140305.152841.228310775.horiguchi.kyotaro@lab.ntt.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello, I haven't look closer on their relationship.

> > Hello, I examined the your patch and it seemed reasonable, but I
> > have one question about this patch.
>
> > You made ec_relids differ to the union of all ec members'
> > em_relids. Is it right?
>
> ec_relids has never included child relids.

relation.h says that,

| Relids ec_relids; /* all relids appearing in ec_members */
...
| Relids em_relids; /* all relids appearing in em_expr */

But add_eq_member already did this, so the point was whether it's
ok to omit intermediate relations...

| else if (!is_child) /* child members don't add to ec_relids */
| {
| ec->ec_relids = bms_add_members(ec->ec_relids, relids);
| }
| ec->ec_members = lappend(ec->ec_members, em);

I understood that it is ok because an inheritance tree must have
one parent and it can be the representative for whole its
descendents so it's no problem. Thank you, I'll go on.

regards,

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro HORIGUCHI 2014-03-05 06:38:08 Re: Trigger information for auto_explain.
Previous Message Craig Ringer 2014-03-05 05:55:11 API change advice: Passing plan invalidation info from the rewriter into the planner?