[postgis-users] PostgreSQL / PostGIS Issue - SQL state: 42883

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Thu Jan 3 11:47:41 PST 2008


On Thu, 2008-01-03 at 00:49 -0500, Darrell Sher wrote:
> Issue:
> 
>  
> 
> When I run the lwpostgis.sql script it fails when creating the
> histogram2d type with the error:
> 
> ERROR: function st_histogram2d_out(histogram2d) does not exist
> 
> SQL state: 42883
> 
>  
> 
> I can create the associated functions for the histogram2d type by
> hand, but I still get the same message when creating the type.
> 
>  
> 
> I can however,  successfully create the spheroid functions & types
> from the lwpostgis.sql script by hand.
> 
>  
> 
> Any ideas where I should look for what is failing.
> 
>  
> 
>  
> 
> Background:
> 
>  
> 
> System: Red Hat ES v5 64-bit
> 
>  
> 
> -bash-3.1$ uname -a
> 
> Linux oc-db01.roost.local 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:19 EDT
> 2007 x86_64 x86_64 x86_64 GNU/Linux
> 
>  
> 
> PostgreSQL:
> 
>  
> 
> -bash-3.1$ pg_config
> 
> BINDIR = /usr/bin
> 
> DOCDIR = /usr/share/doc/pgsql
> 
> INCLUDEDIR = /usr/include
> 
> PKGINCLUDEDIR = /usr/include/pgsql
> 
> INCLUDEDIR-SERVER = /usr/include/pgsql/server
> 
> LIBDIR = /usr/lib64
> 
> PKGLIBDIR = /usr/lib64/pgsql
> 
> LOCALEDIR = /usr/share/locale
> 
> MANDIR = /usr/share/man
> 
> SHAREDIR = /usr/share/pgsql
> 
> SYSCONFDIR = /etc/sysconfig/pgsql
> 
> PGXS = /usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk
> 
> CONFIGURE = '--build=x86_64-redhat-linux-gnu'
> '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu'
> '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr'
> '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc'
> '--datadir=/usr/share' '--includedir=/usr/include'
> '--libdir=/usr/lib64' '--libexecdir=/usr/libexec'
> '--localstatedir=/var' '--sharedstatedir=/usr/com'
> '--mandir=/usr/share/man' '--infodir=/usr/share/info'
> '--disable-rpath' '--with-perl' '--with-python' '--with-tcl'
> '--with-tclconfig=/usr/lib64' '--with-openssl' '--with-pam'
> '--with-krb5' '--with-includes=/usr/include'
> '--with-libraries=/usr/lib64' '--enable-nls' '--enable-thread-safety'
> '--sysconfdir=/etc/sysconfig/pgsql' '--datadir=/usr/share/pgsql'
> '--with-docdir=/usr/share/doc' 'CFLAGS=-O2 -g -pipe -Wall
> -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector
> --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include/et'
> 'CPPFLAGS= -I/usr/include/et' 'build_alias=x86_64-redhat-linux-gnu'
> 'host_alias=x86_64-redhat-linux-gnu'
> 'target_alias=x86_64-redhat-linux-gnu'
> 
> CC = gcc
> 
> CPPFLAGS = -D_GNU_SOURCE -I/usr/include
> 
> CFLAGS = -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
> -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic
> -I/usr/include/et -Wall -Wmissing-prototypes -Wpointer-arith -Winline
> -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
> 
> CFLAGS_SL = -fpic
> 
> LDFLAGS = -L/usr/lib64
> 
> LDFLAGS_SL =
> 
> LIBS = -lpgport -lpam -lssl -lcrypto -lkrb5 -lz -lreadline -ltermcap
> -lcrypt -ldl -lm
> 
> VERSION = PostgreSQL 8.2.5
> 
>  
> 
> postgressql.conf:
> 
>  
> 
>> 
> dynamic_library_path = '$libdir:/usr/local/lib'
> 
> #local_preload_libraries = ''
> 
>> 
>  
> 
> postgres   .bash_profile:
> 
>  
> 
> LD_LIBRARY_PATH=/usr/lib64/pgsql:/usr/local/lib:$LD_LIBRARY_PATH
> 
> export LD_LIBRARY_PATH
> 
>  
> 
> Geos & Proj4:
> 
>  
> 
> [root at oc-db01 bin]# cd /usr/local/lib
> 
> [root at oc-db01 lib]# ll
> 
> total 49984
> 
> -rwxr-xr-x 1 root root 13039412 Dec 27 11:56 libgeos-3.0.0rc4.so
> 
> -rw-r--r-- 1 root root 34289648 Dec 27 11:56 libgeos.a
> 
> -rw-r--r-- 1 root root   509840 Dec 27 11:56 libgeos_c.a
> 
> -rwxr-xr-x 1 root root      832 Dec 27 11:56 libgeos_c.la
> 
> lrwxrwxrwx 1 root root       18 Dec 27 11:56 libgeos_c.so ->
> libgeos_c.so.1.3.3
> 
> lrwxrwxrwx 1 root root       18 Dec 27 11:56 libgeos_c.so.1 ->
> libgeos_c.so.1.3.3
> 
> -rwxr-xr-x 1 root root   282107 Dec 27 11:56 libgeos_c.so.1.3.3
> 
> -rwxr-xr-x 1 root root      809 Dec 27 11:56 libgeos.la
> 
> lrwxrwxrwx 1 root root       19 Dec 27 11:56 libgeos.so ->
> libgeos-3.0.0rc4.so
> 
> -rw-r--r-- 1 root root  2005348 Dec 27 12:00 libproj.a
> 
> -rwxr-xr-x 1 root root      796 Dec 27 12:00 libproj.la
> 
> lrwxrwxrwx 1 root root       16 Dec 27 12:00 libproj.so ->
> libproj.so.0.5.2
> 
> lrwxrwxrwx 1 root root       16 Dec 27 12:00 libproj.so.0 ->
> libproj.so.0.5.2
> 
> -rwxr-xr-x 1 root root   889693 Dec 27 12:00 libproj.so.0.5.2
> 
>  
> 
> PostGIS:
> 
>  
> 
> [root at oc-db01 pgsql]# ldd liblwgeom.so.1.3
> 
>         libgeos_c.so.1 => /usr/local/lib/libgeos_c.so.1
> (0x00002aaaaad0e000)
> 
>         libproj.so.0 => /usr/local/lib/libproj.so.0
> (0x00002aaaaaf1b000)
> 
>         libc.so.6 => /lib64/libc.so.6 (0x00002aaaab179000)
> 
>         libgeos-3.0.0rc4.so => /usr/local/lib/libgeos-3.0.0rc4.so
> (0x00002aaaab4ca000)
> 
>         libstdc++.so.6 => /usr/lib64/libstdc++.so.6
> (0x00002aaaab80b000)
> 
>         libm.so.6 => /lib64/libm.so.6 (0x00002aaaabb0b000)
> 
>         libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002aaaabd8f000)
> 
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
> 
> [
> 
>  
> 
> The PostGIS make config is successful.
> 
>  
> 
>  
> 
>  
> 
> Thank you,
> 
> Darrell


Hi Darrell,

The liblwgeom.so file is a *PostgreSQL* shared library rather than a
system shared library, and so should be placed under /usr/lib64/pgsql if
it is not already (make install on PostGIS will have done this for you).

Also your "dynamic_library_path" setting is wrong - you need to revert
it back just to plain "$libdir" since PostgreSQL will automatically link
in the other libraries as needed. Same goes for LD_LIBRARY_PATH: you
need to remove the /usr/lib64/pgsql from the postgres user's environment
as PostgreSQL will load these libraries automatically. In fact, the
easiest option would be to drop an entry for /usr/local/lib
into /etc/ld.so.conf as root and run ldconfig - Google is your friend
here - and then you won't need to make changes to LD_LIBRARY_PATH.

Finally, another thing is did you remember to restart PostgreSQL once
you made the changes to .bash_profile? Changes to LD_LIBRARY_PATH won't
be picked up until PostgreSQL is restarted under the postgres user.


HTH,

Mark.

-- 
ILande - Open Source Consultancy
http://www.ilande.co.uk





More information about the postgis-users mailing list