Index: trunk/psLib/src/db/psDB.c
===================================================================
--- trunk/psLib/src/db/psDB.c	(revision 16694)
+++ trunk/psLib/src/db/psDB.c	(revision 16695)
@@ -23,5 +23,5 @@
  * 4.1.2 or newer is required.
  *
- * $Id: psDB.c,v 1.149 2008-02-28 01:25:44 jhoblitt Exp $
+ * $Id: psDB.c,v 1.150 2008-02-28 02:02:47 jhoblitt Exp $
  */
 
@@ -80,5 +80,5 @@
 
 // cache of prepared query statements
-static pthread_mutex_t preparedQueryMutex = PTHREAD_MUTEX_INITIALIZER;
+// static pthread_mutex_t preparedQueryMutex = PTHREAD_MUTEX_INITIALIZER;
 static psHash *preparedQuery = NULL;
 
@@ -857,7 +857,7 @@
 
     // start lock on query cache
-    if (psMemGetThreadSafety()) {
-        pthread_mutex_lock(&preparedQueryMutex);
-    }
+//    if (psMemGetThreadSafety()) {
+//        pthread_mutex_lock(&preparedQueryMutex);
+//    }
 
     // initalize the prepared query cache
@@ -875,21 +875,23 @@
 
     // check the query cache
-    MYSQL_STMT *stmt = psHashLookup(preparedQuery, query);
+    MYSQL_STMT **stmt = psHashLookup(preparedQuery, query);
     if (!stmt) {
         psTrace("psLib.db", PS_LOG_INFO, "statment is not in query cache");
+
         // Prepare SQL statement
-        MYSQL_STMT *stmt = mysql_stmt_init(dbh->mysql);
+        stmt = psAlloc(sizeof(MYSQL_STMT *));
+        *stmt = mysql_stmt_init(dbh->mysql);
         if (!stmt) {
             psAbort("mysql_stmt_init(), out of memory.");
         }
-        if (mysql_stmt_prepare(stmt, query, (unsigned long)strlen(query))) {
-            psError(PS_ERR_UNKNOWN, true, "Failed to prepare query.  Error: %s", mysql_stmt_error(stmt));
-            mysql_stmt_close(stmt);
+        if (mysql_stmt_prepare(*stmt, query, (unsigned long)strlen(query))) {
+            psError(PS_ERR_UNKNOWN, true, "Failed to prepare query.  Error: %s", mysql_stmt_error(*stmt));
+            mysql_stmt_close(*stmt);
             psFree(query);
 
             // end lock on query cache
-            if (psMemGetThreadSafety()) {
-                pthread_mutex_unlock(&preparedQueryMutex);
-            }
+//            if (psMemGetThreadSafety()) {
+//                pthread_mutex_unlock(&preparedQueryMutex);
+//            }
 
             return -1;
@@ -903,12 +905,12 @@
 
     // end lock on query cache
-    if (psMemGetThreadSafety()) {
-        pthread_mutex_unlock(&preparedQueryMutex);
-    }
+//    if (psMemGetThreadSafety()) {
+//        pthread_mutex_unlock(&preparedQueryMutex);
+//    }
 
     psFree(query);
 
     // how many place holders are in our query
-    psS32 paramCount = mysql_stmt_param_count(stmt);
+    psS32 paramCount = mysql_stmt_param_count(*stmt);
 
     // structure large enough to hold one field of data per place holder
@@ -923,5 +925,5 @@
 
             psFree(mysqlRow);
-            mysql_stmt_close(stmt);
+//            mysql_stmt_close(stmt);
 
             return -1;
@@ -934,18 +936,18 @@
         }
 
-        if (mysql_stmt_bind_param(stmt, mysqlRow->bind)) {
-            psError(PS_ERR_UNKNOWN, true, "Failed to bind params.  Error: %s", mysql_stmt_error(stmt));
+        if (mysql_stmt_bind_param(*stmt, mysqlRow->bind)) {
+            psError(PS_ERR_UNKNOWN, true, "Failed to bind params.  Error: %s", mysql_stmt_error(*stmt));
 
             psFree(mysqlRow);
-            mysql_stmt_close(stmt);
+//           mysql_stmt_close(stmt);
 
             return -1;
         }
 
-        if (mysql_stmt_execute(stmt)) {
-            psError(PS_ERR_UNKNOWN, true, "Failed to execute prepared statement.  Error: %s", mysql_stmt_error(stmt));
+        if (mysql_stmt_execute(*stmt)) {
+            psError(PS_ERR_UNKNOWN, true, "Failed to execute prepared statement.  Error: %s", mysql_stmt_error(*stmt));
 
             psFree(mysqlRow);
-            mysql_stmt_close(stmt);
+//            mysql_stmt_close(stmt);
 
             return -1;
@@ -960,7 +962,7 @@
 
     // FYI mysql_stmt_affected_rows() must be called before a commit
-    long rowsAffected = mysql_stmt_affected_rows(stmt);
-
-    mysql_stmt_close(stmt);
+    long rowsAffected = mysql_stmt_affected_rows(*stmt);
+
+//    mysql_stmt_close(stmt);
 
     return rowsAffected;
