Re: Removing unneeded self joins

Поиск
Список
Период
Сортировка
От Andrey V. Lepikhov
Тема Re: Removing unneeded self joins
Дата
Msg-id 30b38869-9430-31fb-39e1-c735074b9259@postgrespro.ru
обсуждение исходный текст
Ответ на Re: Removing unneeded self joins  (David Rowley <dgrowleyml@gmail.com>)
Ответы Re: Removing unneeded self joins  (Anastasia Lubennikova <a.lubennikova@postgrespro.ru>)
Re: Removing unneeded self joins  (Heikki Linnakangas <hlinnaka@iki.fi>)
Список pgsql-hackers
Thank you for this partial review, I included your changes:

On 9/23/20 9:23 AM, David Rowley wrote:
> On Fri, 3 Apr 2020 at 17:43, Andrey Lepikhov <a.lepikhov@postgrespro.ru> wrote:
> Doing thing the way I describe will allow you to get rid of all the
> UniqueRelInfo stuff.
Thanks for the review and sorry for the late reply.
I fixed small mistakes, mentioned in your letter.
Also I rewrote this patch at your suggestion [1].
Because of many changes, this patch can be viewed as a sketch.

To change self-join detection algorithm I used your delta patch from 
[2]. I added in the split_selfjoin_quals routine complex expressions 
handling for demonstration. But, it is not very useful with current 
infrastructure, i think.

Also I implemented one additional way for self-join detection algorithm: 
if the join target list isn't contained vars from inner relation, then 
we can detect self-join with only quals like a1.x=a2.y if check 
innerrel_is_unique is true.
Analysis of the target list is contained in the new routine - 
tlist_contains_rel_exprs - rewritten version of the build_joinrel_tlist 
routine.

Also changes of the join_is_removable() routine is removed from the 
patch. I couldn't understand why it is needed here.

Note, this patch causes change of one join.sql regression test output. 
It is not a bug, but maybe fixed.

Applied over commit 4a071afbd0.

 > [1] 
https://www.postgresql.org/message-id/CAKJS1f8p-KiEujr12k-oa52JNWWaQUjEjNg%2Bo1MGZk4mHBn_Rg%40mail.gmail.com
[2] 
https://www.postgresql.org/message-id/CAKJS1f8cJOCGyoxi7a_LG7eu%2BWKF9%2BHTff3wp1KKS5gcUg2Qfg%40mail.gmail.com

-- 
regards,
Andrey Lepikhov
Postgres Professional

Вложения

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

Предыдущее
От: Justin Pryzby
Дата:
Сообщение: CREATE INDEX CONCURRENTLY on partitioned index
Следующее
От: Bharath Rupireddy
Дата:
Сообщение: Re: A new function to wait for the backend exit after termination