David Rowley <dgrowleyml@xxxxxxxxx> writes: > I suspect ed1a88dda would be what made this faster in master. We'll > check for peer rows to check "NULL IS NOT DISTINCT FROM NULL" prior to > that change with the ORDER BY NULL query. Mmm, yeah, probably so: "order by null rows between unbounded preceding and current row" has about the same performance in v15 as HEAD has with just "order by null". I suspect most of the remaining performance discrepancy is just triggered by having to pass the extra always-NULL column forward through the various plan steps. We could teach createplan.c to generate a WindowAgg plan node that omits the useless column from ordNumCols/ordColIdx/etc, but I'm not sure if that'd save much in itself. (The comment in create_windowagg_plan shows we already thought about that and decided it wasn't worth the trouble.) Getting rid of the useless targetlist column altogether would be way more invasive, and I'm not inclined to try. regards, tom lane