Re: planstate_tree_walker oversight CustomScan
От | Robert Haas |
---|---|
Тема | Re: planstate_tree_walker oversight CustomScan |
Дата | |
Msg-id | CA+TgmoYWpSKrSa=Wm6vtRi6qphg1gNjqwp9kpano18OZZfHuow@mail.gmail.com обсуждение исходный текст |
Ответ на | planstate_tree_walker oversight CustomScan (Kouhei Kaigai <kaigai@ak.jp.nec.com>) |
Ответы |
Re: planstate_tree_walker oversight CustomScan
|
Список | pgsql-hackers |
On Mon, Sep 21, 2015 at 9:54 AM, Kouhei Kaigai <kaigai@ak.jp.nec.com> wrote: > The planstate_tree_walker() oversight custom_ps of CustomScanState; > that should be a list of underlying PlanState object if any. > > ExplainPreScanNode() treated ForeignScan and CustomScan in special > way (it is sufficient for ExplainPreScanNode() purpose), thus, it > didn't implement its recursive portion originally. > > The job of ExplainPreScanNode() is know all the relids involved > in a particular subquery execution. On the other hands, fs_relids > of ForeignScan and custom_relids of CustomScan informs a set of > relids to be scanned by this Scan node without recursive, so it > did not have recursive walks on the underlying sub-plans. > > However, planstate_tree_walker() will have different expectation. > It is general walker routine, thus, it is natural users to expect > the callback is also kicked towards the underlying planstate of > CustomScan (and ForeignScan; once EPQ recheck gets solved). > > The attached patch adds support of CustomScan on the walker. Do you need to add something to ExplainPreScanNode for this as well, like if (scanrelid != 0) *rels_used = bms_add_member(*rels_used, scanrelid)? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: