Adjust reltarget assignment for UPPERREL_PARTIAL_DISTINCT rel
authorDavid Rowley <drowley@postgresql.org>
Wed, 7 Feb 2024 08:22:34 +0000 (21:22 +1300)
committerDavid Rowley <drowley@postgresql.org>
Wed, 7 Feb 2024 08:22:34 +0000 (21:22 +1300)
commit902900b308fb38543b95526b1f384bf3cce2f514
treea6dc1348a0fb140331898a777342e8583c65d2a2
parentaa5edbe379d645e980f927b01379bdad9bc6c295
Adjust reltarget assignment for UPPERREL_PARTIAL_DISTINCT rel

A comment in grouping_planner() claimed that the PlannerInfo
upper_targets array was not used in core code.  However, the code that
generated the paths for the UPPERREL_PARTIAL_DISTINCT rel made that
comment untrue.

Here we adjust the create_distinct_paths() function signature to pass
down the PathTarget the same as is done for create_grouping_paths(),
thus making the aforementioned comment true again.

In passing adjust the order of the upper_targets[] assignments.  These
seem to be following the reverse enum order apart from
UPPERREL_PARTIAL_DISTINCT.

Also, update the header comment for generate_gather_paths() to mention
the function is also used to create gather paths for partial distinct
paths.

Author: Richard Guo, David Rowley
Discussion: https://postgr.es/m/CAMbWs48u9VoVOouJsys1qOaC9WVGVmBa+wT1dx8KvxF5GPzezA@mail.gmail.com
src/backend/optimizer/path/allpaths.c
src/backend/optimizer/plan/planner.c