diff options
author | Tom Lane | 2012-11-26 20:55:43 +0000 |
---|---|---|
committer | Tom Lane | 2012-11-26 20:55:43 +0000 |
commit | 532994299e2ff208a58376134fab75f5ae471e41 (patch) | |
tree | 640a22d6172d9dbdccf88ecc1195c6a23a3b0a8c /src/backend/commands | |
parent | d3237e04ca380d6c08f6133fde97a9d956e3161a (diff) |
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.
Diffstat (limited to 'src/backend/commands')
-rw-r--r-- | src/backend/commands/portalcmds.c | 2 | ||||
-rw-r--r-- | src/backend/commands/prepare.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/commands/portalcmds.c b/src/backend/commands/portalcmds.c index e4020423325..b5ce87a29d2 100644 --- a/src/backend/commands/portalcmds.c +++ b/src/backend/commands/portalcmds.c @@ -121,7 +121,7 @@ PerformCursorOpen(PlannedStmt *stmt, ParamListInfo params, /* * Start execution, inserting parameters if any. */ - PortalStart(portal, params, 0, true); + PortalStart(portal, params, 0, GetActiveSnapshot()); Assert(portal->strategy == PORTAL_ONE_SELECT); diff --git a/src/backend/commands/prepare.c b/src/backend/commands/prepare.c index 9f993de6f1a..91ef5507e2c 100644 --- a/src/backend/commands/prepare.c +++ b/src/backend/commands/prepare.c @@ -289,7 +289,7 @@ ExecuteQuery(ExecuteStmt *stmt, IntoClause *intoClause, /* * Run the portal as appropriate. */ - PortalStart(portal, paramLI, eflags, true); + PortalStart(portal, paramLI, eflags, GetActiveSnapshot()); (void) PortalRun(portal, count, false, dest, dest, completionTag); |