Index: trunk/psLib/src/db/psDB.c
===================================================================
--- trunk/psLib/src/db/psDB.c	(revision 12393)
+++ trunk/psLib/src/db/psDB.c	(revision 12394)
@@ -12,6 +12,6 @@
  *  @author Joshua Hoblitt
  *
- *  @version $Revision: 1.138 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2007-03-05 21:17:34 $
+ *  @version $Revision: 1.139 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2007-03-10 01:24:40 $
  *
  *  Copyright (C) 2005-2006  Joshua Hoblitt, University of Hawaii
@@ -416,12 +416,14 @@
         dataSize = *(mysql_fetch_lengths(result));
 
-        // represent NULL as an empty string
+        // represent NULL as a NULL string
         if (row[0] == NULL) {
-            data = psStringCopy("");
-        } else {
-            data = psAlloc(dataSize+1);
-            memcpy(data, row[0], dataSize);
-            ((char*)data)[dataSize] = '\0';
-        }
+            psArrayAdd(column, 0, NULL);
+            continue;
+        }
+
+        // make a copy of the data
+        data = psAlloc(dataSize+1);
+        memcpy(data, row[0], dataSize);
+        ((char*)data)[dataSize] = '\0';
 
         // add field to return array
@@ -441,8 +443,7 @@
 { \
     psPtr           myNaN; \
-    int             i; \
     \
-    for (i = 0; i < source->n; i++) { \
-        if (strlen(source->data[i])) { \
+    for (long i = 0; i < source->n; i++) { \
+        if (source->data[i]) { \
             dest[i] = (type)conv(source->data[i]); \
         } else { \
