Re: Extending constraint exclusion for implied constraints/conditions

Поиск
Список
Период
Сортировка
От Ashutosh Bapat
Тема Re: Extending constraint exclusion for implied constraints/conditions
Дата
Msg-id CAFjFpRd-oi4m0=0qz7u4YnWATrrZVj6En_pjNGYgu_dJkV3_NA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Extending constraint exclusion for implied constraints/conditions  (Greg Stark <stark@mit.edu>)
Список pgsql-hackers



On Mon, Jul 7, 2014 at 11:46 PM, Greg Stark <stark@mit.edu> wrote:
On Mon, Jul 7, 2014 at 3:07 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I doubt it.  The extra code isn't the problem so much, it's the extra
> planning cycles spent trying to make proofs that will usually fail.
> What you propose will create a combinatorial explosion in the number
> of proof paths to be considered.

Well, not necessarily. You only need to consider constraints on
matching columns and only when there's a join column on those columns.
So you could imagine, for example, sorting all the constraints by the
eclass for the non-const side of their expression, then going through
them linearly to see where you have multiple constraints on the same
eclass.

For what it's worth I think there is a case where this is a common
optimization. When you have multiple tables partitioned the same way.
Then you ideally want to be able to turn that from an join of multiple
appends into an append of multiple joins. This is even more important
when it comes to a parallelizing executor since it lets you do the
joins in parallel.

Ah, right. Also, if the foreign tables come under the inheritance hierarchy,  and we want push joins to foreign servers.

However to get from here to there I guess you would need to turn the
join of the appends into NxM joins of every pair of subscans and then
figure out which ones to exclude. That would be pretty nuts. To do it
reasonably we probably need the partitioning infrastructure we've been
talking about where Postgres would know what the partitioning key is
and the order and range of the partitions so it can directly generate
the matching subjoins in less than n^2 time.

--
greg



--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: better atomics - v0.5
Следующее
От: Ashoke
Дата:
Сообщение: Re: Modifying update_attstats of analyze.c for C Strings