Index: /branches/czw_branch/cleanup/ippTools/share/chiptool_processedimfile.sql
===================================================================
--- /branches/czw_branch/cleanup/ippTools/share/chiptool_processedimfile.sql	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/share/chiptool_processedimfile.sql	(revision 25149)
@@ -9,4 +9,5 @@
     chipProcessedImfile.path_base,
     chipProcessedImfile.magicked,
+    chipProcessedImfile.data_state,
     chipRun.state,
     chipRun.workdir,
Index: /branches/czw_branch/cleanup/ippTools/share/pstamptool_pendingjob.sql
===================================================================
--- /branches/czw_branch/cleanup/ippTools/share/pstamptool_pendingjob.sql	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/share/pstamptool_pendingjob.sql	(revision 25149)
@@ -1,4 +1,4 @@
-SELECT
- *
+SELECT *
  FROM pstampJob
  WHERE state = 'run'
+    AND fault = 0
Index: /branches/czw_branch/cleanup/ippTools/src/dettoolConfig.c
===================================================================
--- /branches/czw_branch/cleanup/ippTools/src/dettoolConfig.c	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/src/dettoolConfig.c	(revision 25149)
@@ -70,4 +70,5 @@
     psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-sun_angle_min",  0,            "define min solar angle", NAN);
     psMetadataAddF64(definebytagArgs, PS_LIST_TAIL, "-sun_angle_max",  0,            "define max solar angle", NAN);
+
 
     psMetadataAddTime(definebytagArgs, PS_LIST_TAIL, "-registered",  0,            "time detrend run was registered", now);
@@ -138,4 +139,13 @@
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-comment",                0,          "search by comment field (LIKE comparison)", NULL);
 
+
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_angle_min",  0,          "define min moon angle", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_angle_max",  0,          "define max moon angle", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_alt_min",  0,            "define min moon alt", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_alt_max",  0,            "define max moon alt", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_phase_min",  0,          "define min moon phase", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_moon_phase_max",  0,          "define max moon phase", NAN);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-comment",                0,          "search by comment field (LIKE comparison)", NULL);
+
     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend",  0,            "print the exposures that would be included in the detrend run and exit", false);
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-reduction",  0,            "define reduction class for processing", NULL);
Index: /branches/czw_branch/cleanup/ippTools/src/pstamptool.c
===================================================================
--- /branches/czw_branch/cleanup/ippTools/src/pstamptool.c	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/src/pstamptool.c	(revision 25149)
@@ -315,10 +315,22 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    PXOPT_LOOKUP_S64(req_id,  config->args, "-req_id", true, false);
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-name", "name", "==");
+
     PXOPT_LOOKUP_U64(limit,   config->args, "-limit",  false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
 
-    psString query = NULL;
-    psStringAppend(&query, "SELECT * from pstampRequest WHERE req_id = %" PRId64, req_id);
+    if (!psListLength(where->list)) {
+        psError(PS_ERR_UNKNOWN, true, "-req_id or -name must be supplied");
+        return false;
+    }
+
+    psString query = psStringCopy("SELECT * from pstampRequest");
+
+    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+    psStringAppend(&query, " WHERE %s", whereClause);
+    psFree(whereClause);
+    psFree(where);
     
     // treat limit == 0 as "no limit"
@@ -342,7 +354,10 @@
     }
     if (!psArrayLength(output)) {
-        psTrace("pstamptool", PS_LOG_INFO, "no rows found");
-        psFree(output);
-        return true;
+        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");
+        psFree(output);
+        // we return false so that the caller can determine that a request does not exist
+        return false;
     }
 
@@ -496,5 +511,4 @@
 {
     bool    stampJob = false;
-    char   *query = NULL;
 
     PS_ASSERT_PTR_NON_NULL(config, false);
@@ -503,11 +517,17 @@
     PXOPT_LOOKUP_STR(rownum,      config->args, "-rownum",     true, false);
     PXOPT_LOOKUP_STR(job_type,    config->args, "-job_type",   false, false);
-    PXOPT_LOOKUP_STR(outputBase,  config->args, "-outputBase", true,  false);
+    PXOPT_LOOKUP_STR(outputBase,  config->args, "-outputBase", false,  false);
     PXOPT_LOOKUP_STR(stateString, config->args, "-state",      false, false);
-    PXOPT_LOOKUP_STR(fault,       config->args, "-fault",      false, false);
+    PXOPT_LOOKUP_S16(fault,       config->args, "-fault",      false, false);
     PXOPT_LOOKUP_S64(exp_id,      config->args, "-exp_id",     false, false);
 
+    // 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;
+    }
+
     // default value for job_type is defined in pstamptoolConfig.c
