Re: PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl - Mailing list pgsql-hackers

From Tim Bunce
Subject Re: PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl
Date
Msg-id 20100215103228.GZ373@timac.local
Whole thread Raw
In response to Re: PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl  (Richard Huxton <dev@archonet.com>)
Responses Re: PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl
List pgsql-hackers
On Mon, Feb 15, 2010 at 07:31:14AM +0000, Richard Huxton wrote:
> On 12/02/10 23:10, Tim Bunce wrote:
> >There was some discussion a few weeks ago about inter-stored-procedure
> >calling from PL/Perl.
> 
> >I'd greatly appreciate any feedback.
> 
> Looks great.

Thanks!

> >PostgreSQL::PLPerl::Call - Simple interface for calling SQL functions from PostgreSQL PL/Perl
> 
> I don't think you show an example with an explicit schema name being
> used. Can't hurt to make it obvious.

Yes, good point. I've added one to the docs and tests. Thanks.

> >     $seqn = call('nextval(regclass)', $sequence_name);
> 
> Is there any value in having a two-stage interface?
> 
>     $seq_fn = get_call('nextval(regclass)');
>     $foo1   = $seq_fn->($seq1);
>     $foo2   = $seq_fn->($seq2);

I don't think there's significant performance value in that.

Perhaps it could be useful to be able to pre-curry a call and 
then pass that code ref around, but you can do that trivially
already:      $nextval_fn = sub { call('nextval(regclass)', @_) };   $val = $nextval_fn->($seq1);
or   $nextfoo_fn = sub { call('nextval(regclass)', 'foo_seqn') };   $val = $nextfoo_fn->();

Tim.



pgsql-hackers by date:

Previous
From: Fujii Masao
Date:
Subject: Re: TCP keepalive support for libpq
Next
From: Simon Riggs
Date:
Subject: Re: idle in txn query cancellation