Proposal for new PL/Perl README
От | Edward Q. Bridges |
---|---|
Тема | Proposal for new PL/Perl README |
Дата | |
Msg-id | 200009192302.e8JN2Fs55766@hub.org обсуждение исходный текст |
Ответы |
Re: Proposal for new PL/Perl README
(Tom Lane <tgl@sss.pgh.pa.us>)
Re: Proposal for new PL/Perl README (Peter Eisentraut <peter_e@gmx.net>) |
Список | 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 по дате отправления:
Предыдущее
От: Stephan SzaboДата:
Сообщение: Re: pqReadData() -- backend closed the channel unexpectedly