aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/execMain.c
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2017-11-02 15:51:05 +0100
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2017-11-02 15:51:05 +0100
commitb3888b60d3f04a27ceaf68cb60e2c2d100c6b753 (patch)
tree9d2509d89f02d59e9ce9f0508ecd5cadd327c1bd /src/backend/executor/execMain.c
parent7ae39519bf0eca229f7ae98a391b161c43fe88a9 (diff)
downloadpostgresql-b3888b60d3f04a27ceaf68cb60e2c2d100c6b753.tar.gz
postgresql-b3888b60d3f04a27ceaf68cb60e2c2d100c6b753.zip
Revert bogus fixes of HOT-freezing bug
It turns out we misdiagnosed what the real problem was. Revert the previous changes, because they may have worse consequences going forward. A better fix is forthcoming. The simplistic test case is kept, though disabled. Discussion: https://postgr.es/m/20171102112019.33wb7g5wp4zpjelu@alap3.anarazel.de
Diffstat (limited to 'src/backend/executor/execMain.c')
-rw-r--r--src/backend/executor/execMain.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c
index 80c8088d9ef..66331fc8b00 100644
--- a/src/backend/executor/execMain.c
+++ b/src/backend/executor/execMain.c
@@ -2243,7 +2243,8 @@ EvalPlanQualFetch(EState *estate, Relation relation, int lockmode,
* atomic, and Xmin never changes in an existing tuple, except to
* invalid or frozen, and neither of those can match priorXmax.)
*/
- if (!HeapTupleUpdateXmaxMatchesXmin(priorXmax, tuple.t_data))
+ if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple.t_data),
+ priorXmax))
{
ReleaseBuffer(buffer);
return NULL;
@@ -2390,7 +2391,8 @@ EvalPlanQualFetch(EState *estate, Relation relation, int lockmode,
/*
* As above, if xmin isn't what we're expecting, do nothing.
*/
- if (!HeapTupleUpdateXmaxMatchesXmin(priorXmax, tuple.t_data))
+ if (!TransactionIdEquals(HeapTupleHeaderGetXmin(tuple.t_data),
+ priorXmax))
{
ReleaseBuffer(buffer);
return NULL;