Re: out of memory
- From: loufridkis@xxxxxxxxx (Louis Fridkis)
- Date: Fri, 29 Dec 2006 08:46:03 -0800
Thanks for your reply's. No, I'm not insulted. This is a quick-and-dirty to
generate some test data. But, I do appreciate the comments since I am eager
to improve.
There is no suppressed code. I showed you the whole program except for the
header. Here is the full program (except where I substituted foo, bar, jar):
#!/usr/bin/perl
use strict;
use DBI;
my $dbh_from = DBI->connect(
'dbi:Pg:dbname=jar;host=foo');
my ($table_name, $sqlstring) = @ARGV;
$dbh_from->do('SET search_path TO cel, part_elementresult, public');
my $cel_sth = $dbh_from->prepare($sqlstring);
$cel_sth->execute();
#
# added & replaced:
#while(my (@rowvalues) = $cel_sth->fetchrow_array()){
#
my @rowvalues;
my $rv;
my $elementresult_id;
my $element_id;
my $quantification_id;
my $signal;
$rv = $cel_sth->bind_columns(\($elementresult_id, $element_id,
$quantification_id, $signal));
while($cel_sth->fetch()){
@rowvalues = ($elementresult_id, $element_id, $quantification_id,
$signal);
#
# end
# added & replaced
#
my $printstring= "insert into $table_name values(";
foreach my $column (@rowvalues){
if (defined $column){
if($column =~ /\D/){
$column = "'".$column."'"
unless ($column =~ /\d*\.\d+/);
}
$printstring.= "$column,";
} else {
$printstring.= "NULL,";
}
}
$printstring =~ s/,$/);/;
print "$printstring\n";
#my $dbh_to = DBI->connect(
# 'dbi:Pg:dbname=TestIO;host=bar');
# $dbh_to->do($printstring);
}
As you can see from the comments I originally used: fetchrow_array(). I
changed in the hopes that fetch() would work better. The reason I think it
tries to hold all the rows in memory is because it works when the query in
$sqlstring returns a small number of rows, but fails with the "out of
memory" error when it returns a large number of rows.
On 12/28/06, Marius Feraru <altblue@xxxxxxx> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ron Savage wrote:
> On Fri, 29 Dec 2006 05:08:48 +0200, Marius Feraru wrote:
>> You forgot to notice Louis' ugly way (and error prone) of
> No I didn't - I was just too polite to hammer OP despite the low
> quality of the code, so I chose a gentle hint or two.
Oops, does this mean I was rude to point out some more hints? My
apologies then ;-)
happy coding everyone :)
- --
Marius Feraru
-----BEGIN PGP SIGNATURE-----
iD8DBQFFlKLJtZHp/AYZiNkRAvthAJ9h4GLmwA1CTgMUPooF+PnZVjAD2ACgjFD/
63pWRvMIKO1YncCHZhwxdYY=
=IA9T
-----END PGP SIGNATURE-----
--
Lou Fridkis
Human Genetics
57920
- Follow-Ups:
- Re: out of memory
- From: Ron Savage
- Re: out of memory
- References:
- Re: out of memory
- From: Ron Savage
- Re: out of memory
- From: Marius Feraru
- Re: out of memory
- Prev by Date: Re: out of memory
- Next by Date: Re: out of memory
- Previous by thread: Re: out of memory
- Next by thread: Re: out of memory
- Index(es):
Relevant Pages
|
|