mirror of
https://github.com/postgres/postgres.git
synced 2025-06-01 14:21:49 +03:00
Fix potential data corruption during freeze
Fix oversight in 3b97e6823b94 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:
parent
543e00bc1f
commit
f371cc9e9f
@ -5737,7 +5737,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)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user