Bug 10642: fix inappropriate uses of $sth->finish() in C4::RotatingCollections.pm
authorroot <root@kenza-VirtualBox>
Thu, 25 Jul 2013 11:47:09 +0000 (13:47 +0200)
committerChris Hall <followingthepath@gmail.com>
Mon, 21 Oct 2013 19:39:06 +0000 (08:39 +1300)
From the man page

finish()
Indicate that no more data will be fetched from this statement handle
before it is either executed again or destroyed.
You almost certainly do not need to call this method.

Adding calls to "finish" after loop that fetches all rows is a common
mistake, don't do it, it can mask genuine problems like uncaught fetch errors.

To test:

Verify that prove -v t/db_dependent/RotatingCollections.t passes

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, passes UT provided by bug 10653

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit d1b3e4ab6b432844e076e1eb0662a9c04a5f412e)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 0311e39c269291156f82393fbb7269caab7b679e)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 0311e39c269291156f82393fbb7269caab7b679e)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 38e8a13b6ba331207dc7451c676e6aa868e14e79)

C4/RotatingCollections.pm

index b18a0ee..123a593 100644 (file)
@@ -99,7 +99,6 @@ sub CreateCollection {
   $sth = $dbh->prepare("INSERT INTO collections ( colId, colTitle, colDesc ) 
                         VALUES ( NULL, ?, ? )");
   $sth->execute( $title, $description ) or return ( 0, 3, $sth->errstr() );
-  $sth->finish;
 
   return 1;
  
@@ -145,7 +144,6 @@ sub UpdateCollection {
                         colTitle = ?, colDesc = ? 
                         WHERE colId = ?");
   $sth->execute( $title, $description, $colId ) or return ( 0, 4, $sth->errstr() );
-  $sth->finish;
   
   return 1;
   
@@ -180,7 +178,6 @@ sub DeleteCollection {
 
   $sth = $dbh->prepare("DELETE FROM collections WHERE colId = ?");
   $sth->execute( $colId ) or return ( 0, 4, $sth->errstr() );
-  $sth->finish;
 
   return 1;
 }
@@ -211,8 +208,6 @@ sub GetCollections {
     push( @results , $row );
   }
   
-  $sth->finish;
-  
   return \@results;
 }
 
@@ -259,8 +254,6 @@ sub GetItemsInCollection {
     push( @results , $row );
   }
   
-  $sth->finish;
-  
   return \@results;
 }
 
@@ -288,8 +281,6 @@ sub GetCollection {
     
   my $row = $sth->fetchrow_hashref;
   
-  $sth->finish;
-  
   return (
       $$row{'colId'},
       $$row{'colTitle'},
@@ -338,7 +329,6 @@ sub AddItemToCollection {
   $sth = $dbh->prepare("INSERT INTO collections_tracking ( ctId, colId, itemnumber ) 
                         VALUES ( NULL, ?, ? )");
   $sth->execute( $colId, $itemnumber ) or return ( 0, 3, $sth->errstr() );
-  $sth->finish;
 
   return 1;
   
@@ -379,7 +369,6 @@ sub RemoveItemFromCollection {
   $sth = $dbh->prepare("DELETE FROM collections_tracking 
                         WHERE itemnumber = ?");
   $sth->execute( $itemnumber ) or return ( 0, 3, $sth->errstr() );
-  $sth->finish;
 
   return 1;
 }
@@ -420,7 +409,6 @@ sub TransferCollection {
                         colBranchcode = ? 
                         WHERE colId = ?");
   $sth->execute( $colBranchcode, $colId ) or return ( 0, 4, $sth->errstr() );
-  $sth->finish;
   
   $sth = $dbh->prepare("SELECT barcode FROM items, collections_tracking 
                         WHERE items.itemnumber = collections_tracking.itemnumber
@@ -430,9 +418,7 @@ sub TransferCollection {
   while ( my $item = $sth->fetchrow_hashref ) {
     my ( $dotransfer, $messages, $iteminformation ) = transferbook( $colBranchcode, $item->{'barcode'}, my $ignore_reserves = 1);
   }
-  
 
-  
   return 1;
   
 }
@@ -461,8 +447,6 @@ sub GetCollectionItemBranches {
     
   my $row = $sth->fetchrow_hashref;
   
-  $sth->finish;
-  
   return (
       $$row{'holdingbranch'},
       $$row{'colBranchcode'},
@@ -505,8 +489,6 @@ sub isItemInAnyCollection {
   my $row = $sth->fetchrow_hashref;
         
   $itemnumber = $row->{itemnumber};
-  $sth->finish;
-            
   if ( $itemnumber ) {
     return 1;
   } else {