From 8c234e48597acebd4ec32e02b3f2d97d5bee60f6 Mon Sep 17 00:00:00 2001
From: Galen Charlton <gmc@esilibrary.com>
Date: Tue, 9 Jul 2013 17:53:16 +0000
Subject: [PATCH] bug 10559: remove spurious "statement handle still active"
 warnings

Generating (e.g.) overdue notices can result in spurious warnings in
the cronjob logs:

$ ./misc/cronjobs/overdue_notices.pl -t -library CPL
prepare_cached(SELECT * FROM issues WHERE     itemnumber = ?) statement handle DBI::st=HASH(0x54a7828) still Active at C4/Letters.pm line 589

This patch removes the warning by making sure that the relevant statement
handle is finished after fetching its first row of results.

To test:

[1] Set up an overdue loan such that running overdue_notices.pl will
    trigger the generation of a notice.
[2] Run overdue_notices.pl -t and note the warning message.
[3] Apply the patch.
[4] Run overdue_notices.pl -t again and note that the warning message
    is no longer displayed.
[5] Check the message_queue table and verify that the overdue
    notices generated in steps 2 and 4 have the same text.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
---
 C4/Letters.pm |    1 +
 1 file changed, 1 insertion(+)

diff --git a/C4/Letters.pm b/C4/Letters.pm
index d36c29f..37883c6 100644
--- a/C4/Letters.pm
+++ b/C4/Letters.pm
@@ -550,6 +550,7 @@ sub _substitute_tables {
             $sth->execute( $ref ? @$param : $param );
 
             $values = $sth->fetchrow_hashref;
+            $sth->finish();
         }
 
         _parseletter ( $letter, $table, $values );
-- 
1.7.10.4