Re: Removing unneeded self joins

Поиск
Список
Период
Сортировка
От Andrey Lepikhov
Тема Re: Removing unneeded self joins
Дата
Msg-id 0fd15c10-eaa5-51bd-b5c7-e635fe03a94d@postgrespro.ru
обсуждение исходный текст
Ответ на Re: Removing unneeded self joins  (Zhihong Yu <zyu@yugabyte.com>)
Ответы Re: Removing unneeded self joins  (Andrey Lepikhov <a.lepikhov@postgrespro.ru>)
Список pgsql-hackers
On 8/29/22 04:39, Zhihong Yu wrote:
> 
> 
> On Fri, Aug 26, 2022 at 3:02 PM Zhihong Yu <zyu@yugabyte.com 
> <mailto:zyu@yugabyte.com>> wrote:
> 
>     Hi,
>     For v36-0001-Remove-self-joins.patch :
> 
>     bq removes inner join of plane table to itself
> 
>     plane table -> plain table
> 
>     For relation_has_unique_index_ext(), it seems when extra_clauses
>     is NULL, there is no need to compute `exprs`.
> 
>     Cheers
Done
> 
> 
> For remove_self_joins_recurse():
> 
> +                   if (bms_num_members(relids) > join_collapse_limit)
> +                       break;
> 
> The above line just comes out of the switch statement. This check should 
> be done again between foreach and switch.
> Otherwise the above check wouldn't achieve what you want.
> 
> Cheers
Thanks for highlighting the problem.
I guess, usage either of join_collapse_limit or from_collapse_limit 
isn't practical here.
That we really afraid here - many senseless search cycles of self-joins. 
And it may have higher limit than GUCs above. So I introduced a guc, 
called "self_join_search_limit" (so far undocumented) that is an 
explicit limit for a set of plain relations in FROM-list to search 
self-joins.

-- 
Regards
Andrey Lepikhov
Postgres Professional
Вложения

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

Предыдущее
От: Noah Misch
Дата:
Сообщение: Re: privileges for ALTER ROLE/DATABASE SET
Следующее
От: John Naylor
Дата:
Сообщение: Re: Insertion Sort Improvements