Re: On partitioning - Mailing list pgsql-hackers

From Amit Kapila
Subject Re: On partitioning
Date
Msg-id CAA4eK1L53knKrrhXDTi-no53F2mF+X2a2gKXDpQ1DNi1+NMuVQ@mail.gmail.com
Whole thread Raw
In response to Re: On partitioning  ("Amit Langote" <Langote_Amit_f8@lab.ntt.co.jp>)
Responses Re: On partitioning  ("Amit Langote" <Langote_Amit_f8@lab.ntt.co.jp>)
Re: On partitioning  ("Amit Langote" <Langote_Amit_f8@lab.ntt.co.jp>)
Re: On partitioning  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-hackers
On Tue, Dec 9, 2014 at 8:08 AM, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> wrote:
> > From: Robert Haas [mailto:robertmhaas@gmail.com]
> > On Sat, Dec 6, 2014 at 2:59 AM, Amit Kapila <amit.kapila16@gmail.com>
> > wrote:
> > >> I guess you could list or hash partition on multiple columns, too.
> > >
> > > How would you distinguish values in list partition for multiple
> > > columns? I mean for range partition, we are sure there will
> > > be either one value for each column, but for list it could
> > > be multiple and not fixed for each partition, so I think it will not
> > > be easy to support the multicolumn partition key for list
> > > partitions.
> >
> > I don't understand.  If you want to range partition on columns (a, b),
> > you say that, say, tuples with (a, b) values less than (100, 200) go
> > here and the rest go elsewhere.  For list partitioning, you say that,
> > say, tuples with (a, b) values of EXACTLY (100, 200) go here and the
> > rest go elsewhere.  I'm not sure how useful that is but it's not
> > illogical.
> >
>
> In case of list partitioning, 100 and 200 would respectively be one of the values in lists of allowed values for a and b. I thought his concern is whether this "list of values for each column in partkey" is as convenient to store and manipulate as range partvalues.
>

Yeah and also how would user specify the values, as an example
assume that table is partitioned on monthly_salary, so partition
definition would look:

PARTITION BY LIST(monthly_salary)
(
PARTITION salary_less_than_thousand VALUES(300, 900),
PARTITION salary_less_than_two_thousand VALUES (500,1000,1500),
...
)

Now if user wants to define multi-column Partition based on
monthly_salary and annual_salary, how do we want him to
specify the values.  Basically how to distinguish which values
belong to first column key and which one's belong to second
column key.

With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: moving from contrib to bin
Next
From: Peter Geoghegan
Date:
Subject: Re: INSERT ... ON CONFLICT {UPDATE | IGNORE}