diff options
author | Thomas Munro <tmunro@postgresql.org> | 2019-11-07 16:51:04 +1300 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2019-11-07 17:00:48 +1300 |
commit | 7815e7efdb4ce9575b5d8460beb0dd2569d7ca3a (patch) | |
tree | dc3d1795259ab8c2dafc371cbd89725b43abc2da /src/backend/executor/nodeTidscan.c | |
parent | 3feb6ace7cfe8edbf6db702de06dc9295f307a8e (diff) | |
download | postgresql-7815e7efdb4ce9575b5d8460beb0dd2569d7ca3a.tar.gz postgresql-7815e7efdb4ce9575b5d8460beb0dd2569d7ca3a.zip |
Add reusable routine for making arrays unique.
Introduce qunique() and qunique_arg(), which can be used after qsort()
and qsort_arg() respectively to remove duplicate values. Use it where
appropriate.
Author: Thomas Munro
Reviewed-by: Tom Lane (in an earlier version)
Discussion: https://postgr.es/m/CAEepm%3D2vmFTNpAmwbGGD2WaryM6T3hSDVKQPfUwjdD_5XY6vAA%40mail.gmail.com
Diffstat (limited to 'src/backend/executor/nodeTidscan.c')
-rw-r--r-- | src/backend/executor/nodeTidscan.c | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/backend/executor/nodeTidscan.c b/src/backend/executor/nodeTidscan.c index 8cf22d5bf00..a59480f9068 100644 --- a/src/backend/executor/nodeTidscan.c +++ b/src/backend/executor/nodeTidscan.c @@ -27,6 +27,7 @@ #include "catalog/pg_type.h" #include "executor/execdebug.h" #include "executor/nodeTidscan.h" +#include "lib/qunique.h" #include "miscadmin.h" #include "nodes/nodeFuncs.h" #include "storage/bufmgr.h" @@ -260,21 +261,13 @@ TidListEval(TidScanState *tidstate) */ if (numTids > 1) { - int lastTid; - int i; - /* CurrentOfExpr could never appear OR'd with something else */ Assert(!tidstate->tss_isCurrentOf); qsort((void *) tidList, numTids, sizeof(ItemPointerData), itemptr_comparator); - lastTid = 0; - for (i = 1; i < numTids; i++) - { - if (!ItemPointerEquals(&tidList[lastTid], &tidList[i])) - tidList[++lastTid] = tidList[i]; - } - numTids = lastTid + 1; + numTids = qunique(tidList, numTids, sizeof(ItemPointerData), + itemptr_comparator); } tidstate->tss_TidList = tidList; |