aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/time/tqual.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/time/tqual.c')
-rw-r--r--src/backend/utils/time/tqual.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c
index a5843004733..1fcf3679fe4 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.3 1997/08/19 21:36:12 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.4 1997/08/29 09:04:54 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -580,6 +580,13 @@ HeapTupleSatisfiesItself(HeapTuple tuple)
* (Xmax is not committed && the row was deleted by another transaction
* Xmax != my-transaction)))) that has not been committed
*
+ * XXX
+ * CommandId stuff didn't work properly if one used SQL-functions in
+ * UPDATE/INSERT(fromSELECT)/DELETE scans: SQL-funcs call
+ * CommandCounterIncrement and made tuples changed/inserted by
+ * current command visible to command itself (so we had multiple
+ * update of updated tuples, etc). - vadim 08/29/97
+ *
* mao says 17 march 1993: the tests in this routine are correct;
* if you think they're not, you're wrong, and you should think
* about it again. i know, it happened to me. we don't need to
@@ -615,13 +622,13 @@ HeapTupleSatisfiesNow(HeapTuple tuple)
if (!AbsoluteTimeIsBackwardCompatiblyValid(tuple->t_tmin)) {
if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmin)
- && CommandIdIsCurrentCommandId(tuple->t_cmin)) {
+ && CommandIdGEScanCommandId(tuple->t_cmin)) {
return (false);
}
if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmin)
- && !CommandIdIsCurrentCommandId(tuple->t_cmin)) {
+ && !CommandIdGEScanCommandId(tuple->t_cmin)) {
if (!TransactionIdIsValid((TransactionId)tuple->t_xmax)) {
return (true);
@@ -629,7 +636,7 @@ HeapTupleSatisfiesNow(HeapTuple tuple)
Assert(TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmax));
- if (CommandIdIsCurrentCommandId(tuple->t_cmax)) {
+ if (CommandIdGEScanCommandId(tuple->t_cmax)) {
return (true);
}
}
@@ -813,13 +820,13 @@ HeapTupleSatisfiesUpperUnboundedInternalTimeQual(HeapTuple tuple,
if (!AbsoluteTimeIsBackwardCompatiblyValid(tuple->t_tmin)) {
if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmin) &&
- CommandIdIsCurrentCommandId(tuple->t_cmin)) {
+ CommandIdGEScanCommandId(tuple->t_cmin)) {
return (false);
}
if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmin) &&
- !CommandIdIsCurrentCommandId(tuple->t_cmin)) {
+ !CommandIdGEScanCommandId(tuple->t_cmin)) {
if (!TransactionIdIsValid((TransactionId)tuple->t_xmax)) {
return (true);
@@ -827,7 +834,7 @@ HeapTupleSatisfiesUpperUnboundedInternalTimeQual(HeapTuple tuple,
Assert(TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmax));
- return ((bool) !CommandIdIsCurrentCommandId(tuple->t_cmax));
+ return ((bool) !CommandIdGEScanCommandId(tuple->t_cmax));
}
if (!TransactionIdDidCommit((TransactionId)tuple->t_xmin)) {
@@ -849,7 +856,8 @@ HeapTupleSatisfiesUpperUnboundedInternalTimeQual(HeapTuple tuple,
}
if (TransactionIdIsCurrentTransactionId((TransactionId)tuple->t_xmax)) {
- return (CommandIdIsCurrentCommandId(tuple->t_cmin));
+ return (CommandIdGEScanCommandId(tuple->t_cmin));
+ /* it looks like error ^^^^ */
}
if (!TransactionIdDidCommit((TransactionId)tuple->t_xmax)) {