Index: /trunk/ippTools/src/addtool.c
===================================================================
--- /trunk/ippTools/src/addtool.c	(revision 26980)
+++ /trunk/ippTools/src/addtool.c	(revision 26981)
@@ -104,5 +104,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -122,10 +122,10 @@
     psString bare_query = pxDataGet("addtool_find_cam_id.sql");
     if (!bare_query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
     }
 
-    // prevent queueing an addRun if a given exposure has already been added to 
+    // prevent queueing an addRun if a given exposure has already been added to
     // the given dvo database
     psString dvodb_string = NULL;
@@ -238,12 +238,12 @@
         // queue the exp
         if (!pxaddQueueByCamID(config,
-			       row->cam_id,
-			       workdir     ? workdir   : row->workdir,
-			       reduction   ? reduction : row->reduction,
-			       label       ? label     : row->label,
-			       data_group  ? data_group : (row->data_group ? row->data_group :  (label ? label : row->label)),
-			       dvodb       ? dvodb     : row->dvodb,
+                               row->cam_id,
+                               workdir     ? workdir   : row->workdir,
+                               reduction   ? reduction : row->reduction,
+                               label       ? label     : row->label,
+                               data_group  ? data_group : (row->data_group ? row->data_group :  (label ? label : row->label)),
+                               dvodb       ? dvodb     : row->dvodb,
                                note        ? note      : NULL,
-			       image_only
+                               image_only
         )) {
             if (!psDBRollback(config->dbh)) {
@@ -283,5 +283,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -303,5 +303,5 @@
 
     if ((!state) && (!label)) {
-        psError(PXTOOLS_ERR_DATA, false, "parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "parameters are required");
         psFree(where);
         return false;
@@ -346,5 +346,5 @@
     psString query = pxDataGet("addtool_find_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -412,5 +412,5 @@
     psString query = pxDataGet("addtool_find_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -454,5 +454,5 @@
         dtime_addstar,
         path_base,
-	fault
+        fault
         );
 
@@ -506,5 +506,5 @@
         !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters (or -all) are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters (or -all) are required");
         return false;
     }
@@ -512,5 +512,5 @@
     psString query = pxDataGet("addtool_find_processedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -520,5 +520,5 @@
         psStringAppend(&query, " WHERE %s", whereClause);
         psFree(whereClause);
-    } 
+    }
 
     // we either add AND (condition) or WHERE (condition):
@@ -526,5 +526,5 @@
         // list only faulted rows
         psStringAppend(&query, " %s", " AND addProcessedExp.fault != 0");
-    } 
+    }
     if (where->list && !faulted) {
         // don't list faulted rows
@@ -534,5 +534,5 @@
         // list only faulted rows
         psStringAppend(&query, " %s", " WHERE addProcessedExp.fault != 0");
-    } 
+    }
     if (!where->list && !faulted) {
         // don't list faulted rows
@@ -595,5 +595,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -608,5 +608,5 @@
         psString query = pxDataGet("addtool_reset_faulted_runs.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -640,5 +640,5 @@
                 psError(PS_ERR_UNKNOWN, false, "database error");
             }
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
Index: /trunk/ippTools/src/camtool.c
===================================================================
--- /trunk/ippTools/src/camtool.c	(revision 26980)
+++ /trunk/ippTools/src/camtool.c	(revision 26981)
@@ -115,5 +115,5 @@
         !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -133,5 +133,5 @@
     psString query = pxDataGet("camtool_find_chip_id.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -260,5 +260,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -268,5 +268,5 @@
     bool result = pxUpdateRun(config, where, &query, "camRun", true);
     if (!result) {
-        psError(PXTOOLS_ERR_DATA, false, "pxUpdateRun failed");
+        psError(psErrorCodeLast(), false, "pxUpdateRun failed");
     }
 
@@ -293,5 +293,5 @@
     psString query = pxDataGet("camtool_find_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -358,5 +358,5 @@
     psString query = pxDataGet("camtool_find_pendingimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -490,5 +490,5 @@
     psString query = pxDataGet("camtool_find_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -691,5 +691,5 @@
         !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters (or -all) are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters (or -all) are required");
         return false;
     }
@@ -697,5 +697,5 @@
     psString query = pxDataGet("camtool_find_processedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -780,5 +780,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -793,5 +793,5 @@
         psString query = pxDataGet("camtool_reset_faulted_runs.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -825,5 +825,5 @@
                 psError(PS_ERR_UNKNOWN, false, "database error");
             }
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -965,5 +965,5 @@
     psString query = pxDataGet("camtool_pendingcleanuprun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1030,5 +1030,5 @@
     psString query = pxDataGet("camtool_pendingcleanupexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1091,5 +1091,5 @@
     psString query = pxDataGet("camtool_donecleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1177,5 +1177,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
Index: /trunk/ippTools/src/chiptool.c
===================================================================
--- /trunk/ippTools/src/chiptool.c	(revision 26980)
+++ /trunk/ippTools/src/chiptool.c	(revision 26981)
@@ -95,5 +95,5 @@
         MODECASE(CHIPTOOL_MODE_TOFULLIMFILE,            tofullimfileMode);
         MODECASE(CHIPTOOL_MODE_TOPURGEDIMFILE,          topurgedimfileMode);
-	MODECASE(CHIPTOOL_MODE_TOSCRUBBEDIMFILE,        toscrubbedimfileMode);
+        MODECASE(CHIPTOOL_MODE_TOSCRUBBEDIMFILE,        toscrubbedimfileMode);
         MODECASE(CHIPTOOL_MODE_EXPORTRUN,               exportrunMode);
         MODECASE(CHIPTOOL_MODE_IMPORTRUN,               importrunMode);
@@ -135,5 +135,5 @@
     if ((psListLength(where->list) <= 1) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -157,5 +157,5 @@
     psString query = pxDataGet("chiptool_find_rawexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -227,13 +227,13 @@
 
 
-# define GET_VALUE(PTYPE,CTYPE,VALUE,NAME) 				\
-    PTYPE VALUE;							\
-    { bool status;							\
-	VALUE = psMetadataLookup##CTYPE(&status, md, NAME);		\
-	if (!status) {							\
-	    psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", NAME); \
-	    psFree(output);						\
-	    return false;						\
-	} }
+# define GET_VALUE(PTYPE,CTYPE,VALUE,NAME)                              \
+    PTYPE VALUE;                                                        \
+    { bool status;                                                      \
+        VALUE = psMetadataLookup##CTYPE(&status, md, NAME);             \
+        if (!status) {                                                  \
+            psError(PS_ERR_UNKNOWN, false, "failed to lookup value for %s", NAME); \
+            psFree(output);                                             \
+            return false;                                               \
+        } }
 
     // loop over our list of exp_ids
@@ -248,7 +248,7 @@
         }
 
-        GET_VALUE (psS64,    S64, exp_id,      	 "exp_id");
-        GET_VALUE (psString, Str, raw_workdir, 	 "workdir");
-        GET_VALUE (psString, Str, raw_label,   	 "label");
+        GET_VALUE (psS64,    S64, exp_id,        "exp_id");
+        GET_VALUE (psString, Str, raw_workdir,   "workdir");
+        GET_VALUE (psString, Str, raw_label,     "label");
         GET_VALUE (psString, Str, raw_reduction, "reduction");
         // GET_VALUE (psString, Str, raw_expgroup,  "expgroup");
@@ -264,19 +264,19 @@
 
         // queue the exp
-        if (!pxchipQueueByExpTag(config, 
-				 exp_id, 
-				 workdir     ? workdir   : raw_workdir,
-				 label       ? label     : raw_label,
+        if (!pxchipQueueByExpTag(config,
+                                 exp_id,
+                                 workdir     ? workdir   : raw_workdir,
+                                 label       ? label     : raw_label,
                                  data_group  ? data_group : (label ? label : raw_label),
                                  dist_group,
-				 reduction   ? reduction : raw_reduction,
-				 // expgroup    ? expgroup  : raw_expgroup,
-				 // XXX how does expgroup get defined?
-				 expgroup,
-				 dvodb       ? dvodb     : raw_dvodb,
-				 tess_id     ? tess_id   : raw_tess_id,
-				 end_stage   ? end_stage : raw_end_stage,
+                                 reduction   ? reduction : raw_reduction,
+                                 // expgroup    ? expgroup  : raw_expgroup,
+                                 // XXX how does expgroup get defined?
+                                 expgroup,
+                                 dvodb       ? dvodb     : raw_dvodb,
+                                 tess_id     ? tess_id   : raw_tess_id,
+                                 end_stage   ? end_stage : raw_end_stage,
                                  note
-				 )) {
+                                 )) {
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -314,5 +314,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -322,5 +322,5 @@
     bool result = pxUpdateRun(config, where, &query, "chipRun", true);
     if (!result) {
-        psError(PXTOOLS_ERR_DATA, false, "pxUpdateRun failed");
+        psError(psErrorCodeLast(), false, "pxUpdateRun failed");
     }
 
@@ -346,5 +346,5 @@
     psString query = pxDataGet("chiptool_pendingimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -601,5 +601,5 @@
     // add cuts on ra and decl if supplied
     if (!pxspaceAddWhere(config, &where2, "rawExp")) {
-        psError(PXTOOLS_ERR_DATA, false, "pxSpaceAddWhere failed");
+        psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
         return false;
     }
@@ -607,5 +607,5 @@
     psString query = pxDataGet("chiptool_processedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -619,5 +619,5 @@
     } else {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters (or -all) are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters (or -all) are required");
         return false;
     }
@@ -684,5 +684,5 @@
         && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -690,5 +690,5 @@
     psString query = pxDataGet("chiptool_revertprocessedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -725,8 +725,8 @@
         return false;
     }
-        
+
     if (!state) {
       PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false);
-      
+
       if (!pxSetFaultCode(config->dbh, "chipProcessedImfile", where, fault)) {
         psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
@@ -737,10 +737,10 @@
     else {
       if (!pxchipProcessedImfileSetStateByQuery(config,where,state)) {
-	psError(PS_ERR_UNKNOWN, false, "failed to set chipProcessedImfile state");
-	return(false);
+        psError(PS_ERR_UNKNOWN, false, "failed to set chipProcessedImfile state");
+        return(false);
       }
     }
 
-      
+
     return true;
 }
@@ -844,5 +844,5 @@
     psString query = pxDataGet("chiptool_unmasked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -922,5 +922,5 @@
     psString query = pxDataGet("chiptool_pendingcleanuprun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -986,5 +986,5 @@
     psString query = pxDataGet("chiptool_pendingcleanupimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1047,5 +1047,5 @@
     psString query = pxDataGet("chiptool_donecleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1105,5 +1105,5 @@
     // make sure that the state string is valid
     if (!pxIsValidState(state)) {
-        psError(PXTOOLS_ERR_DATA, false, "%s is not a valid state", state);
+        psError(PXTOOLS_ERR_CONFIG, false, "%s is not a valid state", state);
         return false;
     }
@@ -1118,5 +1118,5 @@
     psString query = pxDataGet("chiptool_run.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1180,5 +1180,5 @@
     psString query = pxDataGet("chiptool_completely_processed_exp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1408,5 +1408,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
@@ -1444,5 +1444,5 @@
 
     if (clean) {
-        bool success = true; 
+        bool success = true;
         if (!strcmp(tables[i].tableName, "chipRun")) {
             success = pxSetStateCleaned("chipRun", "state", output);
@@ -1548,5 +1548,5 @@
     psString query = pxDataGet("chiptool_runstate.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1557,5 +1557,5 @@
         psFree(whereClause);
     } else {
-        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
         return false;
     }
Index: /trunk/ippTools/src/detselect.c
===================================================================
--- /trunk/ippTools/src/detselect.c	(revision 26980)
+++ /trunk/ippTools/src/detselect.c	(revision 26981)
@@ -135,69 +135,5 @@
     psString query = pxDataGet("detselect_search.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-        return false;
-    }
-
-    // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE
-    if (where && psListLength(where->list)) {
-        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
-	psStringAppend(&query, " AND %s", whereClause);
-	psFree(whereClause);
-    }
-    psFree(where);
-
-    // we choose the single detrend image which matches all criteria and has
-    // the latest insertion date
-
-    // unless explicitly specified by the user, list all possible matches
-    if (!unlimit) {
-        psStringAppend(&query, " ORDER BY registered DESC LIMIT 1");
-    }
-
-    if (!p_psDBRunQuery(config->dbh, query)) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
-        psFree(query);
-        return false;
-    }
-    psFree(query);
-
-    psArray *output = p_psDBFetchResult(config->dbh);
-    if (!output) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
-        return false;
-    }
-    if (!psArrayLength(output)) {
-        // XXX check psError here
-        psError(PS_ERR_UNKNOWN, false, "no detrend exposures found");
-        psFree(output);
-        return true;
-    }
-
-    // negate simple so the default is true
-    if (!ippdbPrintMetadatas(stdout, output, "detExp", !simple)) {
-        psError(PS_ERR_UNKNOWN, false, "failed to print array");
-        psFree(output);
-        return false;
-    }
-
-    psFree(output);
-
-    return true;
-}
-
-static bool selectMode(pxConfig *config)
-{
-    PS_ASSERT_PTR_NON_NULL(config, false);
-
-    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
-
-    psMetadata *where = psMetadataAlloc();
-    PXOPT_COPY_STR(config->args, where, "-det_id",    "det_id", "==");
-    PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "==");
-    PXOPT_COPY_STR(config->args, where, "-class_id",  "class_id", "==");
-
-    psString query = pxDataGet("detselect_select.sql");
-    if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -211,4 +147,68 @@
     psFree(where);
 
+    // we choose the single detrend image which matches all criteria and has
+    // the latest insertion date
+
+    // unless explicitly specified by the user, list all possible matches
+    if (!unlimit) {
+        psStringAppend(&query, " ORDER BY registered DESC LIMIT 1");
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(query);
+
+    psArray *output = p_psDBFetchResult(config->dbh);
+    if (!output) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+    }
+    if (!psArrayLength(output)) {
+        // XXX check psError here
+        psError(PS_ERR_UNKNOWN, false, "no detrend exposures found");
+        psFree(output);
+        return true;
+    }
+
+    // negate simple so the default is true
+    if (!ippdbPrintMetadatas(stdout, output, "detExp", !simple)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
+    }
+
+    psFree(output);
+
+    return true;
+}
+
+static bool selectMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+
+    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_STR(config->args, where, "-det_id",    "det_id", "==");
+    PXOPT_COPY_S32(config->args, where, "-iteration", "iteration", "==");
+    PXOPT_COPY_STR(config->args, where, "-class_id",  "class_id", "==");
+
+    psString query = pxDataGet("detselect_select.sql");
+    if (!query) {
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
+    }
+
+    // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE
+    if (where && psListLength(where->list)) {
+        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+        psStringAppend(&query, " AND %s", whereClause);
+        psFree(whereClause);
+    }
+    psFree(where);
+
     if (!p_psDBRunQuery(config->dbh, query)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 26980)
+++ /trunk/ippTools/src/dettool.c	(revision 26981)
@@ -94,5 +94,5 @@
         MODECASE(DETTOOL_MODE_PENDINGCLEANUP_PROCESSEDEXP, pendingcleanup_processedexpMode);
         MODECASE(DETTOOL_MODE_DONECLEANUP_PROCESSEDEXP, donecleanup_processedexpMode);
-	MODECASE(DETTOOL_MODE_UPDATESTATE_PROCESSED, updatestateprocessedMode);
+        MODECASE(DETTOOL_MODE_UPDATESTATE_PROCESSED, updatestateprocessedMode);
         // stacked
         MODECASE(DETTOOL_MODE_TOSTACKED,        tostackedMode);
@@ -143,5 +143,5 @@
         MODECASE(DETTOOL_MODE_PENDINGCLEANUP_RESIDEXP, pendingcleanup_residexpMode);
         MODECASE(DETTOOL_MODE_DONECLEANUP_RESIDEXP, donecleanup_residexpMode);
-	MODECASE(DETTOOL_MODE_UPDATESTATE_RESID, updatestateresidMode);
+        MODECASE(DETTOOL_MODE_UPDATESTATE_RESID, updatestateresidMode);
         // detrunsummary
         MODECASE(DETTOOL_MODE_TODETRUNSUMMARY,  todetrunsummaryMode);
@@ -152,5 +152,5 @@
         MODECASE(DETTOOL_MODE_UPDATEDETRUN,     updatedetrunMode);
         MODECASE(DETTOOL_MODE_RERUN,            rerunMode);
-	MODECASE(DETTOOL_MODE_PENDINGCLEANUP_DETRUNSUMMARY, pendingcleanup_detrunsummaryMode);
+        MODECASE(DETTOOL_MODE_PENDINGCLEANUP_DETRUNSUMMARY, pendingcleanup_detrunsummaryMode);
         // register
         MODECASE(DETTOOL_MODE_REGISTER_DETREND, register_detrendMode);
@@ -187,8 +187,8 @@
     psString query = pxDataGet("dettool_pending.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-        return false;
-    }
-    
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
+    }
+
     psMetadata *where = psMetadataAlloc();
     PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");
@@ -260,10 +260,10 @@
         psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
         return false;
-    } 
+    }
     if (strcmp(mode, "verify") && ((ref_det_id != 0) || (ref_iter != -1))) {
         psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
         return false;
-    } 
-	
+    }
+
     PXOPT_LOOKUP_STR(camera, config->args, "-inst", false, false);
     PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
@@ -310,5 +310,5 @@
         psMetadataItem *mItem = NULL;
         while ((mItem = psListGetAndIncrement(iter))) {
-	    psS64 exp_id = mItem->data.S64;
+            psS64 exp_id = mItem->data.S64;
             if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", PS_META_DUPLICATE_OK, "==", exp_id)) {
                 psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
@@ -319,13 +319,13 @@
         }
         psFree(iter);
-    } 
+    }
     if (item->type == PS_DATA_S64) {
-	psS64 exp_id = item->data.S64;
-	if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", PS_META_DUPLICATE_OK, "==", exp_id)) {
-	    psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
-	    psFree(where);
-	    return false;
-	}
-    } 
+        psS64 exp_id = item->data.S64;
+        if (!psMetadataAddS64(where, PS_LIST_TAIL, "exp_id", PS_META_DUPLICATE_OK, "==", exp_id)) {
+            psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
+            psFree(where);
+            return false;
+        }
+    }
 
     if (psListLength(where->list) < 1) {
@@ -507,9 +507,9 @@
         psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
         return false;
-    } 
+    }
     if (strcmp(mode, "verify") && ((ref_det_id != 0) || (ref_iter != -1))) {
         psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
         return false;
-    } 
+    }
 
     PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
@@ -676,5 +676,5 @@
                  label,
                  ref_det_id,
-		 ref_iter
+                 ref_iter
         );
     psS64 det_id = psDBLastInsertID(config->dbh);
@@ -745,5 +745,5 @@
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
-    
+
     // XXX this mode is not well-tested: probably need to specify iteration here
     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
@@ -762,9 +762,9 @@
         psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
         return false;
-    } 
+    }
     if (strcmp(mode, "verify") && ((ref_det_id != 0) || (ref_iter != -1))) {
         psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
         return false;
-    } 
+    }
 
     // the new detRun may have different values for these limits:
@@ -820,5 +820,5 @@
 
     if (iteration < 0) {
-	iteration = detRun->iteration;
+        iteration = detRun->iteration;
     }
 
@@ -980,5 +980,5 @@
     psString query = pxDataGet("dettool_definebydetrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -992,5 +992,5 @@
 
     if (only_accepted) {
-	psStringAppend(&query, " AND accept = 1");
+        psStringAppend(&query, " AND accept = 1");
     }
 
@@ -1071,5 +1071,5 @@
     psString query = pxDataGet("dettool_runs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1141,5 +1141,5 @@
     psString query = pxDataGet("dettool_childlessrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -1215,5 +1215,5 @@
     psString query = pxDataGet("dettool_input.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -1267,5 +1267,5 @@
     psString query = pxDataGet("dettool_raw.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1341,5 +1341,5 @@
 }
 
-// used by updatedetrunMode 
+// used by updatedetrunMode
 bool startNewIteration(pxConfig *config, psS64 det_id)
 {
@@ -1348,5 +1348,5 @@
     psString query = pxDataGet("dettool_start_new_iteration.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1567,5 +1567,5 @@
         }
         detInputExpRow *newInputExp = detInputExpRowAlloc(
-	    det_id,
+            det_id,
             newIteration,
             inputExp->exp_id,
@@ -1665,6 +1665,6 @@
                       solang_max,
                       label,
-		      ref_det_id,
-		      ref_iter
+                      ref_det_id,
+                      ref_iter
             )) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1716,5 +1716,5 @@
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
-    
+
     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
     PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required
@@ -1731,20 +1731,20 @@
 
     if (!detRegisteredImfileInsert(config->dbh,
-				   det_id,
-				   0,  // the iteration is fixed at 0
-				   class_id,
-				   uri,
-				   bg,
-				   bg_stdev,
-				   bg_mean_stdev,
-				   user_1,
-				   user_2,
-				   user_3,
-				   user_4,
-				   user_5,
-				   path_base,
-				   "full",				   
-				   0       // fault code
-	    )) {
+                                   det_id,
+                                   0,  // the iteration is fixed at 0
+                                   class_id,
+                                   uri,
+                                   bg,
+                                   bg_stdev,
+                                   bg_mean_stdev,
+                                   user_1,
+                                   user_2,
+                                   user_3,
+                                   user_4,
+                                   user_5,
+                                   path_base,
+                                   "full",
+                                   0       // fault code
+            )) {
         psError(PS_ERR_UNKNOWN, false, "database error");
         return false;
@@ -1979,11 +1979,11 @@
 
     char *query = "UPDATE detStackedImfile SET data_state = '%s'"
-	" WHERE det_id = %" PRId64
-	" AND iteration = %" PRId32
-	" AND class_id = '%s'";
+        " WHERE det_id = %" PRId64
+        " AND iteration = %" PRId32
+        " AND class_id = '%s'";
     if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration, class_id)) {
         psError(PS_ERR_UNKNOWN, false,
-                "failed to change state for det_id %" PRId64 ", iteration %" PRId32 "class_id %s", 
-		det_id, iteration, class_id);
+                "failed to change state for det_id %" PRId64 ", iteration %" PRId32 "class_id %s",
+                det_id, iteration, class_id);
         return false;
     }
@@ -2001,12 +2001,12 @@
 
     char *query = "UPDATE detNormalizedStatImfile SET data_state = '%s'"
-	" WHERE det_id = %" PRId64
-	" AND iteration = %" PRId32
-	" AND class_id = '%s'";
+        " WHERE det_id = %" PRId64
+        " AND iteration = %" PRId32
+        " AND class_id = '%s'";
 /*     fprintf(stderr,"DETTOOL SAYS: %s\n",query); */
     if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration,class_id)) {
         psError(PS_ERR_UNKNOWN, false,
-                "failed to change state for det_id %" PRId64 ", iteration %" PRId32, 
-		det_id, iteration);
+                "failed to change state for det_id %" PRId64 ", iteration %" PRId32,
+                det_id, iteration);
         return false;
     }
@@ -2024,11 +2024,11 @@
 
     char *query = "UPDATE detNormalizedImfile SET data_state = '%s'"
-	" WHERE det_id = %" PRId64
-	" AND iteration = %" PRId32
-	" AND class_id = '%s'";
+        " WHERE det_id = %" PRId64
+        " AND iteration = %" PRId32
+        " AND class_id = '%s'";
     if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration, class_id)) {
         psError(PS_ERR_UNKNOWN, false,
-                "failed to change state for det_id %" PRId64 ", iteration %" PRId32 " class %s", 
-		det_id, iteration, class_id);
+                "failed to change state for det_id %" PRId64 ", iteration %" PRId32 " class %s",
+                det_id, iteration, class_id);
         return false;
     }
@@ -2045,10 +2045,10 @@
 
     char *query = "UPDATE detNormalizedExp SET data_state = '%s'"
-	" WHERE det_id = %" PRId64
-	" AND iteration = %" PRId32;
+        " WHERE det_id = %" PRId64
+        " AND iteration = %" PRId32;
     if (!p_psDBRunQueryF(config->dbh, query, data_state, det_id, iteration)) {
         psError(PS_ERR_UNKNOWN, false,
-                "failed to change state for det_id %" PRId64 ", iteration %" PRId32, 
-		det_id, iteration);
+                "failed to change state for det_id %" PRId64 ", iteration %" PRId32,
+                det_id, iteration);
         return false;
     }
@@ -2064,5 +2064,5 @@
     char sqlFilename[80];
   } ExportTable;
-  
+
   int numExportTables = 12;
 
@@ -2100,5 +2100,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
@@ -2142,5 +2142,5 @@
     }
     psFree(output);
-  
+
   }
 
@@ -2153,7 +2153,7 @@
 {
   unsigned int nFail;
-  
+
   int numImportTables = 11;
-  
+
   char tables[11] [80] = {"detInputExp", "detNormalizedExp",
     "detNormalizedImfile", "detNormalizedStatImfile", "detProcessedExp",
@@ -2162,5 +2162,5 @@
 
   PS_ASSERT_PTR_NON_NULL(config, NULL);
-  
+
   PXOPT_LOOKUP_STR(infile, config->args, "-infile", true,  false);
 
@@ -2169,5 +2169,5 @@
   fprintf (stdout, "---- input ----\n");
   psMetadataPrint (stderr, input, 1);
-  
+
   psMetadataItem *item = psMetadataLookup (input, "detRun");
   psAssert (item, "entry not in input?");
@@ -2179,5 +2179,5 @@
   detRunRow *detRun = detRunObjectFromMetadata (entry->data.md);
   detRunInsertObject (config->dbh, detRun);
-  
+
   // fprintf (stdout, "---- det run ----\n");
   // psMetadataPrint (stderr, entry->data.md, 1);
@@ -2187,5 +2187,5 @@
     psAssert (item, "entry not in input?");
     psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?");
-  
+
     switch (i) {
       case 0:
@@ -2201,5 +2201,5 @@
         }
         break;
-  
+
       case 1:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2214,5 +2214,5 @@
         }
         break;
-        
+
       case 2:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2227,5 +2227,5 @@
         }
         break;
- 
+
       case 3:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2240,5 +2240,5 @@
         }
         break;
-        
+
       case 4:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2253,5 +2253,5 @@
         }
         break;
-        
+
       case 5:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2266,5 +2266,5 @@
         }
         break;
-        
+
       case 6:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2279,5 +2279,5 @@
         }
         break;
-        
+
       case 7:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2292,5 +2292,5 @@
         }
         break;
-        
+
       case 8:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2305,5 +2305,5 @@
         }
         break;
-        
+
       case 9:
         for (int i = 0; i < item->data.list->n; i++) {
@@ -2318,5 +2318,5 @@
         }
         break;
-        
+
       case 10:
         for (int i = 0; i < item->data.list->n; i++) {
Index: /trunk/ippTools/src/dettool_correction.c
===================================================================
--- /trunk/ippTools/src/dettool_correction.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_correction.c	(revision 26981)
@@ -34,5 +34,5 @@
     PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
 
-    // build the needed where 
+    // build the needed where
     psMetadata *where = psMetadataAlloc();
     psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", ref_det_id);
@@ -88,6 +88,6 @@
          detRun->solang_max,
          use_label,
-	 detRun->det_id, // ref_det_id
-	 detRun->iteration // ref_iter
+         detRun->det_id, // ref_det_id
+         detRun->iteration // ref_iter
     );
     psFree(runs);
@@ -140,11 +140,11 @@
     psString query = pxDataGet("dettool_tocorrectimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
 
     if (psListLength(where->list)) {
-	// NOTE the SQL uses an intermediate table 'det1' for this query
-        psString whereClause = psDBGenerateWhereConditionSQL(where, "det1"); 
+        // NOTE the SQL uses an intermediate table 'det1' for this query
+        psString whereClause = psDBGenerateWhereConditionSQL(where, "det1");
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
@@ -198,5 +198,5 @@
     psString query = pxDataGet("dettool_tocorrectexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -248,9 +248,9 @@
         return false;
     }
-    
+
     // automatically stop completed 'correct' detRuns
     psString query = pxDataGet("dettool_stop_completed_correct_runs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_detrunsummary.c
===================================================================
--- /trunk/ippTools/src/dettool_detrunsummary.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_detrunsummary.c	(revision 26981)
@@ -35,5 +35,5 @@
     psString query = pxDataGet("dettool_todetrunsummary.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -135,5 +135,5 @@
     psString query = pxDataGet("dettool_find_completed_runs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -241,5 +241,5 @@
     psString query = pxDataGet("dettool_detrunsummary.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -310,5 +310,5 @@
     psString query = pxDataGet("dettool_revertdetrunsummary.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -348,8 +348,8 @@
   psString query = pxDataGet("dettool_pendingcleanup_detrunsummary.sql");
   if (!query) {
-    psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     return(false);
   }
-  
+
   if (psListLength(where->list)) {
     psString whereClause = psDBGenerateWhereConditionSQL(where, "detRunSummary");
@@ -429,93 +429,93 @@
 
 /*       if (!isValidDataState(data_state)) return false; */
-      
-      
-      
+
+
+
       char *query_detRunSummary = "UPDATE detRunSummary SET data_state = '%s'"
-	" WHERE det_id = %" PRId64
-	" AND iteration = %" PRId32;
+        " WHERE det_id = %" PRId64
+        " AND iteration = %" PRId32;
       if (!p_psDBRunQueryF(config->dbh, query_detRunSummary, data_state, det_id,iteration)) {
-	psError(PS_ERR_UNKNOWN, false,
-		"failed to change state for det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	return false;
+        psError(PS_ERR_UNKNOWN, false,
+                "failed to change state for det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+        return false;
       }
 
       /* This check allows the one update to flag everything for cleanup.  The check for full is only temporary while I test for bugs. */
       if ((!strncmp(data_state,"goto_",5)
-	   //	   || (!strcmp(data_state,"full"))
-	   //	   || (!strcmp(data_state,"cleaned"))
-	   ))	{
-	char *query_detProcessedImfile = "UPDATE detProcessedImfile SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64;
-	if (!p_psDBRunQueryF(config->dbh, query_detProcessedImfile,data_state,det_id)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detProcessedImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-	
-	char *query_detProcessedExp = "UPDATE detProcessedExp SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64;
-	if (!p_psDBRunQueryF(config->dbh, query_detProcessedExp,data_state,det_id)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detProcessedExp det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-	
-	char *query_detNormalizedImfile = "UPDATE detNormalizedImfile SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64
-	  " AND iteration = %" PRId32;
-	if (!p_psDBRunQueryF(config->dbh, query_detNormalizedImfile,data_state,det_id,iteration)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detNormalizedImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-	
-	char *query_detNormalizedStatImfile = "UPDATE detNormalizedStatImfile SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64
-	  " AND iteration = %" PRId32;
-	if (!p_psDBRunQueryF(config->dbh, query_detNormalizedStatImfile,data_state,det_id,iteration)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detNormalizedStatImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-
-	char *query_detNormalizedExp = "UPDATE detNormalizedExp SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64
-	  " AND iteration = %" PRId32;
-	if (!p_psDBRunQueryF(config->dbh, query_detNormalizedExp,data_state,det_id,iteration)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detNormalizedExp det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-	
-	char *query_detResidImfile = "UPDATE detResidImfile SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64
-	  " AND iteration = %" PRId32;
-	if (!p_psDBRunQueryF(config->dbh, query_detResidImfile,data_state,det_id,iteration)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detResidImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-	
-	char *query_detResidExp = "UPDATE detResidExp SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64
-	  " AND iteration = %" PRId32;
-	if (!p_psDBRunQueryF(config->dbh, query_detResidExp,data_state,det_id,iteration)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detResidExp det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
-	
-	char *query_detStackedImfile = "UPDATE detStackedImfile SET data_state = '%s'"
-	  " WHERE det_id = %" PRId64
-	  " AND iteration = %" PRId32;
-	if (!p_psDBRunQueryF(config->dbh, query_detStackedImfile,data_state,det_id,iteration)) {
-	  psError(PS_ERR_UNKNOWN, false,
-		  "failed to change state for detStackedImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
-	  return(false);
-	}
+           //      || (!strcmp(data_state,"full"))
+           //      || (!strcmp(data_state,"cleaned"))
+           ))   {
+        char *query_detProcessedImfile = "UPDATE detProcessedImfile SET data_state = '%s'"
+          " WHERE det_id = %" PRId64;
+        if (!p_psDBRunQueryF(config->dbh, query_detProcessedImfile,data_state,det_id)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detProcessedImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detProcessedExp = "UPDATE detProcessedExp SET data_state = '%s'"
+          " WHERE det_id = %" PRId64;
+        if (!p_psDBRunQueryF(config->dbh, query_detProcessedExp,data_state,det_id)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detProcessedExp det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detNormalizedImfile = "UPDATE detNormalizedImfile SET data_state = '%s'"
+          " WHERE det_id = %" PRId64
+          " AND iteration = %" PRId32;
+        if (!p_psDBRunQueryF(config->dbh, query_detNormalizedImfile,data_state,det_id,iteration)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detNormalizedImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detNormalizedStatImfile = "UPDATE detNormalizedStatImfile SET data_state = '%s'"
+          " WHERE det_id = %" PRId64
+          " AND iteration = %" PRId32;
+        if (!p_psDBRunQueryF(config->dbh, query_detNormalizedStatImfile,data_state,det_id,iteration)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detNormalizedStatImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detNormalizedExp = "UPDATE detNormalizedExp SET data_state = '%s'"
+          " WHERE det_id = %" PRId64
+          " AND iteration = %" PRId32;
+        if (!p_psDBRunQueryF(config->dbh, query_detNormalizedExp,data_state,det_id,iteration)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detNormalizedExp det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detResidImfile = "UPDATE detResidImfile SET data_state = '%s'"
+          " WHERE det_id = %" PRId64
+          " AND iteration = %" PRId32;
+        if (!p_psDBRunQueryF(config->dbh, query_detResidImfile,data_state,det_id,iteration)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detResidImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detResidExp = "UPDATE detResidExp SET data_state = '%s'"
+          " WHERE det_id = %" PRId64
+          " AND iteration = %" PRId32;
+        if (!p_psDBRunQueryF(config->dbh, query_detResidExp,data_state,det_id,iteration)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detResidExp det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
+
+        char *query_detStackedImfile = "UPDATE detStackedImfile SET data_state = '%s'"
+          " WHERE det_id = %" PRId64
+          " AND iteration = %" PRId32;
+        if (!p_psDBRunQueryF(config->dbh, query_detStackedImfile,data_state,det_id,iteration)) {
+          psError(PS_ERR_UNKNOWN, false,
+                  "failed to change state for detStackedImfile det_id %" PRId64 ", iteration %" PRId32, det_id,iteration);
+          return(false);
+        }
       }
       /* End if */
-      
+
     }
 
Index: /trunk/ippTools/src/dettool_normalizedexp.c
===================================================================
--- /trunk/ippTools/src/dettool_normalizedexp.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_normalizedexp.c	(revision 26981)
@@ -29,5 +29,5 @@
     psString query = pxDataGet("dettool_tonormalizedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -89,5 +89,5 @@
     psString query = pxDataGet("dettool_tonormalizedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -156,5 +156,5 @@
     psString query = pxDataGet("dettool_normalizedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -225,5 +225,5 @@
     psString query = pxDataGet("dettool_revertnormalizedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -278,5 +278,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_normalizedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -340,5 +340,5 @@
     psString query = pxDataGet("dettool_donecleanup_normalizedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_normalizedimfile.c
===================================================================
--- /trunk/ippTools/src/dettool_normalizedimfile.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_normalizedimfile.c	(revision 26981)
@@ -30,5 +30,5 @@
     psString query = pxDataGet("dettool_tonormalize.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -137,5 +137,5 @@
     psString query = pxDataGet("dettool_normalizedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -205,5 +205,5 @@
     psString query = pxDataGet("dettool_revertnormalizedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -260,5 +260,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_normalizedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -323,5 +323,5 @@
     psString query = pxDataGet("dettool_donecleanup_normalizedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_normalizedstat.c
===================================================================
--- /trunk/ippTools/src/dettool_normalizedstat.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_normalizedstat.c	(revision 26981)
@@ -29,5 +29,5 @@
     psString query = pxDataGet("dettool_tonormalizedstat.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -117,5 +117,5 @@
     psString query = pxDataGet("dettool_normalizedstat.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -185,5 +185,5 @@
     psString query = pxDataGet("dettool_revertnormalizedstat.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -240,5 +240,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_normalizedstat.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -303,5 +303,5 @@
     psString query = pxDataGet("dettool_donecleanup_normalizedstat.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_processedexp.c
===================================================================
--- /trunk/ippTools/src/dettool_processedexp.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_processedexp.c	(revision 26981)
@@ -29,5 +29,5 @@
     psString query = pxDataGet("dettool_toprocessedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -101,5 +101,5 @@
     psString query = pxDataGet("dettool_addprocessedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -235,5 +235,5 @@
     psString query = pxDataGet("dettool_revertprocessedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -313,5 +313,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_processedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -375,5 +375,5 @@
     psString query = pxDataGet("dettool_donecleanup_processedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_processedimfile.c
===================================================================
--- /trunk/ippTools/src/dettool_processedimfile.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_processedimfile.c	(revision 26981)
@@ -34,5 +34,5 @@
     psString query = pxDataGet("dettool_toprocessedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -180,5 +180,5 @@
     psString query = pxDataGet("dettool_processedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -267,5 +267,5 @@
     psString query = pxDataGet("dettool_revertprocessedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -299,5 +299,5 @@
     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false);
     PXOPT_LOOKUP_STR(data_state, config->args, "-data_state", true, false);
-    
+
     psMetadata *where = psMetadataAlloc();
 
@@ -327,5 +327,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_processedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -356,10 +356,10 @@
     if (!output) {
         psError(PS_ERR_UNKNOWN, false, "database error");
-/* 	fprintf(stderr,"WTF !output?\n"); */
+/*      fprintf(stderr,"WTF !output?\n"); */
         return false;
     }
     if (!psArrayLength(output)) {
         psTrace("dettool", PS_LOG_INFO, "no rows found");
-/* 	fprintf(stderr,"WTF no rows??\n"); */
+/*      fprintf(stderr,"WTF no rows??\n"); */
         psFree(output);
         return true;
@@ -397,5 +397,5 @@
     psString query = pxDataGet("dettool_donecleanup_processedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_residexp.c
===================================================================
--- /trunk/ippTools/src/dettool_residexp.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_residexp.c	(revision 26981)
@@ -35,5 +35,5 @@
     psString query = pxDataGet("dettool_toresidexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -119,5 +119,5 @@
     psString query = pxDataGet("dettool_toresidexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -202,5 +202,5 @@
     psString query = pxDataGet("dettool_residexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -277,5 +277,5 @@
     psString query = pxDataGet("dettool_revertresidexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -387,5 +387,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_residexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -450,5 +450,5 @@
     psString query = pxDataGet("dettool_donecleanup_residexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_residimfile.c
===================================================================
--- /trunk/ippTools/src/dettool_residimfile.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_residimfile.c	(revision 26981)
@@ -29,5 +29,5 @@
     psString query = pxDataGet("dettool_toresidimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -165,5 +165,5 @@
     psString query = pxDataGet("dettool_residimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -253,5 +253,5 @@
     psString query = pxDataGet("dettool_revertresidimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -282,5 +282,5 @@
 {
     PS_ASSERT_PTR_NON_NULL(config, NULL);
-    
+
     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false);
     PXOPT_LOOKUP_STR(data_state, config->args, "-data_state", true, false);
@@ -292,5 +292,5 @@
     PXOPT_COPY_S64(config->args,where,"-exp_id","exp_id","==");
     PXOPT_COPY_STR(config->args,where,"-class_id","class_id","==");
-    
+
     if (!setResidImfileDataState(config, where, data_state)) {
         return false;
@@ -314,5 +314,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_residimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -378,5 +378,5 @@
     psString query = pxDataGet("dettool_donecleanup_residimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/dettool_stack.c
===================================================================
--- /trunk/ippTools/src/dettool_stack.c	(revision 26980)
+++ /trunk/ippTools/src/dettool_stack.c	(revision 26981)
@@ -31,5 +31,5 @@
     psString query = pxDataGet("dettool_tostacked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -220,5 +220,5 @@
     psString query = pxDataGet("dettool_stacked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -290,5 +290,5 @@
     psString query = pxDataGet("dettool_revertstacked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -345,5 +345,5 @@
     psString query = pxDataGet("dettool_pendingcleanup_stacked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -408,5 +408,5 @@
     psString query = pxDataGet("dettool_donecleanup_stacked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/difftool.c
===================================================================
--- /trunk/ippTools/src/difftool.c	(revision 26980)
+++ /trunk/ippTools/src/difftool.c	(revision 26981)
@@ -195,5 +195,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -383,5 +383,5 @@
     psString query = pxDataGet("difftool_inputskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -471,5 +471,5 @@
     psString query = pxDataGet("difftool_todiffskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -628,5 +628,5 @@
     psString query = pxDataGet("difftool_completed_runs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -748,5 +748,5 @@
     psString query = pxDataGet("difftool_skyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -759,5 +759,5 @@
         psStringAppend(&query, " WHERE diffRun.diff_id is not null %s", where2);
     } else if (!all) {
-        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
         return false;
     }
@@ -825,5 +825,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -839,5 +839,5 @@
         psString query = pxDataGet("difftool_revertdiffskyfile_update.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -869,5 +869,5 @@
         psString query = pxDataGet("difftool_revertdiffskyfile_delete.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1177,5 +1177,5 @@
     psString query = pxDataGet("difftool_definewarpstack_part1.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1591,5 +1591,5 @@
         psString tempCreate = pxDataGet("difftool_definewarpwarp_temp_create.sql"); // Create temp table SQL
         if (!tempCreate) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(selectWhere);
             psFree(insertWhere);
@@ -1614,5 +1614,5 @@
         psString tempInsert = pxDataGet("difftool_definewarpwarp_temp_insert.sql"); // Insert to temp table
         if (!tempInsert) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(selectWhere);
             psFree(insertWhere);
@@ -1646,5 +1646,5 @@
     psString select = pxDataGet("difftool_definewarpwarp_select.sql");
     if (!select) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(selectWhere);
         psFree(insertWhere);
@@ -1902,10 +1902,10 @@
   psString query = pxDataGet("difftool_definestackstack_part0.sql");
   if (!query) {
-    psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     return(false);
   }
   psTrace("difftool",1,query,stack2Query,stack1Query,diffQuery,stack1Query);
 /*   exit(10); */
-	  
+
   if (!psDBTransaction(config->dbh)) {
     psError(PS_ERR_UNKNOWN, false, "database error");
@@ -2093,5 +2093,5 @@
         psFree(diffQuery);
         psFree(run);
-	psFree(list);
+        psFree(list);
         if (!psDBRollback(config->dbh)) {
             psError(PS_ERR_UNKNOWN, false, "database error");
@@ -2108,5 +2108,5 @@
     return false;
   }
-  
+
   if (!diffRunPrintObjects(stdout, list, !simple)) {
     psError(PS_ERR_UNKNOWN, false, "failed to print object");
@@ -2114,5 +2114,5 @@
     return false;
   }
-  
+
   psFree(query);
   psFree(stack1Query);
@@ -2137,5 +2137,5 @@
     psString query = pxDataGet("difftool_pendingcleanuprun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -2212,5 +2212,5 @@
     psString query = pxDataGet("difftool_pendingcleanupskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -2272,5 +2272,5 @@
     psString query = pxDataGet("difftool_donecleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -2458,5 +2458,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
Index: /trunk/ippTools/src/disttool.c
===================================================================
--- /trunk/ippTools/src/disttool.c	(revision 26980)
+++ /trunk/ippTools/src/disttool.c	(revision 26981)
@@ -144,5 +144,5 @@
     PXOPT_LOOKUP_S64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
-    
+
     PXOPT_LOOKUP_BOOL(dry_run, config->args, "-dry_run", false);
 
@@ -165,5 +165,5 @@
         query = pxDataGet("disttool_definebyquery_raw.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -182,5 +182,5 @@
         query = pxDataGet("disttool_definebyquery_chip.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -198,5 +198,5 @@
         query = pxDataGet("disttool_definebyquery_camera.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -213,5 +213,5 @@
         query = pxDataGet("disttool_definebyquery_fake.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -231,5 +231,5 @@
         query = pxDataGet("disttool_definebyquery_warp.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -248,5 +248,5 @@
         query = pxDataGet("disttool_definebyquery_diff.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -264,5 +264,5 @@
         query = pxDataGet("disttool_definebyquery_stack.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(where);
             return false;
@@ -362,5 +362,5 @@
 
         psString outroot = NULL;
-        psStringAppend(&outroot, "%s/%s/%s", workdir, run_tag, stage); 
+        psStringAppend(&outroot, "%s/%s/%s", workdir, run_tag, stage);
 
         psString new_label;
@@ -436,5 +436,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -446,5 +446,5 @@
 
     if ((!state) && (!label) && (!fault)) {
-        psError(PXTOOLS_ERR_DATA, false, "parameters (-fault or -set_state or -set_label) are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "parameters (-fault or -set_state or -set_label) are required");
         psFree(where);
         return false;
@@ -497,5 +497,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -503,5 +503,5 @@
     psString query = pxDataGet("disttool_revertrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         if (!psDBRollback(config->dbh)) {
             psError(PS_ERR_UNKNOWN, false, "database error");
@@ -546,5 +546,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -552,5 +552,5 @@
     psString query = pxDataGet("disttool_revertcomponent.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -594,5 +594,5 @@
     psString query = pxDataGet(queryFile);
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement from %s", queryFile);
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement from %s", queryFile);
         return false;
     }
@@ -693,5 +693,5 @@
     psString query = pxDataGet("disttool_toadvance.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -764,5 +764,5 @@
     psString query = pxDataGet("disttool_processedcomponent.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -838,5 +838,5 @@
     psString query = pxDataGet("disttool_pendingfileset.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -908,5 +908,5 @@
     PXOPT_LOOKUP_STR(name, config->args, "-name", fault == 0, false);
 
-    if (!rcDSFilesetInsert(config->dbh, 
+    if (!rcDSFilesetInsert(config->dbh,
             0,          // fs_id
             dist_id,
@@ -938,5 +938,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -944,5 +944,5 @@
     psString query = pxDataGet("disttool_revertfileset.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -986,5 +986,5 @@
     psString query = pxDataGet("disttool_pendingdest.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1065,5 +1065,5 @@
     psString query = pxDataGet("disttool_queuercrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1111,5 +1111,5 @@
     // We either need rc_id or (dest_id and fs_name) to identifiy the rcRun
     if ((!rc_id) && !(dest_id && fs_name)) {
-        psError(PXTOOLS_ERR_DATA, true, "either -rc_id or (-fs_name and -dest_id) are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "either -rc_id or (-fs_name and -dest_id) are required");
         return false;
     }
@@ -1123,5 +1123,5 @@
         // this can't happen because we checked above
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1133,5 +1133,5 @@
 
     if (!state && (fault < 0)) {
-        psError(PXTOOLS_ERR_DATA, false, "parameters (-fault or -set_state) are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "parameters (-fault or -set_state) are required");
         psFree(where);
         return false;
@@ -1140,5 +1140,5 @@
     psString query = pxDataGet("disttool_updatercrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1197,5 +1197,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1203,5 +1203,5 @@
     psString query = pxDataGet("disttool_revertrcrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         if (!psDBRollback(config->dbh)) {
             psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1256,5 +1256,5 @@
             comment
             );
-            
+
     if (!row) {
         psError(PS_ERR_UNKNOWN, false, "failed to allocate distTarget object");
@@ -1422,5 +1422,5 @@
             state ? state : "enabled"
             );
-            
+
     if (!row) {
         psError(PS_ERR_UNKNOWN, false, "failed to allocate rcDestination object");
@@ -1459,5 +1459,5 @@
     if (!(state || last_fileset)) {
         psError(PS_ERR_UNKNOWN, true, "one or more of -set_state or -set_last_fileset is required");
-# else 
+# else
     if (!state) {
 #endif
@@ -1759,5 +1759,5 @@
     } else if (!all) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters or -all are required");
         return false;
     }
@@ -1826,5 +1826,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1882,5 +1882,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1894,5 +1894,5 @@
 
     if ((!state) && (!gotFault)) {
-        psError(PXTOOLS_ERR_DATA, true, "parameters (-fault or -set_state) is required");
+        psError(PXTOOLS_ERR_CONFIG, true, "parameters (-fault or -set_state) is required");
         psFree(where);
         return false;
Index: /trunk/ippTools/src/dqstatstool.c
===================================================================
--- /trunk/ippTools/src/dqstatstool.c	(revision 26980)
+++ /trunk/ippTools/src/dqstatstool.c	(revision 26981)
@@ -71,5 +71,5 @@
   PXOPT_LOOKUP_BOOL(force,      config->args, "-force", false);
   PXOPT_LOOKUP_U64(limit,       config->args, "-limit", false, 0);
-  
+
   // properties of the raw exposures
   psMetadata *where = psMetadataAlloc();
@@ -79,5 +79,5 @@
   psString query = pxDataGet("dqstatstool_definebyquery.sql");
   if (!query) {
-    psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+    psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     psFree(where);
     return(false);
@@ -96,5 +96,5 @@
     psStringAppend(&query, " OR invalid = 0");
   }
-  
+
   psFree(where);
   if (limit) {
@@ -103,5 +103,5 @@
     psFree(limitString);
   }
-    
+
   if (!p_psDBRunQuery(config->dbh, query)) {
     psError(PS_ERR_UNKNOWN, false, "database error");
@@ -140,14 +140,14 @@
     return false;
   }
-  
+
   // Create the run entry and grab the dqstats_id
   dqstatsRunRow *run = dqstatsRunRowAlloc(
-					  0,        // ID
-					  "new",    // state
-					  registered,
-					  set_label,
-					  0         // fault
-					  );
-  
+                                          0,        // ID
+                                          "new",    // state
+                                          registered,
+                                          set_label,
+                                          0         // fault
+                                          );
+
   if (!dqstatsRunInsertObject(config->dbh, run)) {
     if (!psDBRollback(config->dbh)) {
@@ -182,15 +182,15 @@
 
     if (!dqstatsContentInsert(config->dbh,
-			      dqstats_id,
-			      exp_id,
-			      chip_id,
-			      cam_id,
-			      warp_id,
-			      0 // do not create automatically invalid contents
-			      )) {
+                              dqstats_id,
+                              exp_id,
+                              chip_id,
+                              cam_id,
+                              warp_id,
+                              0 // do not create automatically invalid contents
+                              )) {
       psError(PS_ERR_UNKNOWN, false, "database error");
       psFree(output);
       if (!psDBRollback(config->dbh)) {
-	psError(PS_ERR_UNKNOWN, false, "database error");
+        psError(PS_ERR_UNKNOWN, false, "database error");
       }
       return(false);
@@ -210,17 +210,17 @@
 static bool pendingbundleMode(pxConfig *config) {
   PS_ASSERT_PTR_NON_NULL(config,false);
-  
+
   PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
   PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
-  
-  
+
+
   psMetadata *where = psMetadataAlloc();
-  //  pxdqstatsGetSearchArgs (config, where); 
+  //  pxdqstatsGetSearchArgs (config, where);
   PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstatsRun.dqstats_id", "==");
   PXOPT_COPY_STR(config->args, where, "-label", "dqstatsRun.label", "==");
-  
+
   psString query = pxDataGet("dqstatstool_get_run.sql");           // query
   if (!query) {
-    psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
+    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
     return(false);
   }
@@ -239,5 +239,5 @@
     psFree(limitString);
   }
-  
+
   if (!p_psDBRunQuery(config->dbh, query)) {
     psError(PS_ERR_UNKNOWN, false, "database error");
@@ -246,5 +246,5 @@
   }
   psFree(query);                                                  // where whereClause
-  
+
   psArray *output = p_psDBFetchResult(config->dbh);               // where whereClause output
   if (!output) {
@@ -284,5 +284,5 @@
   psString runQuery = pxDataGet("dqstatstool_get_run.sql");
   if (!runQuery) {
-    psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
+    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");
     return(false);
   }
@@ -292,5 +292,5 @@
   psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);  // Save for content query
   psStringAppend(&runQuery, " AND %s", whereClause);
-  psFree(where); 
+  psFree(where);
 
   if (!p_psDBRunQuery(config->dbh, runQuery)) {
@@ -301,5 +301,5 @@
   }
   psFree(runQuery);
-  
+
   psArray *output = p_psDBFetchResult(config->dbh);
   if (!output) {
@@ -333,5 +333,5 @@
     return(false);
   }
-  
+
   psMetadataIterator *iter = psMetadataIteratorAlloc(columns, PS_LIST_HEAD,NULL);
 
@@ -348,18 +348,18 @@
       psStringAppend(&columnlist, ", ");
     }
-    
+
     psStringAppend(&columnlist, "%s.%s",
-		   psMetadataLookupStr(&status,coldef,"TABLE"),
-		   psMetadataLookupStr(&status,coldef,"ENTRY"));
+                   psMetadataLookupStr(&status,coldef,"TABLE"),
+                   psMetadataLookupStr(&status,coldef,"ENTRY"));
 
     psMetadataAddStr(colNames,PS_LIST_TAIL,
-		     psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
-		     psMetadataLookupStr(&status,coldef,"COLNAME"));
+                     psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
+                     psMetadataLookupStr(&status,coldef,"COLNAME"));
     psMetadataAddStr(colTypes,PS_LIST_TAIL,
-		     psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
-		     psMetadataLookupStr(&status,coldef,"DATATYPE"));
+                     psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",
+                     psMetadataLookupStr(&status,coldef,"DATATYPE"));
   }
   psFree(iter);
-  
+
   if (!columnlist) {
     psError(PS_ERR_UNKNOWN, false, "Failed to find a columnlist");
@@ -369,9 +369,9 @@
     return(false);
   }
-  
+
   // Find the contents that comprise this run
   psString contentQuery = pxDataGet("dqstatstool_get_contents.sql");
   if (!contentQuery) {
-    psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement (dqstatstool_get_contents.sql)");
+    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_contents.sql)");
     psFree(whereClause);
     psFree(colNames);
@@ -414,5 +414,5 @@
   psString query = pxDataGet("dqstatstool_createbundle.sql");
   if (!query) {
-    psError(PXTOOLS_ERR_DATA, false, "Failed to retrieve sql statement");
+    psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement");
     psFree(colNames);
     psFree(colTypes);
@@ -448,7 +448,7 @@
       psMetadataAddS64(where,PS_LIST_TAIL, "warpRun.warp_id", 0, "==", psMetadataLookupS64(&status,row,"warp_id"));
     }
-    
+
     psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
-    psStringAppend(&MYquery, " WHERE %s", whereClause);    
+    psStringAppend(&MYquery, " WHERE %s", whereClause);
     psFree(whereClause);
     psFree(where);
@@ -466,5 +466,5 @@
     }
     psFree(MYquery);
-    
+
     psArray *statsoutput = p_psDBFetchResult(config->dbh);
     if (!statsoutput) {
@@ -501,63 +501,63 @@
       psString colType = psMetadataLookupStr(&status,colTypes,rowItem->name);
       if (!colType) {
-	psError(PS_ERR_UNKNOWN,false, "Could not find type for %s",rowItem->name);
-	return(false);
+        psError(PS_ERR_UNKNOWN,false, "Could not find type for %s",rowItem->name);
+        return(false);
       }
       psString colName = psMetadataLookupStr(&status,colNames,rowItem->name);
       if (!colName) {
-	psError(PS_ERR_UNKNOWN,false, "Could not find name for %s",rowItem->name);
-	return(false);
+        psError(PS_ERR_UNKNOWN,false, "Could not find name for %s",rowItem->name);
+        return(false);
       }
 
       if (!strcmp(colType,"PS_DATA_BOOL")) {
-	success = psMetadataAddBool(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.B);
+        success = psMetadataAddBool(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.B);
       }
       else if (!strcmp(colType,"PS_DATA_S8")) {
-	success = psMetadataAddS8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S8);
+        success = psMetadataAddS8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S8);
       }
       else if (!strcmp(colType,"PS_DATA_S16")) {
-	success = psMetadataAddS16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S16);
+        success = psMetadataAddS16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S16);
       }
       else if (!strcmp(colType,"PS_DATA_S32")) {
-	success = psMetadataAddS32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S32);
+        success = psMetadataAddS32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S32);
       }
       else if (!strcmp(colType,"PS_DATA_S64")) {
-	success = psMetadataAddS64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S64);
+        success = psMetadataAddS64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S64);
       }
       else if (!strcmp(colType,"PS_DATA_U8")) {
-	success = psMetadataAddU8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U8);
+        success = psMetadataAddU8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U8);
       }
       else if (!strcmp(colType,"PS_DATA_U16")) {
-	success = psMetadataAddU16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U16);
+        success = psMetadataAddU16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U16);
       }
       else if (!strcmp(colType,"PS_DATA_U32")) {
-	success = psMetadataAddU32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U32);
+        success = psMetadataAddU32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U32);
       }
       else if (!strcmp(colType,"PS_DATA_U64")) {
-	success = psMetadataAddU64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U64);
+        success = psMetadataAddU64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U64);
       }
       else if (!strcmp(colType,"PS_DATA_F32")) {
-	success = psMetadataAddF32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F32);
+        success = psMetadataAddF32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F32);
       }
       else if (!strcmp(colType,"PS_DATA_F64")) {
-	success = psMetadataAddF64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F64);
+        success = psMetadataAddF64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F64);
       }
       else if (!strcmp(colType,"PS_DATA_STRING")) {
-	success = psMetadataAddStr(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.str);
-      }
-      
+        success = psMetadataAddStr(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.str);
+      }
+
       if (!success) {
-	psError(PS_ERR_UNKNOWN,false, "Error constructing fits table row.");
-	psFree(colNames);
-	psFree(colTypes);
-	psFree(contents);
-	psFree(query);
-	psFree(outTable);
-	psFree(statsoutput);
-	psFree(statIter);
-	psFree(tableRow);
-	psFree(colType);
-	psFree(colName);
-	return(false);
+        psError(PS_ERR_UNKNOWN,false, "Error constructing fits table row.");
+        psFree(colNames);
+        psFree(colTypes);
+        psFree(contents);
+        psFree(query);
+        psFree(outTable);
+        psFree(statsoutput);
+        psFree(statIter);
+        psFree(tableRow);
+        psFree(colType);
+        psFree(colName);
+        return(false);
       }
     }
@@ -571,5 +571,5 @@
   psFree(query);
   // Define the fits table here.
-  
+
   psFits *Table = psFitsOpen(bundleUri,"w");
   if (!Table) {
@@ -577,9 +577,9 @@
     psFree(outTable);
     return(false);
-  }  
+  }
 
   psMetadata *header = psMetadataAlloc();
   psMetadataAddS64(header, PS_LIST_TAIL, "DQSTATS_ID", 0, "ID number of DQSTATS run", dqstats_id);
-  
+
   if (!psFitsWriteTable(Table,header,outTable,"DQSTATS")) {
     psError(PS_ERR_UNKNOWN, false, "Unable to write table to fits file.");
@@ -594,7 +594,7 @@
   // Tear down, cleanup.
   psFitsClose(Table);
-  return(true);  
+  return(true);
 }
-  
+
 
 static bool updaterunMode(pxConfig *config) {
@@ -603,20 +603,20 @@
   PXOPT_LOOKUP_STR(state,      config->args, "-set_state",      "state",                 "==");
   PXOPT_LOOKUP_S16(fault,      config->args, "-fault",          "fault",                 "==");
-  
+
   if (state && ! pxIsValidState(state)) {
-    psError(PXTOOLS_ERR_DATA, false, "pxIsValidState failed");
-    return(false);
-  }
-  
+    psError(PXTOOLS_ERR_CONFIG, false, "pxIsValidState failed");
+    return(false);
+  }
+
   psMetadata *where = psMetadataAlloc();
   PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstats_id", "==");
   PXOPT_COPY_S64(config->args, where, "-state", "state", "==");
-  
+
   if (!psListLength(where->list)) {
     psFree(where);
-    psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
-    return(false);
-  }
-  
+    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
+    return(false);
+  }
+
   psString query = psStringCopy("UPDATE dqstatsRun ");
   psStringAppend(&query," SET state = '%s' ", state);
@@ -626,14 +626,14 @@
   psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
   psStringAppend(&query," WHERE %s ",whereClause);
-  
+
   if (!p_psDBRunQuery(config->dbh, query)) {
     psError(PS_ERR_UNKNOWN, false, "database error");
     return(false);
   }
-  
+
   psFree(query);
   psFree(where);
   psFree(whereClause);
-  
+
   return(true);
 }
@@ -648,5 +648,5 @@
   if (!psListLength(where->list)) {
     psFree(where);
-    psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+    psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     return(false);
   }
@@ -667,9 +667,9 @@
   return(true);
 }
-    
-  
-  
-    
-
-    
-    
+
+
+
+
+
+
+
Index: /trunk/ippTools/src/faketool.c
===================================================================
--- /trunk/ippTools/src/faketool.c	(revision 26980)
+++ /trunk/ippTools/src/faketool.c	(revision 26981)
@@ -168,5 +168,5 @@
         && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -190,5 +190,5 @@
     psString query = pxDataGet("faketool_find_camrun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -341,5 +341,5 @@
         psFree(where);
         where = NULL;
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -350,5 +350,5 @@
     bool result = pxUpdateRun(config, where, &query, "fakeRun", true);
     if (!result) {
-        psError(PXTOOLS_ERR_DATA, false, "pxUpdateRun failed");
+        psError(psErrorCodeLast(), false, "pxUpdateRun failed");
     }
 
@@ -375,5 +375,5 @@
     psString query = pxDataGet("faketool_find_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -442,5 +442,5 @@
     psString query = pxDataGet("faketool_pendingimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -563,5 +563,5 @@
     psString query = pxDataGet("faketool_processedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -667,5 +667,5 @@
         && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -673,5 +673,5 @@
     psString query = pxDataGet("faketool_revertprocessedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -814,5 +814,5 @@
     psString query = pxDataGet("faketool_unmasked.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -891,5 +891,5 @@
     psString query = pxDataGet("faketool_pendingcleanuprun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -956,5 +956,5 @@
     psString query = pxDataGet("faketool_pendingcleanupimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1017,5 +1017,5 @@
     psString query = pxDataGet("faketool_donecleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1079,5 +1079,5 @@
     psString query = pxDataGet("faketool_completely_processed_exp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1287,5 +1287,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
Index: /trunk/ippTools/src/flatcorr.c
===================================================================
--- /trunk/ippTools/src/flatcorr.c	(revision 26980)
+++ /trunk/ippTools/src/flatcorr.c	(revision 26981)
@@ -115,9 +115,9 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
-        return false;
-    }
-
-    // require the camera to be defined: this analysis does not make sense 
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
+        return false;
+    }
+
+    // require the camera to be defined: this analysis does not make sense
     // across multiple cameras
     PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false);
@@ -142,5 +142,5 @@
     psString query = pxDataGet("chiptool_find_rawexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -173,12 +173,12 @@
 
     if (pretend) {
-	for (long i = 0; i < psArrayLength(output); i++) {
-	    // negative simple so the default is true
-	    if (!ippdbPrintMetadataRaw(stdout, output->data[i], !simple)) {
-		psError(PS_ERR_UNKNOWN, false, "failed to print array");
-		psFree(output);
-		return false;
-	    }
-	}
+        for (long i = 0; i < psArrayLength(output); i++) {
+            // negative simple so the default is true
+            if (!ippdbPrintMetadataRaw(stdout, output->data[i], !simple)) {
+                psError(PS_ERR_UNKNOWN, false, "failed to print array");
+                psFree(output);
+                return false;
+            }
+        }
         psFree(output);
         return true;
@@ -195,20 +195,20 @@
     // create a new flatcorrRun
     if (!flatcorrRunInsert(
-	    config->dbh,
+            config->dbh,
             0,      // corr_id
-	    det_type,
+            det_type,
             dvodb,
-	    camera,
-	    telescope,
-	    NULL,
+            camera,
+            telescope,
+            NULL,
             filter,
             "reg",  // state
-	    make_correction,
+            make_correction,
             workdir,
             label,
             reduction,
-	    region,
-	    NULL,
-	    0
+            region,
+            NULL,
+            0
         )) {
         if (!psDBRollback(config->dbh)) {
@@ -310,19 +310,19 @@
     // create a new flatcorrRun
     flatcorrRunRow *row = flatcorrRunRowAlloc(
-	0,      // corr_id
-	det_type,
-	dvodb,
-	camera,
-	telescope,
-	NULL,
-	filter,
-	"reg",  // state
-	make_correction,
-	workdir,
-	label,
-	reduction,
-	region,
-	NULL, // hostname
-	0 // fault
+        0,      // corr_id
+        det_type,
+        dvodb,
+        camera,
+        telescope,
+        NULL,
+        filter,
+        "reg",  // state
+        make_correction,
+        workdir,
+        label,
+        reduction,
+        region,
+        NULL, // hostname
+        0 // fault
         );
 
@@ -335,5 +335,5 @@
         return false;
     }
-    
+
     // figure out the ID of the flatcorrRun we just created
     psS64 corr_id = psDBLastInsertID(config->dbh);
@@ -377,6 +377,6 @@
     psString query = pxDataGet("flatcorr_dropchip.sql");
     if (!query) {
-	psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-	return false;
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
     }
 
@@ -420,6 +420,6 @@
     psString query = pxDataGet("flatcorr_dropcamera.sql");
     if (!query) {
-	psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-	return false;
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
     }
 
@@ -448,6 +448,6 @@
     psString query = pxDataGet("flatcorr_chiprundone.sql");
     if (!query) {
-	psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-	return false;
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
     }
 
@@ -461,7 +461,7 @@
     // treat limit == 0 as "no limit"
     if (limit) {
-	psString limitString = psDBGenerateLimitSQL(limit);
-	psStringAppend(&query, " %s", limitString);
-	psFree(limitString);
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
     }
 
@@ -524,15 +524,15 @@
         // queue the exp
         if (!pxcamQueueByChipID(
-		config,
-		row->chip_id,
-		row->workdir,
-		row->label,
-		row->data_group,
-		row->dist_group,
-		row->reduction,
-		row->expgroup,
-		row->dvodb,
-		row->tess_id,
-		"camera",
+                config,
+                row->chip_id,
+                row->workdir,
+                row->label,
+                row->data_group,
+                row->dist_group,
+                row->reduction,
+                row->expgroup,
+                row->dvodb,
+                row->tess_id,
+                "camera",
                 row->magicked,
                 NULL // note does not propragate
@@ -548,8 +548,8 @@
         }
 
-	// figure out the ID of the flatcorrRun we just created
-	psS64 cam_id = psDBLastInsertID(config->dbh);
-
-	// add the camRun entry to the flatcorrCamLink table (include is TRUE)
+        // figure out the ID of the flatcorrRun we just created
+        psS64 cam_id = psDBLastInsertID(config->dbh);
+
+        // add the camRun entry to the flatcorrCamLink table (include is TRUE)
         if (!flatcorrCamLinkInsert(config->dbh, corr_id, row->chip_id, cam_id, 1)) {
             if (!psDBRollback(config->dbh)) {
@@ -559,5 +559,5 @@
             return false;
         }
-	
+
         psFree(row);
     }
@@ -587,6 +587,6 @@
     psString query = pxDataGet("flatcorr_camerarundone.sql");
     if (!query) {
-	psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-	return false;
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
     }
 
@@ -600,7 +600,7 @@
     // treat limit == 0 as "no limit"
     if (limit) {
-	psString limitString = psDBGenerateLimitSQL(limit);
-	psStringAppend(&query, " %s", limitString);
-	psFree(limitString);
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
     }
 
@@ -663,13 +663,13 @@
         // queue the exp : force image_only to be false (flatcorr is meaningless with just image info)
         if (!pxaddQueueByCamID(
-		config,
-		row->cam_id,
-		row->workdir,
-		row->reduction,
-		row->label,
+                config,
+                row->cam_id,
+                row->workdir,
+                row->reduction,
+                row->label,
                 row->data_group,
-		row->dvodb,
+                row->dvodb,
                 NULL,       // note is not propagated
-		0)) {
+                0)) {
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -682,8 +682,8 @@
         }
 
-	// figure out the ID of the flatcorrRun we just created
-	psS64 add_id = psDBLastInsertID(config->dbh);
-
-	// add the addRun entry to the flatcorrAddstarLink table (include is TRUE)
+        // figure out the ID of the flatcorrRun we just created
+        psS64 add_id = psDBLastInsertID(config->dbh);
+
+        // add the addRun entry to the flatcorrAddstarLink table (include is TRUE)
         if (!flatcorrAddstarLinkInsert(config->dbh, corr_id, row->cam_id, add_id, 1)) {
             if (!psDBRollback(config->dbh)) {
@@ -719,6 +719,6 @@
     psString query = pxDataGet("flatcorr_pendingprocess.sql");
     if (!query) {
-	psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-	return false;
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        return false;
     }
 
@@ -732,7 +732,7 @@
     // treat limit == 0 as "no limit"
     if (limit) {
-	psString limitString = psDBGenerateLimitSQL(limit);
-	psStringAppend(&query, " %s", limitString);
-	psFree(limitString);
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
     }
 
@@ -755,7 +755,7 @@
 
     if (!ippdbPrintMetadatas(stdout, output, "flatcorrPending", !simple)) {
-	psError(PS_ERR_UNKNOWN, false, "failed to print array");
-	psFree(output);
-	return false;
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
     }
 
@@ -814,7 +814,7 @@
     // treat limit == 0 as "no limit"
     if (limit) {
-	psString limitString = psDBGenerateLimitSQL(limit);
-	psStringAppend(&query, " %s", limitString);
-	psFree(limitString);
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
     }
 
@@ -837,7 +837,7 @@
 
     if (!ippdbPrintMetadatas(stdout, output, "flatcorrPending", !simple)) {
-	psError(PS_ERR_UNKNOWN, false, "failed to print array");
-	psFree(output);
-	return false;
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
     }
 
@@ -854,5 +854,5 @@
     PXOPT_LOOKUP_BOOL(simple,  config->args, "-simple",  false);
     PXOPT_LOOKUP_BOOL(limit,   config->args, "-limit",   false);
-    
+
     psMetadata *where = psMetadataAlloc();
     PXOPT_COPY_S64(config->args, where, "-chip_id", "chipProcessedImfile.chip_id", "==");
@@ -860,5 +860,5 @@
     psString query = pxDataGet("flatcorr_inputimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -873,7 +873,7 @@
     // treat limit == 0 as "no limit"
     if (limit) {
-	psString limitString = psDBGenerateLimitSQL(limit);
-	psStringAppend(&query, " %s", limitString);
-	psFree(limitString);
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
     }
 
@@ -896,7 +896,7 @@
 
     if (!ippdbPrintMetadatas(stdout, output, "flatcorrPending", !simple)) {
-	psError(PS_ERR_UNKNOWN, false, "failed to print array");
-	psFree(output);
-	return false;
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(output);
+        return false;
     }
 
@@ -910,7 +910,7 @@
 
     // check that state is a valid string value
-    if (!strcmp(state, "reg") && 
-	!strcmp(state, "new") && 
-	!strcmp(state, "full"))
+    if (!strcmp(state, "reg") &&
+        !strcmp(state, "new") &&
+        !strcmp(state, "full"))
     {
         psError(PS_ERR_UNKNOWN, false, "invalid state: %s", state);
Index: /trunk/ippTools/src/magicdstool.c
===================================================================
--- /trunk/ippTools/src/magicdstool.c	(revision 26980)
+++ /trunk/ippTools/src/magicdstool.c	(revision 26981)
@@ -151,8 +151,8 @@
     case IPP_STAGE_FAKE:
     case IPP_STAGE_STACK:
-        psError(PXTOOLS_ERR_DATA, true, "%sRuns do not need to be destreaked", stage);
+        psError(PXTOOLS_ERR_CONFIG, true, "%sRuns do not need to be destreaked", stage);
         return false;
     case IPP_STAGE_NONE:
-        psError(PXTOOLS_ERR_DATA, true, "%s is not a valid stage", stage);
+        psError(PXTOOLS_ERR_CONFIG, true, "%s is not a valid stage", stage);
         return false;
     default:
@@ -163,5 +163,5 @@
 
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -377,8 +377,8 @@
         return false;
       case IPP_STAGE_STACK:
-        psError(PXTOOLS_ERR_DATA, true, "Stacks do not need to be destreaked");
+        psError(PXTOOLS_ERR_CONFIG, true, "Stacks do not need to be destreaked");
         return false;
       case IPP_STAGE_NONE:
-        psError(PXTOOLS_ERR_DATA, true, "%s is not a valid stage", stage);
+        psError(PXTOOLS_ERR_CONFIG, true, "%s is not a valid stage", stage);
         return false;
       default:
@@ -389,5 +389,5 @@
 
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -610,5 +610,5 @@
     psString query = pxDataGet(sql_file);
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement from %s", sql_file);
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement from %s", sql_file);
         psFree(sql_file);
         return false;
@@ -895,5 +895,5 @@
     psString query = pxDataGet("magicdstool_completed_runs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1026,5 +1026,5 @@
 
     if (!new_state) {
-        if (!strcmp(state, "failed_revert")) { 
+        if (!strcmp(state, "failed_revert")) {
             new_state = "new";
         } else if (!strcmp(state, "failed_cleanup")) {
@@ -1134,5 +1134,5 @@
     psString query = pxDataGet("magicdstool_getskycells.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1252,5 +1252,5 @@
     psString query = pxDataGet("magicdstool_toremove.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1330,5 +1330,5 @@
     psString query = pxDataGet(sql_file);
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement from %s", sql_file);
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement from %s", sql_file);
         psFree(sql_file);
         return false;
@@ -1408,5 +1408,5 @@
     psString query = pxDataGet("magicdstool_tocleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/magictool.c
===================================================================
--- /trunk/ippTools/src/magictool.c	(revision 26980)
+++ /trunk/ippTools/src/magictool.c	(revision 26981)
@@ -135,5 +135,5 @@
         psString query = pxDataGet("magictool_definebyquery_select.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             return false;
         }
@@ -434,5 +434,5 @@
     psString query = pxDataGet("magictool_inputskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -507,5 +507,5 @@
     psString query = pxDataGet("magictool_totree.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -645,5 +645,5 @@
     psString query = pxDataGet("magictool_inputs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -815,5 +815,5 @@
     psString query = pxDataGet("magictool_toprocess_inputs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -881,5 +881,5 @@
     query = pxDataGet("magictool_toprocess_runs.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -929,5 +929,5 @@
     query = pxDataGet("magictool_toprocess_tree.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1065,5 +1065,5 @@
     psString query = pxDataGet("magictool_revertnode.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1102,5 +1102,5 @@
     psString query = pxDataGet("magictool_tomask.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1190,5 +1190,5 @@
     psString query = pxDataGet("magictool_addmask.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         if (!psDBRollback(config->dbh)) {
             psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1297,5 +1297,5 @@
     psString query = pxDataGet("magictool_mask.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/pstamptool.c
===================================================================
--- /trunk/ippTools/src/pstamptool.c	(revision 26980)
+++ /trunk/ippTools/src/pstamptool.c	(revision 26981)
@@ -146,5 +146,5 @@
     psString query = pxDataGet("pstamptool_datastore.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -199,5 +199,5 @@
     char *query = psStringCopy ("UPDATE pstampDataStore SET");
     bool needComma = false;
-    
+
     if (lastFileset) {
         psStringAppend(&query, " lastFileset = '%s'", lastFileset);
@@ -209,5 +209,5 @@
         needComma = true; // be ready in case we add another field
     }
-                
+
     psStringAppend(&query, " WHERE ds_id = %" PRId64, ds_id);
 
@@ -220,5 +220,5 @@
     psU64 affected = psDBAffectedRows(config->dbh);
     if (affected != 1) {
-        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %" 
+        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %"
                                         PRIu64 " rows were modified", affected);
         return false;
@@ -245,6 +245,6 @@
         label,
         NULL,   // outProduct
-        uri,    
-        0       // fault 
+        uri,
+        0       // fault
         )) {
         psError(PS_ERR_UNKNOWN, false, "failed to insert request");
@@ -271,5 +271,5 @@
     psString query = pxDataGet("pstamptool_pendingreq.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -342,5 +342,5 @@
     psFree(whereClause);
     psFree(where);
-    
+
     // treat limit == 0 as "no limit"
     if (limit) {
@@ -365,5 +365,5 @@
         psTrace("pstamptool", PS_LOG_INFO, "request not found");
         // This causes main to exit with PS_EXIT_DATA_ERROR which the script is looking for
-        psError(PXTOOLS_ERR_DATA, true, "request not found");
+        psError(PXTOOLS_ERR_CONFIG, true, "request not found");
         psFree(output);
         // we return false so that the caller can determine that a request does not exist
@@ -436,7 +436,7 @@
     PXOPT_LOOKUP_STR(state,      config->args, "-state",      false, false);
     PXOPT_LOOKUP_STR(outProduct, config->args, "-outProduct", false, false);
-    PXOPT_LOOKUP_STR(fault, 	 config->args, "-fault",      false, false);
-    PXOPT_LOOKUP_STR(uri,   	 config->args, "-uri",        false, false);
-    PXOPT_LOOKUP_STR(name,  	 config->args, "-name",       false, false);
+    PXOPT_LOOKUP_STR(fault,      config->args, "-fault",      false, false);
+    PXOPT_LOOKUP_STR(uri,        config->args, "-uri",        false, false);
+    PXOPT_LOOKUP_STR(name,       config->args, "-name",       false, false);
     PXOPT_LOOKUP_STR(reqType,    config->args, "-reqType",    false, false);
 
@@ -485,5 +485,5 @@
     // note zero is not an error
     if (affected > 1) {
-        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %" 
+        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %"
                                         PRIu64 " rows were modified", affected);
         return false;
@@ -505,5 +505,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -525,5 +525,5 @@
     query = pxDataGet("pstamptool_revertreq.sql");
     psStringAppend(&query, " AND %s", whereClause);
-    
+
     psFree(whereClause);
 
@@ -555,25 +555,25 @@
     // unless the job is being inserted with stop state require outputBase
     if (strcmp(stateString, "stop") && !outputBase) {
-	psError(PS_ERR_UNKNOWN, true, "-outputBase is required");
-	return false;
+        psError(PS_ERR_UNKNOWN, true, "-outputBase is required");
+        return false;
     }
 
     // default value for job_type is defined in pstamptoolConfig.c
     if (!strcmp(job_type, "get_image") || !strcmp(job_type, "detect_query") || !strcmp(job_type, "none")) {
-	stampJob = false;
+        stampJob = false;
     } else if (!strcmp(job_type, "stamp")) {
-	stampJob = true;
+        stampJob = true;
     } else {
-	psError(PS_ERR_UNKNOWN, false, "unknown value for -job_type: %s", job_type);
-	return false;
-    }
-    if (!pstampJobInsert(config->dbh, 
+        psError(PS_ERR_UNKNOWN, false, "unknown value for -job_type: %s", job_type);
+        return false;
+    }
+    if (!pstampJobInsert(config->dbh,
             0, // job_id
             req_id,
-            rownum, 
-            stateString, 
-            job_type, 
-            fault, 
-            exp_id, 
+            rownum,
+            stateString,
+            job_type,
+            fault,
+            exp_id,
             outputBase,
             options,
@@ -586,5 +586,5 @@
     psU64 affected = psDBAffectedRows(config->dbh);
     if (affected != 1) {
-        psError(PS_ERR_UNKNOWN, false, 
+        psError(PS_ERR_UNKNOWN, false,
             "should have affected one row but %" PRIu64 " rows were modified",
             affected);
@@ -617,5 +617,5 @@
     psString query = pxDataGet("pstamptool_listjob.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -679,5 +679,5 @@
     psString query = pxDataGet("pstamptool_pendingjob.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -744,7 +744,7 @@
 
     char *query ="UPDATE pstampJob"
-	" SET state = '%s' %s"
-	" WHERE job_id = %" PRId64;
-    
+        " SET state = '%s' %s"
+        " WHERE job_id = %" PRId64;
+
     if (!p_psDBRunQueryF(config->dbh, query, state, faultStr, job_id)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -756,5 +756,5 @@
     psU64 affected = psDBAffectedRows(config->dbh);
     if (affected != 1) {
-        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %" 
+        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %"
                                         PRIu64 " rows were modified", affected);
         return false;
@@ -790,5 +790,5 @@
     if (!psListLength(where->list) && !all) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters or -all are required");
         return false;
     }
@@ -799,5 +799,5 @@
     }
     psFree(where);
-    
+
     if (!p_psDBRunQueryF(config->dbh, query, faultClause)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -847,5 +847,5 @@
     psString query = pxDataGet("pstamptool_project.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -893,7 +893,7 @@
 
     char *query = psStringCopy ("UPDATE pstampProject SET");
-    
+
     psStringAppend(&query, " state = '%s'", state);
-                
+
     psStringAppend(&query, " WHERE proj_id = %" PRId64, proj_id);
 
@@ -906,5 +906,5 @@
     psU64 affected = psDBAffectedRows(config->dbh);
     if (affected != 1) {
-        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %" 
+        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %"
                                         PRIu64 " rows were modified", affected);
         return false;
@@ -938,5 +938,5 @@
     psString query = pxDataGet("pstamptool_pendingdependent.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -986,5 +986,5 @@
     }
     // no existing dependent that matches, insert one
-    // Since we have multiple processes running jobs we have a 
+    // Since we have multiple processes running jobs we have a
     // race condition here so that's why we need to lock the table
 
@@ -1032,5 +1032,5 @@
     psString query = pxDataGet("pstamptool_pendingdependent.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1087,7 +1087,7 @@
 
     char *query ="UPDATE pstampDependent"
-	" SET state = '%s'"
-	" WHERE dep_id = %" PRId64;
-    
+        " SET state = '%s'"
+        " WHERE dep_id = %" PRId64;
+
     if (!p_psDBRunQueryF(config->dbh, query, state, dep_id)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1098,5 +1098,5 @@
     psU64 affected = psDBAffectedRows(config->dbh);
     if (affected != 1) {
-        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %" 
+        psError(PS_ERR_UNKNOWN, false, "should have affected one row but %"
                                         PRIu64 " rows were modified", affected);
         return false;
Index: /trunk/ippTools/src/pubtool.c
===================================================================
--- /trunk/ippTools/src/pubtool.c	(revision 26980)
+++ /trunk/ippTools/src/pubtool.c	(revision 26981)
@@ -160,5 +160,5 @@
     psString query = pxDataGet("pubtool_definerun.sql"); // Query to run
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -248,5 +248,5 @@
     psString query = pxDataGet("pubtool_pending.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -358,5 +358,5 @@
     psString query = pxDataGet("pubtool_revert.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
Index: /trunk/ippTools/src/pxadd.c
===================================================================
--- /trunk/ippTools/src/pxadd.c	(revision 26980)
+++ /trunk/ippTools/src/pxadd.c	(revision 26981)
@@ -124,11 +124,11 @@
 bool pxaddQueueByCamID(pxConfig *config,
                        psS64 cam_id,
-		       char *workdir,
-		       char *reduction,
-		       char *label,
+                       char *workdir,
+                       char *reduction,
+                       char *label,
                        char *data_group,
-		       char *dvodb,
+                       char *dvodb,
                        char *note,
-		       bool image_only)
+                       bool image_only)
 {
     PS_ASSERT_PTR_NON_NULL(config, false);
@@ -140,5 +140,5 @@
         psMemSetPersistent(query, true);
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             return false;
         }
@@ -149,14 +149,14 @@
     // on 32/64
     if (!p_psDBRunQueryF(config->dbh, query,
-			 "new", // state
-			 workdir  ? workdir   : "NULL",
-			 "dirty", //workdir_state
-			 reduction? reduction : "NULL",
-			 label    ? label     : "NULL",
-			 data_group ? data_group     : "NULL",
-			 dvodb    ? dvodb     : "NULL",
-			 note     ? note     : "NULL",
-			 image_only,
-			 (long long) cam_id
+                         "new", // state
+                         workdir  ? workdir   : "NULL",
+                         "dirty", //workdir_state
+                         reduction? reduction : "NULL",
+                         label    ? label     : "NULL",
+                         data_group ? data_group     : "NULL",
+                         dvodb    ? dvodb     : "NULL",
+                         note     ? note     : "NULL",
+                         image_only,
+                         (long long) cam_id
     )) {
         psError(PS_ERR_UNKNOWN, false, "database error");
Index: /trunk/ippTools/src/pxadmin.c
===================================================================
--- /trunk/ippTools/src/pxadmin.c	(revision 26980)
+++ /trunk/ippTools/src/pxadmin.c	(revision 26981)
@@ -94,5 +94,5 @@
     psString query = pxDataGet("pxadmin_create_tables.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -135,5 +135,5 @@
     psString query = pxDataGet("pxadmin_create_mirror_tables.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -220,5 +220,5 @@
     psString query = pxDataGet("pxadmin_drop_tables.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/pxcam.c
===================================================================
--- /trunk/ippTools/src/pxcam.c	(revision 26980)
+++ /trunk/ippTools/src/pxcam.c	(revision 26981)
@@ -76,15 +76,15 @@
 bool pxcamGetSearchArgs (pxConfig *config, psMetadata *where) {
 
-    PXOPT_COPY_S64(config->args,   where, "-chip_id",            "chipRun.chip_id", 	 "==");
-    PXOPT_COPY_S64(config->args,   where, "-exp_id",             "rawExp.exp_id",   	 "==");
-    PXOPT_COPY_STR(config->args,   where, "-exp_name",           "rawExp.exp_name", 	 "==");
-    PXOPT_COPY_STR(config->args,   where, "-inst",               "rawExp.camera",   	 "==");
-    PXOPT_COPY_STR(config->args,   where, "-telescope",          "rawExp.telescope",	 "==");
-    PXOPT_COPY_TIME(config->args,  where, "-dateobs_begin",      "rawExp.dateobs",  	 ">=");
-    PXOPT_COPY_TIME(config->args,  where, "-dateobs_end",        "rawExp.dateobs",  	 "<=");
-    PXOPT_COPY_STR(config->args,   where, "-exp_tag",            "rawExp.exp_tag",  	 "==");
-    PXOPT_COPY_STR(config->args,   where, "-exp_type",           "rawExp.exp_type", 	 "==");
-    PXOPT_COPY_STR(config->args,   where, "-comment",            "rawExp.comment",  	 "LIKE");
-    PXOPT_COPY_STR(config->args,   where, "-filelevel",          "rawExp.filelevel",	 "==");
+    PXOPT_COPY_S64(config->args,   where, "-chip_id",            "chipRun.chip_id",      "==");
+    PXOPT_COPY_S64(config->args,   where, "-exp_id",             "rawExp.exp_id",        "==");
+    PXOPT_COPY_STR(config->args,   where, "-exp_name",           "rawExp.exp_name",      "==");
+    PXOPT_COPY_STR(config->args,   where, "-inst",               "rawExp.camera",        "==");
+    PXOPT_COPY_STR(config->args,   where, "-telescope",          "rawExp.telescope",     "==");
+    PXOPT_COPY_TIME(config->args,  where, "-dateobs_begin",      "rawExp.dateobs",       ">=");
+    PXOPT_COPY_TIME(config->args,  where, "-dateobs_end",        "rawExp.dateobs",       "<=");
+    PXOPT_COPY_STR(config->args,   where, "-exp_tag",            "rawExp.exp_tag",       "==");
+    PXOPT_COPY_STR(config->args,   where, "-exp_type",           "rawExp.exp_type",      "==");
+    PXOPT_COPY_STR(config->args,   where, "-comment",            "rawExp.comment",       "LIKE");
+    PXOPT_COPY_STR(config->args,   where, "-filelevel",          "rawExp.filelevel",     "==");
     PXOPT_COPY_STR(config->args,   where, "-filter",             "rawExp.filter",         "==");
     PXOPT_COPY_F64(config->args,   where, "-airmass_min",        "rawExp.airmass",        ">=");
@@ -163,5 +163,5 @@
         psMemSetPersistent(query, true);
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             return false;
         }
Index: /trunk/ippTools/src/pxerrors.c
===================================================================
--- /trunk/ippTools/src/pxerrors.c	(revision 26980)
+++ /trunk/ippTools/src/pxerrors.c	(revision 26981)
@@ -29,13 +29,11 @@
     switch (err) {
       case PXTOOLS_ERR_SYS:
-    return PS_EXIT_SYS_ERROR;
+        return PS_EXIT_SYS_ERROR;
       case PXTOOLS_ERR_CONFIG:
-    return PS_EXIT_CONFIG_ERROR;
+        return PS_EXIT_CONFIG_ERROR;
       case PXTOOLS_ERR_PROG:
-    return PS_EXIT_PROG_ERROR;
-      case PXTOOLS_ERR_DATA:
-    return PS_EXIT_DATA_ERROR;
+        return PS_EXIT_PROG_ERROR;
       default:
-    return PS_EXIT_UNKNOWN_ERROR;
+        return PS_EXIT_UNKNOWN_ERROR;
     }
     return PS_EXIT_UNKNOWN_ERROR;
Index: /trunk/ippTools/src/pxfake.c
===================================================================
--- /trunk/ippTools/src/pxfake.c	(revision 26980)
+++ /trunk/ippTools/src/pxfake.c	(revision 26981)
@@ -74,5 +74,5 @@
         psMemSetPersistent(query, true);
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             return false;
         }
Index: /trunk/ippTools/src/pxmagic.c
===================================================================
--- /trunk/ippTools/src/pxmagic.c	(revision 26980)
+++ /trunk/ippTools/src/pxmagic.c	(revision 26981)
@@ -35,5 +35,5 @@
     psString query_temp = pxDataGet(queryFile);
     if (!query_temp) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement from %s", queryFile);
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement from %s", queryFile);
         psFree(queryFile);
         if (!psDBRollback(config->dbh)) {
@@ -75,9 +75,9 @@
     if (not_destreaked) {
         if (destreaked) {
-            psError(PXTOOLS_ERR_DATA, true, "providing -not_destreaked and -destreaked makes no sense");
+            psError(PXTOOLS_ERR_CONFIG, true, "providing -not_destreaked and -destreaked makes no sense");
             return false;
         }
         if (magicked) {
-            psError(PXTOOLS_ERR_DATA, true, "providing -not_destreaked and -magicked makes no sense");
+            psError(PXTOOLS_ERR_CONFIG, true, "providing -not_destreaked and -magicked makes no sense");
             return false;
         }
Index: /trunk/ippTools/src/pxtools.c
===================================================================
--- /trunk/ippTools/src/pxtools.c	(revision 26980)
+++ /trunk/ippTools/src/pxtools.c	(revision 26981)
@@ -120,5 +120,5 @@
     PXOPT_LOOKUP_STR(where_state, config->args, "-state", false, false);
     if (where_state && (psListLength(where->list) < 2)) {
-        psError(PXTOOLS_ERR_DATA, true, "selection by -state alone is not allowed");
+        psError(PXTOOLS_ERR_CONFIG, true, "selection by -state alone is not allowed");
         return false;
     }
@@ -136,10 +136,10 @@
 
     if ((!state) && (!label) && (!data_group) && (has_dist_group && !dist_group) && !(note)) {
-        psError(PXTOOLS_ERR_DATA, false, "parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "parameters are required");
         return false;
     }
 
     if (state && ! pxIsValidState(state)) {
-        psError(PXTOOLS_ERR_DATA, false, "pxIsValidState failed");
+        psError(PXTOOLS_ERR_CONFIG, false, "pxIsValidState failed");
         return false;
     }
Index: /trunk/ippTools/src/pxtoolsErrorCodes.dat
===================================================================
--- /trunk/ippTools/src/pxtoolsErrorCodes.dat	(revision 26980)
+++ /trunk/ippTools/src/pxtoolsErrorCodes.dat	(revision 26981)
@@ -8,3 +8,2 @@
 CONFIG			Problem in configure files
 PROG			Programming error
-DATA   			invalid data
Index: /trunk/ippTools/src/pztool.c
===================================================================
--- /trunk/ippTools/src/pztool.c	(revision 26980)
+++ /trunk/ippTools/src/pztool.c	(revision 26981)
@@ -118,5 +118,5 @@
             uri,
             NULL,  // epoch
-            0      // use_compress			   
+            0      // use_compress
         )) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -305,5 +305,5 @@
     psArray *cameras = pzGetPendingCameras(config);
     if (!cameras) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to find any cameras");
+        psError(PXTOOLS_ERR_CONFIG, false, "failed to find any cameras");
         return false;
     }
@@ -315,5 +315,5 @@
         psString query = pxDataGet("pztool_pendingimfile.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(cameraImfiles);
             return false;
@@ -493,5 +493,5 @@
     psString query = pxDataGet("pztool_find_completed_exp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -815,5 +815,5 @@
     psString query = pxDataGet("pztool_revertcopied.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -849,5 +849,5 @@
     psString query = pxDataGet("pztool_revert_downloadimfile_faults.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -864,5 +864,5 @@
     psString query = pxDataGet("pztool_revert_fileset_faults.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
Index: /trunk/ippTools/src/receivetool.c
===================================================================
--- /trunk/ippTools/src/receivetool.c	(revision 26980)
+++ /trunk/ippTools/src/receivetool.c	(revision 26981)
@@ -136,5 +136,5 @@
     psString query = pxDataGet("receivetool_list.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -195,5 +195,5 @@
     psString query = pxDataGet("receivetool_addfileset.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         return false;
     }
@@ -302,5 +302,5 @@
     psString query = pxDataGet("receivetool_pendingfileset.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -381,5 +381,5 @@
         psString file_type = psMetadataLookupStr(NULL, md, "file_type");
         psString component = psMetadataLookupStr(NULL, md, "component");
-        
+
         if (!file) {
             psError(PS_ERR_UNKNOWN, false, "failed to find value for file");
@@ -431,5 +431,5 @@
     psString query = pxDataGet("receivetool_pendingfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -514,5 +514,5 @@
     psString query = pxDataGet("receivetool_revert.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -547,5 +547,5 @@
     psString query = pxDataGet("receivetool_toadvance.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "Failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -613,5 +613,5 @@
     psString query = NULL;              // Query to execute
     psStringAppend(&query, "UPDATE receiveFileset SET ");
-    
+
     psString sep = "";
     if (fault) {
@@ -631,5 +631,5 @@
         sep = ",";
     }
-    
+
     psStringAppend(&query, " WHERE fileset_id = %" PRId64, fileset_id);
 
Index: /trunk/ippTools/src/regtool.c
===================================================================
--- /trunk/ippTools/src/regtool.c	(revision 26980)
+++ /trunk/ippTools/src/regtool.c	(revision 26981)
@@ -117,5 +117,5 @@
     psString query = pxDataGet("regtool_pendingimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -347,9 +347,9 @@
     psString where2 = NULL;
     if (!pxmagicAddWhere(config, &where2, "rawImfile")) {
-        psError(PXTOOLS_ERR_DATA, false, "pxSpaceAddWhere failed");
+        psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
         return false;
     }
     if (!pxspaceAddWhere(config, &where2, "rawImfile")) {
-        psError(PXTOOLS_ERR_DATA, false, "pxSpaceAddWhere failed");
+        psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
         return false;
     }
@@ -357,5 +357,5 @@
     psString query = pxDataGet("regtool_processedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -367,5 +367,5 @@
         psFree(whereClause);
     } else if (!all && !where2) {
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -452,5 +452,5 @@
     psString query = pxDataGet("regtool_revertprocessedimfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -463,5 +463,5 @@
     } else {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -493,10 +493,10 @@
 /*     PXOPT_LOOKUP_F64(user_1, config->args, "-user_1", false, false); */
     PXOPT_LOOKUP_S16(burntool_state, config->args, "-burntool_state", false, false);
-    
-    if ((fault == INT16_MAX) && !isfinite(burntool_state)) { 
+
+    if ((fault == INT16_MAX) && !isfinite(burntool_state)) {
         psError(PS_ERR_UNKNOWN, false, "one of -fault or -burntool_state must be selected");
         return false;
     }
-    if ((fault != INT16_MAX) && isfinite(burntool_state)) { 
+    if ((fault != INT16_MAX) && isfinite(burntool_state)) {
         psError(PS_ERR_UNKNOWN, false, "only one of -fault or -burntool_state must be selected");
         return false;
@@ -508,25 +508,25 @@
 
     if (fault != INT16_MAX) {
-	// this is fairly dangerous : can set all if the where is not set...
-	if (!pxSetFaultCode(config->dbh, "rawImfile", where, fault)) {
-	    psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
-	    psFree (where);
-	    return false;
-	}
+        // this is fairly dangerous : can set all if the where is not set...
+        if (!pxSetFaultCode(config->dbh, "rawImfile", where, fault)) {
+            psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag");
+            psFree (where);
+            return false;
+        }
     }
 
     if (isfinite(burntool_state)) {
-	psString query = pxDataGet("regtool_updateprocessedimfile.sql");
-	if (!query) {
-	    psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-	    return false;
-	}
-
-	if (!p_psDBRunQueryF(config->dbh, query, burntool_state, exp_id, class_id)) {
-	    psError(PS_ERR_UNKNOWN, false, "database error");
-	    psFree(query);
-	    return false;
-	}
-	psFree(query);
+        psString query = pxDataGet("regtool_updateprocessedimfile.sql");
+        if (!query) {
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+            return false;
+        }
+
+        if (!p_psDBRunQueryF(config->dbh, query, burntool_state, exp_id, class_id)) {
+            psError(PS_ERR_UNKNOWN, false, "database error");
+            psFree(query);
+            return false;
+        }
+        psFree(query);
     }
     psFree (where);
@@ -549,5 +549,5 @@
     psString query = pxDataGet("regtool_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -687,5 +687,5 @@
     psString query = pxDataGet("regtool_pendingexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -920,5 +920,5 @@
     psString query = pxDataGet("regtool_processedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1043,5 +1043,5 @@
     psString query = pxDataGet("regtool_revertprocessedexp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -1054,5 +1054,5 @@
     } else {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1111,5 +1111,5 @@
             psError(PS_ERR_UNKNOWN, false, "database error");
         }
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1137,5 +1137,5 @@
             psError(PS_ERR_UNKNOWN, false, "database error");
         }
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1229,5 +1229,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
Index: /trunk/ippTools/src/stacktool.c
===================================================================
--- /trunk/ippTools/src/stacktool.c	(revision 26980)
+++ /trunk/ippTools/src/stacktool.c	(revision 26981)
@@ -169,5 +169,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -175,5 +175,5 @@
     psString select = pxDataGet("stacktool_definebyquery_select.sql");
     if (!select) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -272,5 +272,5 @@
     }
     if (!insert) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -287,5 +287,5 @@
         psString part2 = pxDataGet("stacktool_definebyquery_insert_random_part2.sql");
         if (!part2) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             psFree(insert);
             return false;
@@ -593,5 +593,5 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -663,5 +663,5 @@
     psString query = pxDataGet("stacktool_inputskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -737,5 +737,5 @@
     psString query = pxDataGet("stacktool_tosum.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -923,5 +923,5 @@
     psString query = pxDataGet("stacktool_sumskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -932,5 +932,5 @@
         psFree(whereClause);
     } else if (!all) {
-        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
         return false;
     }
@@ -997,5 +997,5 @@
     if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1004,5 +1004,5 @@
     psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
     if (!delete) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1085,5 +1085,5 @@
     psString query = pxDataGet("stacktool_pendingcleanuprun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1149,5 +1149,5 @@
     psString query = pxDataGet("stacktool_pendingcleanupskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1210,5 +1210,5 @@
     psString query = pxDataGet("stacktool_donecleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1314,5 +1314,5 @@
     psString query = pxDataGet(tables[i].sqlFilename);
     if (!query) {
-      psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
       return false;
     }
Index: /trunk/ippTools/src/warptool.c
===================================================================
--- /trunk/ippTools/src/warptool.c	(revision 26980)
+++ /trunk/ippTools/src/warptool.c	(revision 26981)
@@ -104,5 +104,5 @@
         MODECASE(WARPTOOL_MODE_TOCLEANEDSKYFILE,   tocleanedskyfileMode);
         MODECASE(WARPTOOL_MODE_TOPURGEDSKYFILE,    topurgedskyfileMode);
-	MODECASE(WARPTOOL_MODE_TOSCRUBBEDSKYFILE,  toscrubbedskyfileMode);
+        MODECASE(WARPTOOL_MODE_TOSCRUBBEDSKYFILE,  toscrubbedskyfileMode);
         MODECASE(WARPTOOL_MODE_TOFULLSKYFILE,      tofullskyfileMode);
         MODECASE(WARPTOOL_MODE_UPDATESKYFILE,      updateskyfileMode);
@@ -252,5 +252,5 @@
         !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -279,5 +279,5 @@
     psString query = pxDataGet("warptool_definebyquery.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         psFree(where);
         return false;
@@ -390,8 +390,8 @@
     if (!psListLength(where->list)) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
-        return false;
-    }
-    
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
+        return false;
+    }
+
     psString query = psStringCopy("UPDATE warpRun JOIN fakeRun USING(fake_id) JOIN camRun USING(cam_id) JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)");
 
@@ -419,5 +419,5 @@
     psString query = pxDataGet("warptool_exp.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -493,5 +493,5 @@
     psString query = pxDataGet("warptool_imfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -567,5 +567,5 @@
     psString query = pxDataGet("warptool_tooverlap.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -682,5 +682,5 @@
         && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -690,5 +690,5 @@
         psString query = pxDataGet("warptool_revertoverlap.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -822,5 +822,5 @@
     psString query = pxDataGet("warptool_scmap.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -895,5 +895,5 @@
     psString query = pxDataGet("warptool_towarped.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1039,5 +1039,5 @@
     psString query = pxDataGet("warptool_finished_run_select.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retrieve SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement");
         return false;
     }
@@ -1115,5 +1115,5 @@
     psString query = pxDataGet("warptool_finished_run_select.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retrieve SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement");
         return false;
     }
@@ -1206,5 +1206,5 @@
     psString query = pxDataGet("warptool_warped.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1214,9 +1214,9 @@
     psString where2 = NULL;
     if (!pxmagicAddWhere(config, &where2, "warpSkyfile")) {
-        psError(PXTOOLS_ERR_DATA, false, "pxMagicAddWhere failed");
+        psError(psErrorCodeLast(), false, "pxMagicAddWhere failed");
         return false;
     }
     if (!pxspaceAddWhere(config, &where2, "rawExp")) {
-        psError(PXTOOLS_ERR_DATA, false, "pxSpaceAddWhere failed");
+        psError(psErrorCodeLast(), false, "pxSpaceAddWhere failed");
         return false;
     }
@@ -1227,5 +1227,5 @@
         psFree(whereClause);
     } else if (!all && !where2) {
-        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
         return false;
     }
@@ -1300,5 +1300,5 @@
         && !psMetadataLookupBool(NULL, config->args, "-all")) {
         psFree(where);
-        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
         return false;
     }
@@ -1315,5 +1315,5 @@
         psString query = pxDataGet("warptool_revertwarped_delete.sql");
         if (!query) {
-            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
             if (!psDBRollback(config->dbh)) {
                 psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1435,5 +1435,5 @@
     psString query = pxDataGet("warptool_pendingcleanuprun.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1498,5 +1498,5 @@
     psString query = pxDataGet("warptool_pendingcleanupskyfile.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1559,5 +1559,5 @@
     psString query = pxDataGet("warptool_donecleanup.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1715,5 +1715,5 @@
     if (!state) {
       psString query = pxDataGet("warptool_updateskyfile.sql");
-      
+
       if (!p_psDBRunQueryF(config->dbh, query, fault, warp_id, skycell_id)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
@@ -1724,15 +1724,15 @@
     else {
       if (strcmp(state,"error_cleaned") == 0) {
-	change_skyfile_data_state(config,"error_cleaned","goto_cleaned");
+        change_skyfile_data_state(config,"error_cleaned","goto_cleaned");
       }
       else if (strcmp(state, "error_scrubbed") == 0) {
-	change_skyfile_data_state(config,"error_scrubbed","goto_scrubbed");
+        change_skyfile_data_state(config,"error_scrubbed","goto_scrubbed");
       }
       else if (strcmp(state, "error_purged") == 0) {
-	change_skyfile_data_state(config,"error_purged","goto_purged");
+        change_skyfile_data_state(config,"error_purged","goto_purged");
       }
       else {
-	psError(PS_ERR_UNKNOWN, false, "unhandled state given");
-	return(false);
+        psError(PS_ERR_UNKNOWN, false, "unhandled state given");
+        return(false);
       }
     }
@@ -1780,5 +1780,5 @@
       psString query = pxDataGet(tables[i].sqlFilename);
       if (!query) {
-          psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+          psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
           return false;
       }
@@ -1947,5 +1947,5 @@
     psString query = pxDataGet("warptool_runstate.sql");
     if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
         return false;
     }
@@ -1956,5 +1956,5 @@
         psFree(whereClause);
     } else {
-        psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
+        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
         return false;
     }
