Index: trunk/archive/psdb/psDB.c
===================================================================
--- trunk/archive/psdb/psDB.c	(revision 3135)
+++ trunk/archive/psdb/psDB.c	(revision 3137)
@@ -8,6 +8,6 @@
  *  @author Joshua Hoblitt
  *
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-02-05 00:49:51 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-02-05 00:57:49 $
  *
  *  Copyright 2005 Joshua Hoblitt, University of Hawaii
@@ -228,10 +228,10 @@
 }
 
-// a = assign too, b = source psArray, c = conversion function, d = type to cast to
-#define STRINGARRAYTOPTYPE(a, b, c, d)  for (i = 0; i < b->n; i++) { \
-                                            a = (d)(strlen(b->data[i]) \
-                                              ? atoi(b->data[i]) \
-                                              : *(d *)p_psDBGetPTypeNull(pType)); \
-                                        }
+// a = assign too, b = source psArray, c = conversion function, d = type to cast to, e = psElemType
+#define STRINGARRAYTOPTYPE(a, b, c, d, e)   for (i = 0; i < b->n; i++) { \
+                                                a = (d)(strlen(b->data[i]) \
+                                                  ? atoi(b->data[i]) \
+                                                  : *(d *)p_psDBGetPTypeNull(e)); \
+                                            }
 
 psVector *psDBSelectColumnNum(psDB *dbh, const char *tableName, const char *col, psElemType pType, const psU64 limit)
@@ -253,41 +253,41 @@
     switch (pType) {
         case PS_TYPE_S8:
-            STRINGARRAYTOPTYPE(column->data.S8[i], stringColumn, atoi, psS8);
+            STRINGARRAYTOPTYPE(column->data.S8[i], stringColumn, atoi, psS8, PS_TYPE_S8);
             break;
         case PS_TYPE_S16:
-            STRINGARRAYTOPTYPE(column->data.S16[i], stringColumn, atoi, psS16);
+            STRINGARRAYTOPTYPE(column->data.S16[i], stringColumn, atoi, psS16, PS_TYPE_S16);
             break;
         case PS_TYPE_S32:
-            STRINGARRAYTOPTYPE(column->data.S32[i], stringColumn, atoi, psS32);
+            STRINGARRAYTOPTYPE(column->data.S32[i], stringColumn, atoi, psS32, PS_TYPE_S32);
             break;
         case PS_TYPE_S64:
-            STRINGARRAYTOPTYPE(column->data.S64[i], stringColumn, atoll, psS64);
+            STRINGARRAYTOPTYPE(column->data.S64[i], stringColumn, atoll, psS64, PS_TYPE_S64);
             break;
         case PS_TYPE_U8:
             // missing from psVector in SDRS
-            STRINGARRAYTOPTYPE(column->data.U8[i], stringColumn, atoi, psU8);
+            STRINGARRAYTOPTYPE(column->data.U8[i], stringColumn, atoi, psU8, PS_TYPE_U8);
             break;
         case PS_TYPE_U16:
-            STRINGARRAYTOPTYPE(column->data.U16[i], stringColumn, atoi, psU16);
+            STRINGARRAYTOPTYPE(column->data.U16[i], stringColumn, atoi, psU16, PS_TYPE_U16);
             break;
         case PS_TYPE_U32:
-            STRINGARRAYTOPTYPE(column->data.U32[i], stringColumn, atoi, psU32);
+            STRINGARRAYTOPTYPE(column->data.U32[i], stringColumn, atoi, psU32, PS_TYPE_U32);
             break;
         case PS_TYPE_U64:
-            STRINGARRAYTOPTYPE(column->data.U64[i], stringColumn, atoll, psU64);
+            STRINGARRAYTOPTYPE(column->data.U64[i], stringColumn, atoll, psU64, PS_TYPE_U64);
             break;
         case PS_TYPE_F32:
-            STRINGARRAYTOPTYPE(column->data.F32[i], stringColumn, atof, psF32);
+            STRINGARRAYTOPTYPE(column->data.F32[i], stringColumn, atof, psF32, PS_TYPE_F32);
             break;
         case PS_TYPE_F64:
-            STRINGARRAYTOPTYPE(column->data.F64[i], stringColumn, atof, psF64);
+            STRINGARRAYTOPTYPE(column->data.F64[i], stringColumn, atof, psF64, PS_TYPE_F64);
             break;
         case PS_TYPE_C32:
             // this is a bogus SQL type
-            STRINGARRAYTOPTYPE(column->data.C32[i], stringColumn, atof, psC32);
+            STRINGARRAYTOPTYPE(column->data.C32[i], stringColumn, atof, psC32, PS_TYPE_C32);
             break;
         case PS_TYPE_C64:
             // this is a bogus SQL type
-            STRINGARRAYTOPTYPE(column->data.C64[i], stringColumn, atof, psC64);
+            STRINGARRAYTOPTYPE(column->data.C64[i], stringColumn, atof, psC64, PS_TYPE_C64);
             break;
         case PS_TYPE_BOOL:
