Hi, 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. Thanks, -- NEC Business Creation Division / PG-Strom Project KaiGai Kohei <kai...@ak.jp.nec.com>
pgsql-planstate_tree_walker-oversight-custom-scan.v1.patch
Description: pgsql-planstate_tree_walker-oversight-custom-scan.v1.patch
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers