diff options
Diffstat (limited to 'src/backend/utils/adt/xid.c')
-rw-r--r-- | src/backend/utils/adt/xid.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/backend/utils/adt/xid.c b/src/backend/utils/adt/xid.c index 0fbd394bbfd..2cb197fbff8 100644 --- a/src/backend/utils/adt/xid.c +++ b/src/backend/utils/adt/xid.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/adt/xid.c,v 1.12 2009/01/01 17:23:50 momjian Exp $ + * $PostgreSQL: pgsql/src/backend/utils/adt/xid.c,v 1.13 2009/12/19 01:32:36 sriggs Exp $ * *------------------------------------------------------------------------- */ @@ -102,6 +102,25 @@ xid_age(PG_FUNCTION_ARGS) PG_RETURN_INT32((int32) (now - xid)); } +/* + * xidComparator + * qsort comparison function for XIDs + * + * We can't use wraparound comparison for XIDs because that does not respect + * the triangle inequality! Any old sort order will do. + */ +int +xidComparator(const void *arg1, const void *arg2) +{ + TransactionId xid1 = *(const TransactionId *) arg1; + TransactionId xid2 = *(const TransactionId *) arg2; + + if (xid1 > xid2) + return 1; + if (xid1 < xid2) + return -1; + return 0; +} /***************************************************************************** * COMMAND IDENTIFIER ROUTINES * |