Re: [HACKERS] [POC] hash partitioning

Поиск
Список
Период
Сортировка
От Jesper Pedersen
Тема Re: [HACKERS] [POC] hash partitioning
Дата
Msg-id 579077fd-8f07-aff7-39bc-b92c855cdb70@redhat.com
обсуждение исходный текст
Ответ на Re: [HACKERS] [POC] hash partitioning  (amul sul <sulamul@gmail.com>)
Ответы Re: [HACKERS] [POC] hash partitioning  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
Hi Amul,

On 09/14/2017 04:58 AM, amul sul wrote:
> On Wed, Sep 13, 2017 at 7:43 PM, Jesper Pedersen <jesper.pedersen@redhat.com
>> This patch needs a rebase.
>>
>>
> Thanks for your note.
> ​ ​
> Attached is the patch rebased on the latest master head.
> Also added error on ​creating ​​default partition ​for the hash partitioned table​,
> and updated document & test script for the same.
> 

Thanks !

When I do

CREATE TABLE mytab (  a integer NOT NULL,  b integer NOT NULL,  c integer,  d integer
) PARTITION BY HASH (b);

and create 64 partitions;

CREATE TABLE mytab_p00 PARTITION OF mytab FOR VALUES WITH (MODULUS 64, 
REMAINDER 0);
...
CREATE TABLE mytab_p63 PARTITION OF mytab FOR VALUES WITH (MODULUS 64, 
REMAINDER 63);

and associated indexes

CREATE INDEX idx_p00 ON mytab_p00 USING btree (b, a);
...
CREATE INDEX idx_p63 ON mytab_p63 USING btree (b, a);

Populate the database, and do ANALYZE.

Given

EXPLAIN (ANALYZE, VERBOSE, BUFFERS ON) SELECT a, b, c, d FROM mytab 
WHERE b = 42

gives

Append  -> Index Scan using idx_p00 (cost rows=7) (actual rows=0)  ...  -> Index Scan using idx_p63 (cost rows=7)
(actualrows=0)
 

E.g. all partitions are being scanned. Of course one partition will 
contain the rows I'm looking for.

Best regards, Jesper


-- 
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 по дате отправления:

Предыдущее
От: Konstantin Knizhnik
Дата:
Сообщение: Re: [HACKERS] Surjective functional indexes
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: [HACKERS] Re: [COMMITTERS] pgsql: Use MINVALUE/MAXVALUE insteadof UNBOUNDED for range partition b