Index: trunk/Ohana/src/opihi/cmd.data/dbselect.c
===================================================================
--- trunk/Ohana/src/opihi/cmd.data/dbselect.c	(revision 17852)
+++ trunk/Ohana/src/opihi/cmd.data/dbselect.c	(revision 20936)
@@ -67,6 +67,24 @@
       return (FALSE);
     }
-    REALLOCATE (vec[i][0].elements, float, Nrows);
-    vec[i][0].Nelements = Nrows;
+    switch (fields[i].type) {
+      case FIELD_TYPE_TINY:
+      case FIELD_TYPE_SHORT:
+      case FIELD_TYPE_LONG:
+      case FIELD_TYPE_INT24:
+      case FIELD_TYPE_LONGLONG:
+	ResetVector (vec[i], OPIHI_INT, Nrows);
+	break;
+      case FIELD_TYPE_DECIMAL:
+      case FIELD_TYPE_FLOAT:
+      case FIELD_TYPE_DOUBLE:
+      case FIELD_TYPE_TIME:
+      case FIELD_TYPE_DATE:
+      case FIELD_TYPE_DATETIME:
+	ResetVector (vec[i], OPIHI_FLT, Nrows);
+	break;
+      default:
+	ResetVector (vec[i], OPIHI_FLT, Nrows);
+	break;
+    }
   }
 
@@ -88,8 +106,10 @@
 	  case FIELD_TYPE_INT24:
 	  case FIELD_TYPE_LONGLONG:
+	    vec[i][0].elements.Int[j] = atol (row[i]);
+	    break;
 	  case FIELD_TYPE_DECIMAL:
 	  case FIELD_TYPE_FLOAT:
 	  case FIELD_TYPE_DOUBLE:
-	    vec[i][0].elements[j] = atof (row[i]);
+	    vec[i][0].elements.Flt[j] = atof (row[i]);
 	    break;
 	  case FIELD_TYPE_TIME:
@@ -97,11 +117,11 @@
 	  case FIELD_TYPE_DATETIME:
 	    seconds = ohana_date_to_sec (row[i]);
-	    vec[i][0].elements[j] = ohana_sec_to_mjd (seconds);
+	    vec[i][0].elements.Flt[j] = ohana_sec_to_mjd (seconds);
 	    break;
 	  default:
-	    vec[i][0].elements[j] = NAN;
+	    vec[i][0].elements.Flt[j] = NAN;
 	}
       } else {
-	vec[i][0].elements[j] = NAN;
+	vec[i][0].elements.Flt[j] = NAN;
       }
     }
