pgsql/src bin/scripts/createlang.sh pl/plperl/ ...

From: Bruce Momjian - CVS <momjian(at)hub(dot)org>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql/src bin/scripts/createlang.sh pl/plperl/ ...
Date: 2001-06-18 21:40:07
Message-ID: 200106182140.f5ILe7D14547@hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

CVSROOT: /home/projects/pgsql/cvsroot
Module name: pgsql
Changes by: momjian(at)hub(dot)org 01/06/18 17:40:07

Modified files:
src/bin/scripts: createlang.sh
src/pl/plperl : Makefile.PL plperl.c

Log message:
Well, after persuading cvsup and cvs that it _is_ possible to have local
modifiable repositories, I have a clean untrusted plperl patch to offer
you :)

Highlights:
* There's one perl interpreter used for both trusted and untrusted
procedures. I do think its unnecessary to keep two perl
interpreters around. If someone can break out from trusted "Safe" perl
mode, well, they can do what they want already. If someone disagrees, I
can change this.

* Opcode is not statically loaded anymore. Instead, we load Dynaloader,
which then can grab Opcode (and anything else you can 'use') on its own.

* Checked to work on FreeBSD 4.3 + perl 5.5.3 , OpenBSD 2.8 + perl5.6.1,
RedHat 6.2 + perl 5.5.3

* Uses ExtUtils::Embed to find what options are necessary to link with
perl shared libraries

* createlang is also updated, it can create untrusted perl using 'plperlu'

* Example script (assuming you have Mail::Sendmail installed):
create function foo() returns text as '
use Mail::Sendmail;

%mail = ( To => q(you(at)yourname(dot)com),
From => q(me(at)here(dot)com),
Message => "This is a very short message"
);
sendmail(%mail) or die $Mail::Sendmail::error;
return "OK. Log says:\n", $Mail::Sendmail::log;
' language 'plperlu';

Alex Pilosov

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian - CVS 2001-06-18 23:42:33 pgsql/src/backend postmaster/postmaster.c tcop ...
Previous Message Bruce Momjian - CVS 2001-06-18 21:38:03 pgsql/ ontrib/array/Makefile ontrib/cube/Makef ...