Re: Dynamic loading of Perl Code in Postgres functions

From: "Harpreet Dhaliwal" <harpreet(dot)dhaliwal01(at)gmail(dot)com>
To: "Jasbinder Singh Bali" <jsbali(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Dynamic loading of Perl Code in Postgres functions
Date: 2007-01-18 23:04:02
Message-ID: d86a77ef0701181504n4b5f2ed7g8a6b75b66cb9311e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Don't think it would work the way you are doing it.
This way it would only work if you dealing with shared objects in C where in
you dynamically load the shared object and then call a specific function of
that shared object.

Lately i tried the following for you but it doesn't execute the Insert
script inside sql.pl

CREATE OR REPLACE FUNCTION test_perl_param(int4)
RETURNS bool AS
$BODY$
require "/usr/local/pgsql/jsbali/sql.pl"
$BODY$
LANGUAGE 'plperlu' VOLATILE;
ALTER FUNCTION test_perl_param(int4) OWNER TO postgres;

SELECT test_perl_param(23)

Here in sql.pl i have one insert statement but SELECT test_perl_param(23)
doesn't run the INSERT statement inside the sql.pl

Can anyone throw light on how to make it work so that whatever script i have
inside sql.pl run as soon as I run SELECT test_perl_param(23).

I think this wold help out jas alot.

Thanks,
Harpreet

On 1/18/07, Jasbinder Singh Bali <jsbali(at)gmail(dot)com> wrote:
>
> Lately i've been able to user 'require' command successfully and the
> script was pretty straight forward and simple. I had to play around
> with @INC.
>
> Moving forward, I have another question here,
>
> CREATE FUNCTION *funcname* (*argument-types*) RETURNS *return-type* AS
> require " abc.pl"
> $$ LANGUAGE plperlu;
>
> In the above script if I have to call a particular sub-routine in abc.pl.
> How can that be done?
> I have to pass values to the arguments of a sub routine in abc.pl from
> the the function funcname (arguments of the funcname in particular).
> How would this thing be done?
>
> Thanks,
> Jas
>
> On 1/16/07, Harpreet Dhaliwal <harpreet(dot)dhaliwal01(at)gmail(dot)com> wrote:
> > so my syntax is correct? just wondering if there's some fundamental
> mistake
> > in it
> > ~Harpreet
> >
> >
> > On 1/16/07, Tom Lane < tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> > > "Harpreet Dhaliwal" < harpreet(dot)dhaliwal01(at)gmail(dot)com> writes:
> > > > I was just wondering if one could use something like this
> > >
> > > > CREATE FUNCTION *funcname* (*argument-types*) RETURNS *return-type*
> AS
> > $$
> > > > require " abc.pl"
> > > > $$ LANGUAGE plperl;
> > >
> > > You'd have to use plperlu, since "require" isn't considered a trusted
> > > operation.
> > >
> > > > To include abc.pl here, how is the path of abc.pl specified.
> > >
> > > Same as you'd do it in plain Perl.
> > >
> > > regards, tom lane
> > >
> >
> >
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scott Ribe 2007-01-18 23:22:39 Re: Finding bogus dates
Previous Message Matthew Peter 2007-01-18 22:48:12 Re: drive failre, corrupt data...