* Fix character string comparison for Windows locales that consider different character combinations as equal * Repair corner-case bugs in "VACUUM FULL" * Fix misbehavior of foreign key checks involving character or bit columns * Avoid needless deadlock failures in no-op foreign-key checks * Fix possible core dump when re-planning a prepared query * Fix possible failure when re-planning a query that calls an SPI-using function * Fix failure in row-wise comparisons involving columns of different datatypes * Fix longstanding "LISTEN"/"NOTIFY" race condition * Disallow "LISTEN" and "UNLISTEN" within a prepared transaction * Disallow dropping a temporary table within a prepared transaction * Fix rare crash when an error occurs during a query using a hash index * Fix incorrect comparison of tsquery values * Fix incorrect behavior of LIKE with non-ASCII characters in single-byte encodings * Disable xmlvalidate
78 lines
1.7 KiB
Text
78 lines
1.7 KiB
Text
$NetBSD: patch-ad,v 1.2 2008/04/05 16:39:27 adam Exp $
|
|
|
|
--- src/backend/port/dynloader/netbsd.c.orig 2008-04-05 10:45:52.000000000 +0200
|
|
+++ src/backend/port/dynloader/netbsd.c
|
|
@@ -42,64 +42,30 @@ static char sccsid[] = "@(#)dl.c 5.4 (Be
|
|
|
|
#include "dynloader.h"
|
|
|
|
-static char error_message[BUFSIZ];
|
|
+#ifndef HAVE_DLOPEN
|
|
|
|
char *
|
|
-BSD44_derived_dlerror(void)
|
|
+pg_dlerror(void)
|
|
{
|
|
- static char ret[BUFSIZ];
|
|
-
|
|
- strcpy(ret, error_message);
|
|
- error_message[0] = 0;
|
|
- return (ret[0] == 0) ? NULL : ret;
|
|
+ return "dynaloader unsupported";
|
|
}
|
|
|
|
void *
|
|
-BSD44_derived_dlopen(const char *file, int num)
|
|
+pg_dlopen(const char *file, int num)
|
|
{
|
|
-#if !defined(HAVE_DLOPEN)
|
|
- snprintf(error_message, sizeof(error_message),
|
|
- "dlopen (%s) not supported", file);
|
|
+ elog(ERROR, "dynamic load not supported");
|
|
return NULL;
|
|
-#else
|
|
- void *vp;
|
|
-
|
|
- if ((vp = dlopen((char *) file, num)) == NULL)
|
|
- snprintf(error_message, sizeof(error_message),
|
|
- "dlopen (%s) failed: %s", file, dlerror());
|
|
- return vp;
|
|
-#endif
|
|
}
|
|
|
|
void *
|
|
-BSD44_derived_dlsym(void *handle, const char *name)
|
|
+pg_dlsym(void *handle, const char *name)
|
|
{
|
|
-#if !defined(HAVE_DLOPEN)
|
|
- snprintf(error_message, sizeof(error_message),
|
|
- "dlsym (%s) failed", name);
|
|
return NULL;
|
|
-#elif defined(__ELF__)
|
|
- return dlsym(handle, name);
|
|
-#else
|
|
- void *vp;
|
|
- char buf[BUFSIZ];
|
|
-
|
|
- if (*name != '_')
|
|
- {
|
|
- snprintf(buf, sizeof(buf), "_%s", name);
|
|
- name = buf;
|
|
- }
|
|
- if ((vp = dlsym(handle, (char *) name)) == NULL)
|
|
- snprintf(error_message, sizeof(error_message),
|
|
- "dlsym (%s) failed", name);
|
|
- return vp;
|
|
-#endif
|
|
}
|
|
|
|
void
|
|
-BSD44_derived_dlclose(void *handle)
|
|
+pg_dlclose(void *handle)
|
|
{
|
|
-#if defined(HAVE_DLOPEN)
|
|
- dlclose(handle);
|
|
-#endif
|
|
}
|
|
+
|
|
+#endif /* ! HAVE_DLOPEN */
|