• Robert Haas's avatar
    Add a new upper planner relation for partially-aggregated results. · 3bf05e09
    Robert Haas authored
    Up until now, we've abused grouped_rel->partial_pathlist as a place to
    store partial paths that have been partially aggregate, but that's
    really not correct, because a partial path for a relation is supposed
    to be one which produces the correct results with the addition of only
    a Gather or Gather Merge node, and these paths also require a Finalize
    Aggregate step.  Instead, add a new partially_group_rel which can hold
    either partial paths (which need to be gathered and then have
    aggregation finalized) or non-partial paths (which only need to have
    aggregation finalized).  This allows us to reuse generate_gather_paths
    for partially_grouped_rel instead of writing new code, so that this
    patch actually basically no net new code while making things cleaner,
    simplifying things for pending patches for partition-wise aggregate.
    
    Robert Haas and Jeevan Chalke.  The larger patch series of which this
    patch is a part was also reviewed and tested by Antonin Houska,
    Rajkumar Raghuwanshi, David Rowley, Dilip Kumar, Konstantin Knizhnik,
    Pascal Legrand, Rafia Sabih, and me.
    
    Discussion: http://postgr.es/m/CA+TgmobrzFYS3+U8a_BCy3-hOvh5UyJbC18rEcYehxhpw5=ETA@mail.gmail.com
    Discussion: http://postgr.es/m/CA+TgmoZyQEjdBNuoG9-wC5GQ5GrO4544Myo13dVptvx+uLg9uQ@mail.gmail.com
    3bf05e09
relation.h 97.4 KB