PL/Perl isn't new, but they've expanded it in 8.0, and made it more obvious
how to do selects and updates from within a Perl-coded stored procedure.

Between that and Peter Haworth's clarifications on cursors, I'm revisiting a
lot of PG issues in my code.  Should lead to interesting times :)

..Theo

-----Original Message-----
From: Fred Moyer [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, January 18, 2005 2:11 PM
To: Chris Ochs
Cc: Peter Haworth; modperl@perl.apache.org
Subject: Re: DBI memory usage

>> > It looks like $r->child_terminate does what I need.  In the case of
>> > Postgresql it eats the memory when you execute the query, regardless
>> > of whether you actually fetch any results.
>>
>> That can be worked around, however. By using a cursor, you can specify
>> exactly how much data you want at a time:
>
> DBD::Pg doesn't support cursors.  From the DBD::PG manpage:

This is true that DBD::Pg doesn't support cursors, but you can write a
pl/pgsql function that returns a cursor reference and implement in this
manner:

$sth = $dbh->prepare("FETCH ALL FROM $your_ref_cursor");
while($sth->fetch){}

pl/perl was just introduced also, but I haven't looked at it enough to
know if you could use it to write the function.

Reply via email to