• Tomas Vondra's avatar
    Fix handling of REWIND/MARK/BACKWARD in incremental sort · c4427226
    Tomas Vondra authored
    The executor flags were not handled entirely correctly, although the
    bugs were mostly harmless and it was mostly comment inaccuracy. We don't
    need to strip any of the flags for child nodes.
    
    Incremental sort does not support backward scans of mark/restore, so
    MARK/BACKWARDS flags should not be possible. So we simply ensure this
    using an assert, and we don't bother removing them when initializing
    the child node.
    
    With REWIND it's a bit less clear - incremental sort does not support
    REWIND, but there is no way to signal this - it's legal to just ignore
    the flag. We however continue passing the flag to child nodes, because
    they might be useful to leverage that.
    
    Reported-by: Michael Paquier
    Author: James Coleman
    Reviewed-by: Tomas Vondra
    Discussion: https://postgr.es/m/20200414065336.GI1492@paquier.xyz
    c4427226
nodeIncrementalSort.c 42 KB