Remove redundant PARTITION BY columns from WindowClauses Here we adjust the query planner to have it remove items from a window clause's PARTITION BY clause in cases where the pathkey for a column in the PARTITION BY clause is redundant.
Doing this allows the optimization added in 9d9c02ccd to stop window aggregation early rather than going into "pass-through" mode to find tuples belonging to the next partition. Also, when we manage to remove all PARTITION BY columns, we now no longer needlessly check that the current tuple belongs to the same partition as the last tuple in nodeWindowAgg.c. If the pathkey was redundant then all tuples must contain the same value for the given redundant column, so there's no point in checking that during execution. Author: David Rowley Reviewed-by: Richard Guo Discussion: https://postgr.es/m/caaphdvo2ji+hdxrxfxtrtsfsvw3to2o1nco20qimw0dugk8...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/c65102006b686ea26194fb539d7a416a089300e0 Modified Files -------------- src/backend/optimizer/plan/createplan.c | 7 +---- src/backend/optimizer/plan/planner.c | 51 +++++++++++++++++++++++++++------ src/include/nodes/parsenodes.h | 2 ++ 3 files changed, 46 insertions(+), 14 deletions(-)