| From: | Mark Kirkwood <mark(dot)kirkwood(at)catalyst(dot)net(dot)nz> |
|---|---|
| To: | Ashutosh Bapat <ashutosh(dot)bapat(at)enterprisedb(dot)com>, legrand legrand <legrand_legrand(at)hotmail(dot)com> |
| Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: Partition pruning for Star Schema |
| Date: | 2017-12-08 21:29:28 |
| Message-ID: | 4493a2fe-d31f-9466-134e-436456a60ed2@catalyst.net.nz |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On 04/12/17 17:20, Mark Kirkwood wrote:
> On 04/12/17 16:08, Ashutosh Bapat wrote:
>
>> On Sun, Dec 3, 2017 at 5:56 AM, legrand legrand
>> <legrand_legrand(at)hotmail(dot)com> wrote:
>>> Hello,
>>>
>>> I have a typical star schema, having dimension tables "product",
>>> "calendar"
>>> and "country" and a fact table "sales".
>>> This fact table is partitionned by time (range by month) and country
>>> (list).
>>>
>>> Will query like:
>>>
>>> select product.name, calendar.month, sum(sales.net_price)
>>> from sales
>>> inner join product on (product.id = sales.cust_id)
>>> inner join country on (country.id = sales.country_id)
>>> inner join calendar on (calendar.id = sales.calendar_id)
>>> where
>>> country.name = 'HERE'
>>> and calendar.year = '2017'
>>> group by product.name,calendar.month
>>>
>>> be able to identify needed partitions ?
>>>
>> AFAIU partition pruning, it works only with the partition key columns.
>> So, if country.name and calendar.year are the partition keys partition
>> pruning would identify the needed partitions from those tables. But
>> planner doesn't know that calendar.year is somehow related to
>> calendar.id and then transfer that knowledge so that partitions of
>> sales can be identified.
>>
>
> If you can get your code to perform a star transformation on this type
> of query, then you might see some partition pruning.
>
Actually it won't - sorry. To get that to work, you would need to
evaluate the additional subqueries to produce fixed values! The patch
for 'runtime partition pruning' might be what you want tho.
Cheers
Mark
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alexander Korotkov | 2017-12-08 21:38:39 | Re: [HACKERS] Re: Is anything preventing us from allowing write to foreign tables from standby? |
| Previous Message | Robert Haas | 2017-12-08 20:53:42 | Re: [HACKERS] postgres_fdw bug in 9.6 |