-    if (!strcmp(job_type, "get_image") || !strcmp(job_type, "detect_query")) {
+    if (!strcmp(job_type, "get_image") || !strcmp(job_type, "detect_query") || !strcmp(job_type, "none")) {
 	stampJob = false;
     } else if (!strcmp(job_type, "stamp")) {
@@ -517,15 +537,14 @@
 	return false;
     }
-    if (stampJob) {
-	query = pxDataGet("pstamptool_addjob_stampjob.sql");
-    } else {
-	query = pxDataGet("pstamptool_addjob_otherjob.sql");
-    }
-    if (!query) {
-        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
-        return false;
-    }
-
-    if (!p_psDBRunQueryF(config->dbh, query, req_id, rownum, stateString, job_type, exp_id, outputBase, fault)) {
+    if (!pstampJobInsert(config->dbh, 
+            0, // job_id
+            req_id,
+            rownum, 
+            stateString, 
+            job_type, 
+            fault, 
+            exp_id, 
+            outputBase
+            )) {
         psError(PS_ERR_UNKNOWN, false, "database error");
         return false;
Index: /branches/czw_branch/cleanup/ippTools/src/pubtool.c
===================================================================
--- /branches/czw_branch/cleanup/ippTools/src/pubtool.c	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/src/pubtool.c	(revision 25149)
@@ -332,5 +332,7 @@
     psFree(query);
 
-    return true;
-}
-
+    psLogMsg("pubtool", PS_LOG_INFO, "Deleted %" PRIu64 " rows", psDBAffectedRows(config->dbh));
+
+    return true;
+}
+
Index: /branches/czw_branch/cleanup/ippTools/src/pxchip.c
===================================================================
--- /branches/czw_branch/cleanup/ippTools/src/pxchip.c	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/src/pxchip.c	(revision 25149)
@@ -69,6 +69,10 @@
     psMetadataAddF64(md,  PS_LIST_TAIL, "-posang_min",         0, "search by min rotator position angle", NAN);
     psMetadataAddF64(md,  PS_LIST_TAIL, "-posang_max",         0, "search by max rotator position angle", NAN);
+<<<<<<< .mine
+=======
     psMetadataAddF32(md,  PS_LIST_TAIL, "-sun_angle_min",         0, "search by min solar angle", NAN);
     psMetadataAddF32(md,  PS_LIST_TAIL, "-sun_angle_max",         0, "search by max solar angle", NAN);
+    psMetadataAddStr(md,  PS_LIST_TAIL, "-object",             0, "search by exposure object", NULL);
+>>>>>>> .r25099
     psMetadataAddStr(md,  PS_LIST_TAIL, "-object",             0, "search by exposure object", NULL);
     psMetadataAddStr(md,  PS_LIST_TAIL, "-comment",            0, "search by comment field (LIKE comparison)", NULL);
Index: /branches/czw_branch/cleanup/ippTools/src/regtool.c
===================================================================
--- /branches/czw_branch/cleanup/ippTools/src/regtool.c	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/src/regtool.c	(revision 25149)
@@ -331,4 +331,5 @@
     PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(ordered_by_date, config->args, "-ordered_by_date", false);
 
     psString query = pxDataGet("regtool_processedimfile.sql");
@@ -352,4 +353,9 @@
         // don't list faulted rows
         psStringAppend(&query, " %s", "AND rawImfile.fault = 0");
+    }
+
+    // add the ORDER BY statement if desired
+    if (ordered_by_date) {
+        psStringAppend(&query, " ORDER BY dateobs");
     }
 
@@ -923,6 +929,6 @@
     PXOPT_COPY_F64(config->args,   where,  "-posang_max", "posang", "<");
     PXOPT_COPY_STR(config->args,   where,  "-object", "object", "==");
-    PXOPT_COPY_F32(config->args,   where,  "-sun_angle_min", "sun_angle", ">=");
-    PXOPT_COPY_F32(config->args,   where,  "-sun_angle_max", "sun_angle", "<");
+    PXOPT_COPY_F32(config->args,   where,  "-solang_min", "solang", ">=");
+    PXOPT_COPY_F32(config->args,   where,  "-solang_max", "solang", "<");
 
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
Index: /branches/czw_branch/cleanup/ippTools/src/warptool.c
===================================================================
--- /branches/czw_branch/cleanup/ippTools/src/warptool.c	(revision 25148)
+++ /branches/czw_branch/cleanup/ippTools/src/warptool.c	(revision 25149)
@@ -236,6 +236,6 @@
     PXOPT_COPY_F64(config->args,   where, "-posang_max",         "rawExp.posang",         "<");
     PXOPT_COPY_STR(config->args,   where, "-object",             "rawExp.object",         "==");
-    PXOPT_COPY_F32(config->args,   where, "-sun_angle_min",      "rawExp.sun_angle",      ">=");
-    PXOPT_COPY_F32(config->args,   where, "-sun_angle_max",      "rawExp.sun_angle",      "<");
+    PXOPT_COPY_F32(config->args,   where, "-solang_min",         "rawExp.solang",         ">=");
+    PXOPT_COPY_F32(config->args,   where, "-solang_max",         "rawExp.solang",         "<");
     PXOPT_COPY_STR(config->args,   where, "-reduction",          "fakeRun.reduction",     "==");
     pxAddLabelSearchArgs (config,  where, "-label",             "fakeRun.label",         "==");
