Alvaro Herrera wrote:
On Sat, May 21, 2005 at 04:04:36PM -0400, Andrew Dunstan wrote:
Andrew,
it works like this:
andrew=# create or replace function foo() returns text language plperl
as $$ $x = 1; return 'hello'; $$;
CREATE FUNCTION
andrew=# select foo();
ERROR: creation of Perl function failed: Global symbol "$x" requires
explicit package name at (eval 11) line 1.
Hmm, is there a way to have a validator function and have the strict
check at function creation too? I know these things are reported with
perl -c, not sure if they can be reached with the C interface.
Maybe I have missed it, but I don't see an exposed interface that is
called when we create a function, only one to set up the interpreter and
one where we call the function (which compiles it if it isn't already
compiled). If there is some way that we can force a call into the
module when a CREATE OR REPLACE FUNCTION is issued, then it should be
quite possible to get compile errors. That would strike me as being a
very good thing.
cheers
andrew
---------------------------(end of broadcast)---------------------------
TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq