diff options
Diffstat (limited to 'src/backend/utils/adt/txid.c')
-rw-r--r-- | src/backend/utils/adt/txid.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/src/backend/utils/adt/txid.c b/src/backend/utils/adt/txid.c index 90b2c9b6948..e220c5f1364 100644 --- a/src/backend/utils/adt/txid.c +++ b/src/backend/utils/adt/txid.c @@ -27,6 +27,7 @@ #include "access/xlog.h" #include "funcapi.h" #include "miscadmin.h" +#include "lib/qunique.h" #include "libpq/pqformat.h" #include "postmaster/postmaster.h" #include "storage/lwlock.h" @@ -213,26 +214,10 @@ cmp_txid(const void *aa, const void *bb) static void sort_snapshot(TxidSnapshot *snap) { - txid last = 0; - int nxip, - idx1, - idx2; - if (snap->nxip > 1) { qsort(snap->xip, snap->nxip, sizeof(txid), cmp_txid); - - /* remove duplicates */ - nxip = snap->nxip; - idx1 = idx2 = 0; - while (idx1 < nxip) - { - if (snap->xip[idx1] != last) - last = snap->xip[idx2++] = snap->xip[idx1]; - else - snap->nxip--; - idx1++; - } + snap->nxip = qunique(snap->xip, snap->nxip, sizeof(txid), cmp_txid); } } |