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)

Thu,  1 Jul 2004 17:50:22 -0300 (ADT)
joe@svr1.postgresql.org (Joe Conway)
pgsql-server: plperl update from Andrew Dunstan,
 deriving (I believe) 
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

Mon, 05 Jul 2004 19:31:35 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: pgsql-server: plperl update from Andrew Dunstan,
	deriving (I believe)

[redirected to -hackers]

Tom Lane wrote:

>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...
>
>
>  
>
[snip]

>-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.
>
>
>  
>

Is there a more portable way of doing this, via configure maybe?

cheers

andrew

Mon, 05 Jul 2004 19:52:54 -0400
Andrew Dunstan <andrew@dunslane.net>
Re: [COMMITTERS] pgsql-server: plperl update from Andrew Dunstan,
Andrew Dunstan <andrew@dunslane.net> writes:
>> I've reverted the part of this patch that attempted to make plperl use
>> rpath, because it doesn't actually work...

> Is there a more portable way of doing this, via configure maybe?

It doesn't look to me like we handle rpath switch syntax via configure,
but by setting variables in the port-specific makefiles.  Maybe you
could extend that scheme so that the switch name is available separately
from $(libdir).

The HPUX case is slightly peculiar because we essentially force rpath to
be used always; enable_rpath is disregarded and we stick what would be
the rpath switches directly into LDFLAGS.  It might be cleaner if it
did this by setting enable_rpath true in the port makefile, instead of
bypassing the rpath variable mechanism altogether.

			regards, tom lane

Mon, 05 Jul 2004 20:05:17 -0400
Tom Lane <tgl@sss.pgh.pa.us>
Re: [COMMITTERS] pgsql-server: plperl update from Andrew Dunstan,
	deriving (I believe)