• Tom Lane's avatar
    Fix an error in the original coding of holdable cursors: PersistHoldablePortal · 5b706ba4
    Tom Lane authored
    thought that it didn't have to reposition the underlying tuplestore if the
    portal is atEnd.  But this is not so, because tuplestores have separate read
    and write cursors ... and the read cursor hasn't moved from the start.
    This mistake explains bug #2970 from William Zhang.
    
    Note: the coding here is pretty inefficient, but given that no one has noticed
    this bug until now, I'd say hardly anyone uses the case where the cursor has
    been advanced before being persisted.  So maybe it's not worth worrying about.
    5b706ba4
portalcmds.c 12.7 KB