This patch makes sure that prepared statements get closed when
$dbh->disconnect() is called.  Ticket created upstream at
http://rt.cpan.org/Public/Bug/Display.html?id=40383

$OpenBSD: patch-dbdimp_c,v 1.5 2009/01/24 17:42:22 simon Exp $
--- dbdimp.c.orig	Fri Aug 24 04:51:25 2007
+++ dbdimp.c	Sat Oct 25 22:31:04 2008
@@ -151,8 +151,13 @@ sqlite_db_disconnect (SV *dbh, imp_dbh_t *imp_dbh)
     }
 
     if (sqlite3_close(imp_dbh->db) == SQLITE_BUSY) {
+        sqlite3_stmt *pStmt;
         /* active statements! */
-        warn("closing dbh with active statement handles");
+
+        while ((pStmt = sqlite3_next_stmt(imp_dbh->db, NULL)) != NULL)
+            sqlite3_finalize(pStmt);
+
+        sqlite3_close(imp_dbh->db);
     }
     imp_dbh->db = NULL;
 
