Re: [HACKERS] expanding inheritance in partition bound order
От | Ashutosh Bapat |
---|---|
Тема | Re: [HACKERS] expanding inheritance in partition bound order |
Дата | |
Msg-id | CAFjFpRda2-4DbpmMuFO-BpRgZk2URWBRF5sXAoKOLLDpcBye4g@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] expanding inheritance in partition bound order (Robert Haas <robertmhaas@gmail.com>) |
Ответы |
Re: [HACKERS] expanding inheritance in partition bound order
|
Список | pgsql-hackers |
On Thu, Aug 31, 2017 at 1:15 AM, Robert Haas <robertmhaas@gmail.com> wrote: > On Wed, Aug 30, 2017 at 12:47 PM, Ashutosh Bapat > <ashutosh.bapat@enterprisedb.com> wrote: >> +1. I think we should just pull out the OIDs from partition descriptor. > > Like this? The first patch refactors the expansion of a single child > out into a separate function, and the second patch implements EIBO on > top of it. > > I realized while doing this that we really want to expand the > partitioning hierarchy depth-first, not breadth-first. For some > things, like partition-wise join in the case where all bounds match > exactly, we really only need a *predictable* ordering that will be the > same for two equi-partitioned table. +1. Spotted right! > A breadth-first expansion will > give us that. But it's not actually in bound order. For example: > > create table foo (a int, b text) partition by list (a); > create table foo1 partition of foo for values in (2); > create table foo2 partition of foo for values in (1) partition by range (b); > create table foo2a partition of foo2 for values from ('b') to ('c'); > create table foo2b partition of foo2 for values from ('a') to ('b'); > create table foo3 partition of foo for values in (3); > > The correct bound-order expansion of this is foo2b - foo2a - foo1 - > foo3, which is indeed what you get with the attached patch. But if we > did the expansion in breadth-first fashion, we'd get foo1 - foo3 - > foo2a, foo2b, which is, well, not in bound order. If the idea is that > you see a > 2 and rule out all partitions that appear before the first > one with an a-value >= 2, it's not going to work. Here are the patches revised a bit. I have esp changed the variable names and arguments to reflect their true role in the functions. Also updated prologue of expand_single_inheritance_child() to mention "has_child". Let me know if those changes look good. -- Best Wishes, Ashutosh Bapat EnterpriseDB Corporation The Postgres Database Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
В списке pgsql-hackers по дате отправления: