( \
((action) == REORDER_BUFFER_CHANGE_INTERNAL_SPEC_INSERT) \
)
-#define IsSpecConfirm(action) \
+#define IsSpecConfirmOrAbort(action) \
( \
- ((action) == REORDER_BUFFER_CHANGE_INTERNAL_SPEC_CONFIRM) \
+ (((action) == REORDER_BUFFER_CHANGE_INTERNAL_SPEC_CONFIRM) || \
+ ((action) == REORDER_BUFFER_CHANGE_INTERNAL_SPEC_ABORT)) \
)
#define IsInsertOrUpdate(action) \
( \
/*
* Indicate a partial change for speculative inserts. The change will be
- * considered as complete once we get the speculative confirm token.
+ * considered as complete once we get the speculative confirm or abort
+ * token.
*/
if (IsSpecInsert(change->action))
toptxn->txn_flags |= RBTXN_HAS_PARTIAL_CHANGE;
else if (rbtxn_has_partial_change(toptxn) &&
- IsSpecConfirm(change->action))
+ IsSpecConfirmOrAbort(change->action))
toptxn->txn_flags &= ~RBTXN_HAS_PARTIAL_CHANGE;
/*