Handle duplicate XIDs in txid_snapshot.
Heikki Linnakangas <heikki.linnakangas@iki.fi>
Handle duplicate XIDs in txid_snapshot. The proc array can contain duplicate XIDs, when a transaction is just being prepared for two-phase commit. To cope, remove any duplicates in txid_current_snapshot(). Also ignore duplicates in the input functions, so that if e.g. you have an old pg_dump file that already contains duplicates, it will be accepted. Report and fix by Jan Wieck. Backpatch to all supported versions.
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/txid.c | modified | +47 −12 |
| src/test/regress/expected/txid.out | modified | +6 −4 |
| src/test/regress/sql/txid.sql | modified | +1 −1 |