• H
    Remove row order information from Flow. · 7e268107
    Heikki Linnakangas 提交于
    A Motion node often needs to "merge" the incoming streams, to preserve the
    overall sort order. Instead of carrying sort order information throughout
    the later stages of planning, in the Flow struct, pass it as argument
    directly to make_motion() and other functions, where a Motion node is
    created. This simplifies things.
    
    To make that work, we can no longer rely on apply_motion() to add the final
    Motion on top of the plan, when the (sub-)query contains an ORDER BY. That's
    because we no longer have that information available at apply_motion(). Add
    the Motion node in grouping_planner() instead, where we still have that
    information, as a path key.
    
    When I started to work on this, this also fixed a bug, where the sortColIdx
    of plan flow node may refer to wrong resno. A test case for that is
    included. However, that case was since fixed by other coincidental changes
    to partition elimination, so now this is just refactoring.
    7e268107
cdbsetop.c 12.9 KB