diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1999-04-05 10:55:49 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1999-04-05 10:55:49 +0000 |
commit | 9cae93d3099fead04567af93f0edeabbff4d8a0c (patch) | |
tree | a61e6ec8a446dbbe97be00cd91ec8ad541b90a80 /src/backend/utils | |
parent | e91f43a1221b2a810e19a9ab3d3dad37bb7ed168 (diff) | |
download | postgresql-9cae93d3099fead04567af93f0edeabbff4d8a0c.tar.gz postgresql-9cae93d3099fead04567af93f0edeabbff4d8a0c.zip |
Fix HEAP_MOVED_OFF handling in HeapTupleSatisfiesDirty
(may be used while vacuuming unique btree-s).
Diffstat (limited to 'src/backend/utils')
-rw-r--r-- | src/backend/utils/time/tqual.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c index 47f3e25834d..26c2d43c00c 100644 --- a/src/backend/utils/time/tqual.c +++ b/src/backend/utils/time/tqual.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.26 1999/03/28 20:32:29 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.27 1999/04/05 10:55:49 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -411,6 +411,12 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple) if (tuple->t_infomask & HEAP_MOVED_OFF) { + /* + * HeapTupleSatisfiesDirty is used by unique btree-s and so + * may be used while vacuuming. + */ + if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_cmin)) + return false; if (TransactionIdDidCommit((TransactionId)tuple->t_cmin)) { tuple->t_infomask |= HEAP_XMIN_INVALID; @@ -419,6 +425,8 @@ HeapTupleSatisfiesDirty(HeapTupleHeader tuple) } else if (tuple->t_infomask & HEAP_MOVED_IN) { + if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_cmin)) + return true; if (!TransactionIdDidCommit((TransactionId)tuple->t_cmin)) { tuple->t_infomask |= HEAP_XMIN_INVALID; |