Ensure that a cursor has an immutable snapshot throughout its lifespan.

Alvaro Herrera <alvherre@alvh.no-ip.org>

Commit: caa4cfa3697472a6673eb817eb34681684cba14f
Author: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: 2009-10-02T17:57:30Z
Releases: 9.0.0
Ensure that a cursor has an immutable snapshot throughout its lifespan.

The old coding was using a regular snapshot, referenced elsewhere, that was
subject to having its command counter updated.  Fix by creating a private copy
of the snapshot exclusively for the cursor.

Backpatch to 8.4, which is when the bug was introduced during the snapshot
management rewrite.

Files