• Andrew Gierth's avatar
    Set scan direction appropriately for SubPlans (bug #15336) · 520acab1
    Andrew Gierth authored
    When executing a SubPlan in an expression, the EState's direction
    field was left alone, resulting in an attempt to execute the subplan
    backwards if it was encountered during a backwards scan of a cursor.
    Also, though much less likely, it was possible to reach the execution
    of an InitPlan while in backwards-scan state.
    
    Repair by saving/restoring estate->es_direction and forcing forward
    scan mode in the relevant places.
    
    Backpatch all the way, since this has been broken since 8.3 (prior to
    commit c7ff7663, SubPlans had their own EStates rather than sharing
    the parent plan's, so there was no confusion over scan direction).
    
    Per bug #15336 reported by Vladimir Baranoff; analysis and patch by
    me, review by Tom Lane.
    
    Discussion: https://postgr.es/m/153449812167.1304.1741624125628126322@wrigleys.postgresql.org
    520acab1
subselect.sql 17.1 KB