Re: BUG #17777: An assert failed in nodeWindowAgg.c
От | Andres Freund |
---|---|
Тема | Re: BUG #17777: An assert failed in nodeWindowAgg.c |
Дата | |
Msg-id | 20230211015112.qwvmlnp5r4kyfffl@awork3.anarazel.de обсуждение исходный текст |
Ответ на | Re: BUG #17777: An assert failed in nodeWindowAgg.c (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-bugs |
Hi, On 2023-02-10 20:08:09 -0500, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > I think we could just add a !contain_subplans() to the code deciding whether > > it's safe to use the movable window optimization? > > Yeah, perhaps. That doesn't seem like a mainstream use-case either. I suspect we ought to backpatch a fix and compared to some other ideas, that seems not terribly invasive. > Another idea, tying into your previous point, is to try to check > contain_volatile_functions in the planner before we've reduced > sublinks to subplans. I'm not sure that would be convenient to do > though; subplan-conversion happens pretty early. Yea, that doesn't seem too promising. What I was referencing is that we already moved most aggregate processing to the planner, c.f. preprocess_aggref(), but we didn't do the same for window functions. Even though there's a lot of similar code there. To fix the bug, we could just do a minimal version of that, I think, and add a new field to WindowFunc, that we populate somewhere around optimize_window_clauses(). Perhaps we ought to add something similar to parallel_safe to SubPlan? > (I'm quite hesitant to move the goalposts on what > contain_volatile_functions detects. As that comment indicates, > some thought has gone into its current behavior, and I think > we might hit some unwanted side-effects if we change it.) Agreed. We could have a second "interface" function, using the same caller though. But afaics, without adding information to the SubPlan nodes, we can't really do better anyway? Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: