Index: trunk/psLib/src/fileUtils/psDB.c
===================================================================
--- trunk/psLib/src/fileUtils/psDB.c	(revision 3554)
+++ trunk/psLib/src/fileUtils/psDB.c	(revision 3560)
@@ -12,6 +12,6 @@
  *  @author Joshua Hoblitt
  *
- *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-03-30 00:05:50 $
+ *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-03-30 07:02:44 $
  *
  *  Copyright 2005 Joshua Hoblitt, University of Hawaii
@@ -226,5 +226,4 @@
     if (!query) {
         psError(PS_ERR_UNEXPECTED_NULL, false, "Query generation failed.");
-
         return NULL;
     }
@@ -232,7 +231,5 @@
     if (!psDBRunQuery(dbh, query)) {
         psError(PS_ERR_UNKNOWN, false, "Query execution failed.");
-
         psFree(query);
-
         return NULL;
     }
@@ -249,5 +246,4 @@
         if (fieldCount != 0) {
             psError(PS_ERR_UNEXPECTED_NULL, true, "Query returned no data.  Error: %s", mysql_error(dbh->mysql));
-
             return NULL;
         }
@@ -276,4 +272,5 @@
         // add field to return array
         psArrayAdd(column, 0, data);
+        psFree(data);
     }
 
@@ -283,5 +280,5 @@
 }
 
-// dest = assign too, source = source string psArray, conv = conversion function,
+// dest = assign to, source = source string psArray, conv = conversion function,
 // type = type to cast to, pType = psElemType
 #define PS_STR_ARRAY_TO_PTYPE(dest, source, conv, type, pType) \
@@ -436,7 +433,7 @@
             // copy field data and convert NULLs to the appropriate NaN value
             if ((pType == PS_TYPE_PTR) || (pType == PS_META_STR)) {
-                pType = PS_META_STR;
                 data = fieldLength[i] ? psStringNCopy(row[i], fieldLength[i])
                        : psDBGetPTypeNaN(pType);
+                psMetadataAddStr(md, 0, field[i].name, "", data);
             } else {
                 if (fieldLength[i]) {
@@ -446,8 +443,12 @@
                     data = psDBGetPTypeNaN(pType);
                 }
+                if (pType == PS_META_S32) {
+                    psMetadataAddS32(md, 0, field[i].name, "", atoll(data));
+                } else if (pType == PS_META_F32) {
+                    psMetadataAddF32(md, 0, field[i].name, "", atof(data));
+                } else if (pType == PS_META_F64) {
+                    psMetadataAddF64(md, 0, field[i].name, "", atof(data));
+                }
             }
-
-            // add new field to row
-            psMetadataAdd(md, 0, field[i].name, pType, "no comment", data);
 
             psFree(data);
@@ -614,9 +615,15 @@
             // PS_META_UNKNOWN -> PS_META_ARRAY ?
             column = psDBSelectColumn(dbh, tableName, field[i].name, 0);
-            psMetadataAdd(table, 0, field[i].name, PS_META_STR, "no comment", column);
+            psMetadataAddStr(table, 0, field[i].name, "", column);
             psFree(column);
         } else {
             column = psDBSelectColumnNum(dbh, tableName, field[i].name, pType, 0);
-            psMetadataAdd(table, 0, field[i].name, pType, "no comment", column);
+            if (pType == PS_META_S32) {
+                psMetadataAddS32(table, 0, field[i].name, "", (psS32)atoll(column));
+            } else if (pType == PS_META_F32) {
+                psMetadataAddF32(table, 0, field[i].name, "", (psF32)atof(column));
+            } else if (pType == PS_META_F64) {
+                psMetadataAddF64(table, 0, field[i].name, "", (psF64)atof(column));
+            }
             psFree(column);
         }
