When I am understanding the relationship between Query->rtable and root->simple_rte_array, I'd like to assume that Query->rtable should be never used when root->simple_rte_array is ready. I mainly checked two places, make_one_rel and create_plan with the below hacks.
{ List *l = root->parse->rtable; root->parse->rtable = NIL; make_one_rel.. or create_plan_recurse.. root->parse->rtable = l; } Then I found adjust_appendrel_attrs_mutator and infer_arbiter_indexes still use it. The attached patch fixed it by replacing the rt_fetch with planner_rt_fetch, all the tests passed. -- Best Regards Andy Fan (https://www.aliyun.com/)
v1-0001-Use-planner_rt_fetch-instead-of-rt_fetch-when-roo.patch
Description: Binary data