Proposal for new PL/Perl README - Mailing list pgsql-general
From | Edward Q. Bridges |
---|---|
Subject | Proposal for new PL/Perl README |
Date | |
Msg-id | 200009192302.e8JN2Fs55766@hub.org Whole thread Raw |
Responses |
Re: Proposal for new PL/Perl README
Re: Proposal for new PL/Perl README |
List | pgsql-general |
to replace the one currently in $PGSRC/src/pl/plperl it encompasses the information in that document while adding more structure and more specific details about what is needed. it also addresses a couple of issues that came up when i had personally installed it. since there is no email address for a maintainer on that, i post it here for review, comment, and (hopefully) integration with the source tree. regards --e-- ---------------------------------------------------------------------- README for PL/Perl 2000.09.19 PREREQUISITES ====================================================================== + Perl must be built as a shared library. + when compiling Postgres, use the --with-perl option. BUILDING ====================================================================== + commands: cd $POSTGRES_SRC/src/pl/plperl/; perl Makefile.PL [POLLUTE=1]; make; If you get error messages like: `errgv' undeclared `na' undeclared Then use the POLLUTE=1 flag. INSTALLING ====================================================================== + copy the shared object file to a reasonable location: cp blib/arch/auto/plperl/plperl.so $PG_HOME/lib Be sure to copy the .so file and not the .o file. If you get an error like: ELF file's phentsize not the expected size. you've copied the wrong file. CONFIGURING ====================================================================== + as postgres super user: createlang plperl [database] NOTES ON USAGE ====================================================================== + Use q[], qq[], and qw[] instead of single quotes in function definitions. + When using escape sequences, you must backslash your backslashes, e.g. $alphanum =~ s/\W//g; # Wrong! Will replace capital W's $alphanum =~ s/\\W//g; # Right! Will replace non-word chars + Arguments to the function are available in @_ + If argument is declared as a tuple, then tuple is represented as a hash reference. EXAMPLES ====================================================================== CREATE FUNCTION addints(int4, int4) RETURNS int4 AS ' return $_[0] + $_[1] ' LANGUAGE 'plperl'; SELECT addints(3,4); -- of course, you can pass tuples; CREATE TABLE twoints ( a integer, b integer); CREATE FUNCTION addtwoints(twoints) RETURNS integer AS ' $tup = shift; return $tup->{"a"} + $tup->{"b"}; ' LANGUAGE 'plperl'; SELECT addtwoints(twoints) from twoints; -- here is one that will fail. Creating the function -- will work, but using it will fail. CREATE FUNCTION badfunc() RETURNS int4 AS ' open(TEMP, ">/tmp/badfile"); print TEMP "Gotcha!\n"; return 1; ' LANGUAGE 'plperl'; SELECT badfunc();
pgsql-general by date: