Re: Allowing join removals for more join types

Поиск
Список
Период
Сортировка
От Dilip kumar
Тема Re: Allowing join removals for more join types
Дата
Msg-id 4205E661176A124FAF891E0A6BA91352663126FA@szxeml509-mbs.china.huawei.com
обсуждение исходный текст
Ответ на Re: Allowing join removals for more join types  (David Rowley <dgrowleyml@gmail.com>)
Ответы Re: Allowing join removals for more join types
Список pgsql-hackers
<div class="WordSection1"><p class="MsoNormal"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">On</span><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"></span><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">23May 2014 12:43 David Rowley Wrote,</span><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"></span><pclass="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><pclass="MsoNormal">>I'm hitting a
bitof a roadblock on point 1. Here's a snipped from my latest attempt:<p class="MsoNormal"> <p
class="MsoNormal">>                     if (bms_membership(innerrel->relids) == BMS_SINGLETON)<p
class="MsoNormal">>                     {<p class="MsoNormal">>                                  int
subqueryrelid= bms_singleton_member(innerrel->relids);<p class="MsoNormal">>                                 
RelOptInfo*subqueryrel = find_base_rel(innerrel->subroot, subqueryrelid);<p
class="MsoNormal">>                     <p class="MsoNormal">>                                  if
(relation_has_unique_index_for(root,subqueryrel, clause_list, NIL, NIL))<p
class="MsoNormal">>                                             return true;<p
class="MsoNormal">>                     }<p class="MsoNormal"> <p class="MsoNormal">>But it seems that
innerrel->subrootis still NULL at this stage of planning and from what I can tell does not exist anywhere else yet
andis not generated until make_one_rel() is called from query_planner()<p class="MsoNormal"> <p
class="MsoNormal">>AmI missing something major here,or does this sound about right?<p class="MsoNormal"> <p
class="MsoNormal">It’strue that, till this point of time we haven’t prepared the base relation list for the subquery,
andthat will be done from make_one_rel while generating the SUBQURY path list.<p class="MsoNormal"> <p
class="MsoNormal">Ican think of one solution but I think it will be messy…<p class="MsoNormal"> <p class="MsoNormal">We
getthe base relation info directly from subquery <p class="MsoNormal">Like currently in your patch (shown in below
snippet)we are getting the distinct and groupby clause from sub Query,  similarly we can get base relation info from 
(Query->jointree)<pclass="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><pclass="MsoNormal">            if
(innerrel->rtekind== RTE_SUBQUERY)<p class="MsoNormal">            {<p class="MsoNormal">                       
Query*query = root->simple_rte_array[innerrelid]->subquery;<p class="MsoNormal"> <p
class="MsoNormal">                       if (sortclause_is_unique_on_restrictinfo(query, clause_list,
query->groupClause)||<p class="MsoNormal">                                   
sortclause_is_unique_on_restrictinfo(query,clause_list, query->distinctClause))<p
class="MsoNormal">                                   return true;<p class="MsoNormal">            }<p
class="MsoNormal"><spanstyle="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><p
class="MsoNormal"><spanstyle="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><p
class="MsoNormal">Regards,<pclass="MsoNormal">Dilip</div> 

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

Предыдущее
От: Matteo Beccati
Дата:
Сообщение: Re: uuid-ossp (Re: [pgsql-packagers] Postgresapp 9.4 beta build ready)
Следующее
От: Shigeru Hanada
Дата:
Сообщение: fix worker_spi to run as non-dynamic background worker