mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Fix potential data corruption during freeze
Fix oversight in 3b97e6823b
bug fix. Bitwise AND is used instead of OR and
it cleans all bits in t_infomask heap tuple field.
Backpatch to 9.3
This commit is contained in:
@ -6313,7 +6313,7 @@ heap_prepare_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid,
|
|||||||
frz->t_infomask &= ~HEAP_XMAX_BITS;
|
frz->t_infomask &= ~HEAP_XMAX_BITS;
|
||||||
frz->xmax = newxmax;
|
frz->xmax = newxmax;
|
||||||
if (flags & FRM_MARK_COMMITTED)
|
if (flags & FRM_MARK_COMMITTED)
|
||||||
frz->t_infomask &= HEAP_XMAX_COMMITTED;
|
frz->t_infomask |= HEAP_XMAX_COMMITTED;
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
else if (flags & FRM_RETURN_IS_MULTI)
|
else if (flags & FRM_RETURN_IS_MULTI)
|
||||||
|
Reference in New Issue
Block a user