mirror of
https://github.com/postgres/postgres.git
synced 2025-10-22 14:32:25 +03:00
Switch over to using our own qsort() all the time, as has been proposed
repeatedly. Now that we don't have to worry about memory leaks from glibc's qsort, we can safely put CHECK_FOR_INTERRUPTS into the tuplesort comparators, as was requested a couple months ago. Also, get rid of non-reentrancy and an extra level of function call in tuplesort.c by providing a variant qsort_arg() API that passes an extra void * argument through to the comparison routine. (We might want to use that in other places too, I didn't look yet.)
This commit is contained in:
@@ -6,10 +6,12 @@
|
||||
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/port.h,v 1.102 2006/10/02 00:06:18 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/port.h,v 1.103 2006/10/03 22:18:23 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_PORT_H
|
||||
#define PG_PORT_H
|
||||
|
||||
#include <ctype.h>
|
||||
#include <netdb.h>
|
||||
@@ -361,3 +363,10 @@ extern int pqGethostbyname(const char *name,
|
||||
char *buffer, size_t buflen,
|
||||
struct hostent ** result,
|
||||
int *herrno);
|
||||
|
||||
typedef int (*qsort_arg_comparator) (const void *a, const void *b, void *arg);
|
||||
|
||||
extern void qsort_arg(void *base, size_t nel, size_t elsize,
|
||||
qsort_arg_comparator cmp, void *arg);
|
||||
|
||||
#endif /* PG_PORT_H */
|
||||
|
Reference in New Issue
Block a user