Hi, I've installed a 8.1.0 PostgreSQL server on a SCO OpenServer 5.0.6. It seemed to work well with psql and such tools. I tried to connect to this server with pgAdmin3 and a query failed. I tried to find which part of the query was wrong and I have a strange result :
SELECT 1 FROM pg_language WHERE lanispl IS TRUE; this one crashes the server. SELECT 1 FROM pg_language WHERE lanispl = true; works. It seemed to me that "IS TRUE" is the culprit so I tried something else SELECT lanispl IS TRUE FROM pg_language; and it works. If I create a table for testing purpose, I can add a where clause with "IS TRUE". Last thing I tried was to launch postgres on standalone. With the first query, server crashed with a «Memory fault(coredump)». I can send you the all log if you want. This behavior happens on another server (SCO too) but not on any Linux that I tried. I've attached the patch I apply to be able to build PostgreSQL on SCO OpenServer. I'm not 100% sure it isn't faulty. Did something like this already happened to someone ? Do you know of any test I can do ? Regards. -- Guillaume. <!-- http://abs.traduc.org/ http://lfs.traduc.org/ http://traduc.postgresqlfr.org/ -->
diff -uNr configure configure --- configure 2005-11-05 05:01:38.000000000 +0100 +++ configure 2005-11-09 15:25:28.000000000 +0100 @@ -255,7 +255,7 @@ # # Initializations. # -ac_default_prefix=/usr/local +ac_default_prefix=/usr/labo/+pg ac_config_libobj_dir=. cross_compiling=no subdirs= @@ -276,7 +276,7 @@ PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org' ac_unique_file="src/backend/access/common/heaptuple.c" -ac_default_prefix=/usr/local/pgsql +ac_default_prefix=/usr/labo/+pg # Factoring default headers for most tests. ac_includes_default="\ #include <stdio.h> @@ -1970,6 +1970,7 @@ case $template in aix) pgac_cc_list="gcc xlc";; irix) pgac_cc_list="cc";; # no gcc + sco) pgac_cc_list="cc";; # no gcc *) pgac_cc_list="gcc cc";; esac @@ -3837,7 +3838,7 @@ esac else - with_zlib=yes + with_zlib=no fi; diff -uNr src/Makefile.shlib src/Makefile.shlib --- src/Makefile.shlib 2005-10-28 19:32:22.000000000 +0200 +++ src/Makefile.shlib 2005-11-09 15:18:36.000000000 +0100 @@ -213,7 +213,7 @@ else LINK.shared = $(CC) -G endif - LINK.shared += -Wl,-z,text -Wl,-h,$(soname) + LINK.shared += -Wl,-h,$(soname) endif ifeq ($(PORTNAME), svr4) diff -uNr src/backend/parser/keywords.c src/backend/parser/keywords.c --- src/backend/parser/keywords.c 2005-10-15 04:49:22.000000000 +0200 +++ src/backend/parser/keywords.c 2005-11-09 15:18:36.000000000 +0100 @@ -41,7 +41,6 @@ {"all", ALL}, {"also", ALSO}, {"alter", ALTER}, - {"analyse", ANALYSE}, /* British spelling */ {"analyze", ANALYZE}, {"and", AND}, {"any", ANY}, diff -uNr src/interfaces/ecpg/preproc/keywords.c src/interfaces/ecpg/preproc/keywords.c --- src/interfaces/ecpg/preproc/keywords.c 2005-10-15 04:49:47.000000000 +0200 +++ src/interfaces/ecpg/preproc/keywords.c 2005-11-09 15:18:36.000000000 +0100 @@ -39,7 +39,6 @@ {"all", ALL}, {"also", ALSO}, {"alter", ALTER}, - {"analyse", ANALYSE}, /* British spelling */ {"analyze", ANALYZE}, {"and", AND}, {"any", ANY}, diff -uNr src/interfaces/libpq/fe-secure.c src/interfaces/libpq/fe-secure.c --- src/interfaces/libpq/fe-secure.c 2005-10-24 17:38:37.000000000 +0200 +++ src/interfaces/libpq/fe-secure.c 2005-11-09 15:26:51.000000000 +0100 @@ -566,7 +566,9 @@ { printfPQExpBuffer(&conn->errorMessage, libpq_gettext("could not get information about host \"%s\": %s\n"), - conn->peer_cn, hstrerror(h_errno)); + conn->peer_cn, hstrerror(errno)); +) + return -1; } diff -uNr src/port/getaddrinfo.c src/port/getaddrinfo.c --- src/port/getaddrinfo.c 2005-10-15 04:49:51.000000000 +0200 +++ src/port/getaddrinfo.c 2005-11-09 15:18:37.000000000 +0100 @@ -206,7 +206,7 @@ #endif if (hp == NULL) { - switch (h_errno) + switch (errno) { case HOST_NOT_FOUND: case NO_DATA: diff -uNr src/port/thread.c src/port/thread.c --- src/port/thread.c 2005-10-15 04:49:51.000000000 +0200 +++ src/port/thread.c 2005-11-09 15:18:37.000000000 +0100 @@ -146,7 +146,7 @@ *result = gethostbyname(name); if (*result != NULL) - *herrno = h_errno; + *herrno = errno; if (*result != NULL) return 0; diff -uNr src/backend/libpq/pqcomm.c src/backend/libpq/pqcomm.c --- src/backend/libpq/pqcomm.c 2005-10-17 18:24:19.000000000 +0200 +++ src/backend/libpq/pqcomm.c 2005-11-09 14:46:03.000000000 +0100 @@ -89,6 +89,8 @@ #include "storage/ipc.h" #include "utils/guc.h" +typedef unsigned int socklen_t; + /* * Configuration options */ diff -uNr contrib/userlock/user_locks.c contrib/userlock/user_locks.c --- contrib/userlock/user_locks.c 2005-11-10 12:49:07.000000000 +0100 +++ contrib/userlock/user_locks.c 2005-11-10 12:49:47.000000000 +0100 @@ -79,3 +79,11 @@ return true; } + +int +user_unlock_all_pid( int pid ) +{ + elog( ERROR, "utilisation de la fonction user_unlock_all_pid" ); + return( -1 ); +} +
---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org