On Fri, Sep 18, 2015 at 5:31 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > > On Thu, Sep 17, 2015 at 4:44 PM, Robert Haas <robertmh...@gmail.com> wrote: > > > > I haven't studied the planner logic in enough detail yet to have a > > clear opinion on this. But what I do think is that this is a very > > good reason why we should bite the bullet and add outfuncs/readfuncs > > support for all Plan nodes. Otherwise, we're going to have to scan > > subplans for nodes we're not expecting to see there, which seems > > silly. We eventually want to allow all of those nodes in the worker > > anyway. > > > > makes sense to me. There are 39 plan nodes and it seems we have > support for all of them in outfuncs and needs to add for most of them > in readfuncs. >
Attached patch (read_funcs_v1.patch) contains support for all the plan and other nodes (like SubPlan which could be required for worker) except CustomScan node. CustomScan contains TextOutCustomScan and doesn't contain corresponding Read function pointer, we could add the support for same, but I am not sure if CustomScan is required to be passed to worker in near future, so I am leaving it for now. To verify the patch, I have done 2 things, first I have added elog to the newly supported read funcs and then in planner, I have used nodeToString and stringToNode on planned_stmt and then used the newly generated planned_stmt for further execution. After making these changes, I have ran make check-world and ensures that it covers all the newly added nodes. Note, that as we don't populate funcid's in expressions during read, the same has to be updated by traversing the tree and updating in different expressions based on node type. Attached patch (read_funcs_test_v1) contains the changes required for testing the patch. I am not very sure about what do about some of the ForeignScan fields (fdw_private) in order to update the funcid as the data in those expressions could be FDW specific. This is anyway for test, so doesn't matter much, but the same will be required to support read of ForeignScan node by worker. With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com
read_funcs_v1.patch
Description: Binary data
read_funcs_test_v1.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers