Lines 418-431
sub get_criteria {
Link Here
|
418 |
|
418 |
|
419 |
sub nb_rows { |
419 |
sub nb_rows { |
420 |
my $sql = shift or return; |
420 |
my $sql = shift or return; |
421 |
my $sth = C4::Context->dbh->prepare($sql); |
421 |
|
422 |
$sth->execute(); |
422 |
my $derived_name = 'xxx'; |
423 |
my $n = 0; |
423 |
# make sure the derived table name is not already used |
424 |
# Loop through the complete results, fetching 1,000 rows at a time. This |
424 |
while ( $sql =~ m/$derived_name/ ) { |
425 |
# lowers memory requirements but increases execution time. |
425 |
$derived_name .= 'x'; |
426 |
while (my $rows = $sth->fetchall_arrayref(undef, 1000)) { |
|
|
427 |
$n += @$rows; |
428 |
} |
426 |
} |
|
|
427 |
my $sth = C4::Context->dbh->prepare(qq{ |
428 |
SELECT COUNT(*) FROM |
429 |
( $sql ) $derived_name |
430 |
}); |
431 |
$sth->execute(); |
432 |
my $n = $sth->fetch->[0]; |
433 |
|
429 |
return $n; |
434 |
return $n; |
430 |
} |
435 |
} |
431 |
|
436 |
|
432 |
- |
|
|