Shorter iterations of join_info_list

Поиск
Список
Период
Сортировка
От Antonin Houska
Тема Shorter iterations of join_info_list
Дата
Msg-id 51D19C1E.10004@gmail.com
обсуждение исходный текст
Ответы Re: Shorter iterations of join_info_list  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
As far as I understand, deconstruct_recurse() ensures that 
SpecialJoinInfo of a new join always gets added to higher position in 
join_info_list than SJ infos of all joins located below the new join in 
the tree. I wonder if we can rely on that fact sometimes.

One possible use case could be 
placeholder.c:update_placeholder_eval_levels():
  1. The first (in terms of position in join_info_list) join above 
phinfo->ph_var->phrels can be marked as the (exclusive) upper bound for 
all iterations.
  2. The first join for which particular iteration of SJ infos 
identifies the necessity to extend eval_at can be marked in 
join_info_list as (exclusive) lower bound for the next iteration. This 
is because that addition can only affect parents of the join whose 
relations we just added to eval_at. And these essentially can't be 
located at lower positions in join_info_list.

The lower limit could also be used in initsplan.c:check_outerjoin_delay().

Is this worth a patch? It's not much coding but I'd appreciate some 
feedback before I try to do anything.

Thanks,
Antonin Houska (Tony)



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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: request a new feature in fuzzystrmatch
Следующее
От: David Fetter
Дата:
Сообщение: Re: Documentation/help for materialized and recursive views