From: | Thom Brown <thom(at)linux(dot)com> |
---|---|
To: | Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>, Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, Beena Emerson <memissemerson(at)gmail(dot)com>, Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com>, Rahila Syed <rahilasyed90(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Adding support for Default partition in partitioning |
Date: | 2017-08-17 12:49:32 |
Message-ID: | CAA-aLv555vWVUUMm2moSoq5T2utSQS-z=T9LitivzfH2tcDRBw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 17 August 2017 at 10:59, Jeevan Ladhe <jeevan(dot)ladhe(at)enterprisedb(dot)com> wrote:
> Hi,
>
> On Tue, Aug 15, 2017 at 7:20 PM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
>>
>> On Wed, Jul 26, 2017 at 8:14 AM, Jeevan Ladhe
>> <jeevan(dot)ladhe(at)enterprisedb(dot)com> wrote:
>> > I have rebased the patches on the latest commit.
>>
>> This needs another rebase.
>
>
> I have rebased the patch and addressed your and Ashutosh comments on last
> set of patches.
>
> The current set of patches contains 6 patches as below:
>
> 0001:
> Refactoring existing ATExecAttachPartition code so that it can be used for
> default partitioning as well
>
> 0002:
> This patch teaches the partitioning code to handle the NIL returned by
> get_qual_for_list().
> This is needed because a default partition will not have any constraints in
> case
> it is the only partition of its parent.
>
> 0003:
> Support for default partition with the restriction of preventing addition of
> any
> new partition after default partition. This is a merge of 0003 and 0004 in
> V24 series.
>
> 0004:
> Extend default partitioning support to allow addition of new partitions
> after
> default partition is created/attached. This patch is a merge of patches
> 0005 and 0006 in V24 series to simplify the review process. The
> commit message has more details regarding what all is included.
>
> 0005:
> This patch introduces code to check if the scanning of default partition
> child
> can be skipped if it's constraints are proven.
>
> 0006:
> Documentation.
>
>
> PFA, and let me know in case of any comments.
Thanks. Applies fine, and I've been exercising the patch and it is
doing everything it's supposed to do.
I am, however, curious to know why the planner can't optimise the following:
SELECT * FROM mystuff WHERE mystuff = (1::int,'JP'::text,'blue'::text);
This exhaustively checks all partitions, but if I change it to:
SELECT * FROM mystuff WHERE (id, country, content) =
(1::int,'JP'::text,'blue'::text);
It works fine.
The former filters like so: ((mystuff_default_1.*)::mystuff = ROW(1,
'JP'::text, 'blue'::text))
Shouldn't it instead do:
((mystuff_default_1.id, mystuff_default_1.country,
mystuff_default_1.content)::mystuff = ROW(1, 'JP'::text,
'blue'::text))
So it's not really to do with this patch; it's just something I
noticed while testing.
Thom
From | Date | Subject | |
---|---|---|---|
Next Message | Robert Haas | 2017-08-17 13:04:13 | Re: SCRAM salt length |
Previous Message | Ashutosh Bapat | 2017-08-17 12:39:42 | Re: expanding inheritance in partition bound order |