Revert patch for taking fewer snapshots.
Tom Lane <tgl@sss.pgh.pa.us>
Revert patch for taking fewer snapshots. This reverts commit d573e239f03506920938bf0be56c868d9c3416da, "Take fewer snapshots". While that seemed like a good idea at the time, it caused execution to use a snapshot that had been acquired before locking any of the tables mentioned in the query. This created user-visible anomalies that were not present in any prior release of Postgres, as reported by Tomas Vondra. While this whole area could do with a redesign (since there are related cases that have anomalies anyway), it doesn't seem likely that any future patch would be reasonably back-patchable; and we don't want 9.2 to exhibit a behavior that's subtly unlike either past or future releases. Hence, revert to prior code while we rethink the problem.
Files
| Path | Change | +/− |
|---|---|---|
| doc/src/sgml/release-9.2.sgml | modified | +0 −7 |
| src/backend/commands/portalcmds.c | modified | +1 −1 |
| src/backend/commands/prepare.c | modified | +1 −1 |
| src/backend/executor/spi.c | modified | +11 −7 |
| src/backend/tcop/postgres.c | modified | +11 −21 |
| src/backend/tcop/pquery.c | modified | +7 −8 |
| src/include/tcop/pquery.h | modified | +1 −1 |