Thread: pgsql-server: plperl update from Andrew Dunstan, deriving (I believe)
pgsql-server: plperl update from Andrew Dunstan, deriving (I believe)
From
joe@svr1.postgresql.org (Joe Conway)
Date:
Log Message: ----------- plperl update from Andrew Dunstan, deriving (I believe) from Command Prompt's plperlNG. Review and minor cleanup/improvements by Joe Conway. Summary of new functionality: - Shared data space and namespace. There is a new global variable %_SHARED that functions can use to store and save data between invocations of a function, or between different functions. Also, all trusted plperl function now share a common Safe container (this is an optimization, also), which they can use for storing non-lexical variables, functions, etc. - Triggers are now supported - Records can now be returned (as a hash reference) - Sets of records can now be returned (as a reference to an array of hash references). - New function spi_exec_query() provided for performing db functions or getting data from db. - Optimization for counting hash keys (Abhijit Menon-Sen) - Allow return of 'record' and 'setof record' Modified Files: -------------- pgsql-server/src/pl/plperl: GNUmakefile (r1.12 -> r1.13) (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/GNUmakefile.diff?r1=1.12&r2=1.13) SPI.xs (r1.5 -> r1.6) (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/SPI.xs.diff?r1=1.5&r2=1.6) plperl.c (r1.44 -> r1.45) (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/plperl.c.diff?r1=1.44&r2=1.45) Added Files: ----------- pgsql-server/src/pl/plperl: spi_internal.c (r1.1) (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/spi_internal.c?rev=1.1&content-type=text/x-cvsweb-markup) spi_internal.h (r1.1) (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/spi_internal.h?rev=1.1&content-type=text/x-cvsweb-markup) Removed Files: ------------- pgsql-server/src/pl/plperl: eloglvl.c (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/eloglvl.c) eloglvl.h (http://developer.postgresql.org/cvsweb.cgi/pgsql-server/src/pl/plperl/eloglvl.h)
joe@svr1.postgresql.org (Joe Conway) writes: > plperl update from Andrew Dunstan, deriving (I believe) from Command Prompt's > plperlNG. Review and minor cleanup/improvements by Joe Conway. I've reverted the part of this patch that attempted to make plperl use rpath, because it doesn't actually work... make[3]: Entering directory `/home/postgres/pgsql/src/pl/plperl' gcc -O1 -fno-strict-aliasing -g -fpic -I. -I/opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/CORE -I../../../src/include -D_XOPEN_SOURCE_EXTENDED -c -o plperl.o plperl.c gcc -O1 -fno-strict-aliasing -g -fpic -I. -I/opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/CORE -I../../../src/include -D_XOPEN_SOURCE_EXTENDED -c -o spi_internal.o spi_internal.c /opt/perl5.8.0/bin/perl /opt/perl5.8.0/lib/5.8.0/ExtUtils/xsubpp -typemap /opt/perl5.8.0/lib/5.8.0/ExtUtils/typemap SPI.xs>SPI.c gcc -O1 -fno-strict-aliasing -g -fpic -I. -I/opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/CORE -I../../../src/include -D_XOPEN_SOURCE_EXTENDED -c -o SPI.o SPI.c ar crs libplperl.a `lorder plperl.o spi_internal.o SPI.o | tsort` ranlib libplperl.a /usr/ccs/bin/ld +h libplperl.sl.0 -b +b /home/postgres/testversion/lib plperl.o spi_internal.o SPI.o -L../../../src/port-L/usr/local/lib /opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/auto/DynaLoader/DynaLoader.a -L/opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/CORE-lperl -lnsl_s -lmalloc -ldld -lm -lc -lndir -lcrypt -lsec -Wl,-rpath,/opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/CORE`gcc -print-libgcc-file-name` -o libplperl.sl.0 /usr/ccs/bin/ld: Unrecognized argument: -Wl,-rpath,/opt/perl5.8.0/lib/5.8.0/PA-RISC2.0/CORE /usr/ccs/bin/ld: Usage: /usr/ccs/bin/ld flags... files... make[3]: *** [libplperl.sl.0] Error 1 make[3]: Target `all' not remade because of errors. make[3]: Leaving directory `/home/postgres/pgsql/src/pl/plperl' -Wl is a gcc-ism, I believe; it certainly won't work in a direct call to ld. Looking at the port makefiles, HPUX is not the only platform that will barf on this. regards, tom lane