Index: client/review/db/pgsql.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/client/review/db/pgsql.inc,v
retrieving revision 1.4
diff -u -r1.4 pgsql.inc
--- client/review/db/pgsql.inc	19 Apr 2009 06:37:11 -0000	1.4
+++ client/review/db/pgsql.inc	23 Apr 2009 00:22:40 -0000
@@ -47,8 +47,12 @@
     if (db_set_active('pifr_checkout')) {
       $result = @db_query('SELECT *
                            FROM {simpletest}');
+      $assertions = array();
+      while ($assertion = db_fetch_array($result)) {
+        $assertions[] = $assertion;
+      }
       db_set_active();
-      return $result;
+      return $assertions;
     }
     return FALSE;
   }
Index: client/review/db/mysql.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/client/review/db/mysql.inc,v
retrieving revision 1.6
diff -u -r1.6 mysql.inc
--- client/review/db/mysql.inc	19 Apr 2009 06:37:11 -0000	1.6
+++ client/review/db/mysql.inc	23 Apr 2009 00:22:40 -0000
@@ -38,8 +38,12 @@
     if (db_set_active('pifr_checkout')) {
       $result = @db_query('SELECT *
                            FROM {simpletest}');
+      $assertions = array();
+      while ($assertion = db_fetch_array($result)) {
+        $assertions[] = $assertion;
+      }
       db_set_active();
-      return $result;
+      return $assertions;
     }
     return FALSE;
   }
Index: client/pifr_client.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/client/pifr_client.admin.inc,v
retrieving revision 1.8
diff -u -r1.8 pifr_client.admin.inc
--- client/pifr_client.admin.inc	19 Apr 2009 06:37:11 -0000	1.8
+++ client/pifr_client.admin.inc	23 Apr 2009 00:22:40 -0000
@@ -39,12 +39,7 @@
   $database = 'PIFRClientReviewDB_' . PIFR_CLIENT_DB;
   $database = new $database;
 
-  $assertions = $database->getAssertions();
-  $count = 0;
-  while ($assertion = db_fetch_array($assertions)) {
-    $count++;
-  }
-  return $count;
+  return count($database->getAssertions());
 }
 
 /**
Index: client/review/pifr_client_review.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/project_issue_file_review/client/review/pifr_client_review.inc,v
retrieving revision 1.19
diff -u -r1.19 pifr_client_review.inc
--- client/review/pifr_client_review.inc	14 Apr 2009 07:47:04 -0000	1.19
+++ client/review/pifr_client_review.inc	23 Apr 2009 00:22:40 -0000
@@ -397,7 +397,7 @@
 
     // Cycle through assertions to fill in results.
     $assertions = $this->database->getAssertions();
-    while ($assertion = db_fetch_array($assertions)) {
+    foreach ($assertions as $assertion) {
       // Add up summary totals for entire test suite.
       $result[$assertion['status']]++;
 
Index: client/review/db/sqlite.inc
===================================================================
RCS file: client/review/db/sqlite.inc
diff -N client/review/db/sqlite.inc
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ client/review/db/sqlite.inc	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,46 @@
+<?php
+// $Id$
+/**
+ * @file
+ * SQLite review backend.
+ *
+ * @author Karoly Negyesi ("chx", http://drupal.org/user/9446)
+ *
+ * Copyright 2008-2009 by Jimmy Berry ("boombatower", http://drupal.org/user/214218)
+ */
+
+class PIFRClientReviewDB_sqlite implements PIFRClientReviewDB {
+
+  const table_query = "SELECT name FROM sqlite_master WHERE type = 'table'";
+
+  public function __construct() {
+    global $db_url;
+    if (!isset($db_url['pifr_checkout'])) {
+      return FALSE;
+    }
+    $pifr_checkout = parse_url($db_url['pifr_checkout']);
+    $this->connection = new PDO('sqlite:' . $pifr_checkout['path']);
+  }
+
+  public function clearDatabase() {
+    return TRUE;
+  }
+
+  public function setVariable($name, $value) {
+    if ($this->connection) {
+      $status = $this->connection
+        ->prepare(db_prefix_tables('INSERT INTO {variables} variable (name, value) VALUES (:name, :value)'))
+        ->execute(array('name' => $name, 'value' => serialize($value)));
+      return $status && $this->connection->exec(db_prefix_tables('TRUNCATE TABLE {cache}')) !== FALSE;
+    }
+    return FALSE;
+  }
+
+  public function getAssertions() {
+    if ($this->connection) {
+      $db_prefix = is_array($this->db_prefix) && isset($this->db_prefix['simpletest']) ? $this->db_prefix['simpletest'] : $this->db_prefix;
+      return $this->connection->prepare(db_prefix_tables('SELECT * FROM {simpletest}')->execute()->fetchAll(PDO::FETCH_ASSOC));
+    }
+    return FALSE;
+  }
+}
