Re: BUG #18652: Planner can not find pathkey item to sort for query with expression and expression index
От | Alena Rybakina |
---|---|
Тема | Re: BUG #18652: Planner can not find pathkey item to sort for query with expression and expression index |
Дата | |
Msg-id | a6d1779d-6cfb-4adf-8c79-f547af44c239@postgrespro.ru обсуждение исходный текст |
Ответ на | Re: BUG #18652: Planner can not find pathkey item to sort for query with expression and expression index (Alena Rybakina <a.rybakina@postgrespro.ru>) |
Список | pgsql-bugs |
On 11.10.2024 11:02, Alena Rybakina wrote: > On 10.10.2024 14:57, Richard Guo wrote: >> On Thu, Oct 10, 2024 at 12:34 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >>> So it's specific to MergeAppend and it's been wrong from day zero. >>> That makes me think it's probably not find_computable_ec_member's >>> fault directly. Fixing it there might be the most expedient answer, >>> but I feel like first we should drill down a bit further to understand >>> the root problem. I'm too tired to do more tonight though. >> Usually a relation's targetlist should include only Vars and PHVs >> during this phase. I think this may be the rationale behind >> find_computable_ec_member matching only Vars and quasi-Vars. However, >> for a child rel, when we copy the parent's targetlist with appropriate >> substitution, we may generate arbitrary expressions, such as an OpExpr >> for 'i + 1' in this case. >> >> We have a note in the comments in set_append_rel_size saying that >> >> * Code that might be looking at an appendrel child must cope with >> * such. >> >> It seems to me that find_computable_ec_member does not get this memo. >> >> Alternatively, can we wrap non-var expressions in a childrel's >> targetlist into PHVs, so that we do not need special handling for an >> appendrel child? I have not tried this though. >> > To be honest, looking at the MergeAppend processing plan, it’s not > entirely clear to me what the functional difference is between > set_rel_pathlist and > > find_computable_ec_member. Both prepare pathkeys , but what the first > function doesn't do is what the other one needs to do?Could you > explain it to me? > Sorry, I meant add_child_rel_equivalences function I've just understood it. Sorry for noise -- Regards, Alena Rybakina Postgres Professional
В списке pgsql-bugs по дате отправления: