Memory leak?: execute() with bind values (again?)

From: Zhivko Duchev (duchev_at_tzv.fal.de)
Date: 01/20/04


To: dbi-users@perl.org
Date: Tue, 20 Jan 2004 18:32:26 +0100

Hello All,

I think this is is an old known problem
(http://www.mail-archive.com/dbi-users@perl.org/msg18506.html), but just to
be sure:
There is a memory leak when using binding and multiply executes also in
DBD::Pg 1.31.

The following script reproduces the problem:
use DBI ;
use DBD::Pg qw/:pg_types/;

my
$dbh1=DBI->connect("DBI:Pg:dbname='blob_test';host='torro';port='5432'",'duchev','')
or die 'err';

  $sqltext="INSERT INTO delme3 (v) VALUES(?)";
  $sth1=$dbh1->prepare($sqltext);
  $md=9999999;

  for ($i=1;$i<1000000;$i++) {
    $sth1->bind_param(1,$md, {pg_type=>DBD::Pg::PG_INT8});
    $sth1->execute;
# $dbh1->do($sqltext ,{pg_type=>DBD::Pg::PG_INT8},$md);
  }
  $sth1->finish;
  $dbh1->disconnect;

The problem was not observed when using 'do'.
This was tested with Perl 5.6.1 and DBI 1.38 and 1.40

Any suggestions?
Thanks!

Zhivko Duchev
===================================================
Institute for Animal Breeding
Mariensee 31535 Neustadt Germany
===================================================



Relevant Pages