Index: trunk/ippTools/src/stacktoolConfig.c
===================================================================
--- trunk/ippTools/src/stacktoolConfig.c	(revision 18336)
+++ trunk/ippTools/src/stacktoolConfig.c	(revision 18561)
@@ -47,155 +47,87 @@
     // -definebyquery
     psMetadata *definebyqueryArgs = psMetadataAlloc();
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0,
-            "define workdir (required)", NULL);
-    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered",  0,
-            "time detrend run was registered", now);
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_skycell_id",  0,
-            "search for skycell_id", NULL);
-    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_good_frac_min",  0,
-            "define min good_frac", 0.0);
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type",  0,
-            "search for exp_type", "object");
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst",  0,
-            "search for camera", NULL);
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope",  0,
-            "search for telescope", NULL);
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter",  0,
-            "search for filter", NULL);
-    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri",  0,
-            "search for uri", NULL);
-    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0,
-            "search for exposures by time (>=)", NULL);
-    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0,
-            "search for exposures by time (<)", NULL);
-    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min",  0,
-            "define min airmass", NAN);
-    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max",  0,
-            "define max airmass", NAN);
-    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max",  0,
-            "define max fraction of saturated pixels", NAN);
-    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min",  0,
-            "define min exposure time", NAN);
-    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max",  0,
-            "define max exposure time", NAN);
-    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min",  0,
-            "define min ccd tempature", NAN);
-    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max",  0,
-            "define max ccd tempature", NAN);
-    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min",  0,
-            "define min rotator position angle", NAN);
-    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max",  0,
-            "define max rotator position angle", NAN);
-    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min",  0,
-            "define min solar angle", NAN);
-    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max",  0,
-            "define max solar angle", NAN);
-    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,
-            "use a random subset of elements", false);
-    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,
-            "use this number of random elements", 20);
-
-    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-all",  0,
-            "allow everything to be queued without search terms", false);
-    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0,            "define workdir (required)", NULL);
+    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered",  0,            "time detrend run was registered", now);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_skycell_id",  0,            "search for skycell_id", NULL);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_good_frac_min",  0,            "define min good_frac", 0.0);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type",  0,            "search for exp_type", "object");
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst",  0,            "search for camera", NULL);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope",  0,            "search for telescope", NULL);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter",  0,            "search for filter", NULL);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri",  0,            "search for uri", NULL);
+    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
+    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0,            "search for exposures by time (<)", NULL);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min",  0,            "define min airmass", NAN);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max",  0,            "define max airmass", NAN);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max",  0,            "define max fraction of saturated pixels", NAN);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min",  0,            "define min exposure time", NAN);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max",  0,            "define max exposure time", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min",  0,            "define min ccd tempature", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max",  0,            "define max ccd tempature", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min",  0,            "define min rotator position angle", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max",  0,            "define max rotator position angle", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min",  0,            "define min solar angle", NAN);
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max",  0,            "define max solar angle", NAN);
+    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,            "use a random subset of elements", false);
+    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,            "use this number of random elements", 20);
+    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-all",  0,            "allow everything to be queued without search terms", false);
+    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -definerun
     psMetadata *definerunArgs = psMetadataAlloc();
-    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-workdir", 0,
-            "define workdir (required)", NULL);
-    psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-registered",  0,
-            "time detrend run was registered", now);
-    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-skycell_id",  0,
-            "define skycell ID (required)", NULL);
-    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-tess_id",  0,
-            "define tessellation ID (required)", NULL);
-    psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-warp_id",
-             PS_META_DUPLICATE_OK,
-             "include this warp ID (multiple OK, required)", 0);
-
-    psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-workdir", 0,            "define workdir (required)", NULL);
+    psMetadataAddTime(definerunArgs, PS_LIST_TAIL, "-registered",  0,            "time detrend run was registered", now);
+    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-skycell_id",  0,            "define skycell ID (required)", NULL);
+    psMetadataAddStr(definerunArgs, PS_LIST_TAIL, "-tess_id",  0,            "define tessellation ID (required)", NULL);
+    psMetadataAddS64(definerunArgs, PS_LIST_TAIL, "-warp_id",             PS_META_DUPLICATE_OK,             "include this warp ID (multiple OK, required)", 0);
+    psMetadataAddBool(definerunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -updaterun
     psMetadata *updaterunArgs = psMetadataAlloc();
-    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "define stack ID (required)", 0);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0,
-            "set state (required)", NULL);
-#if 0
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-workdir", 0,
-            "define workdir (required)", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-registered",  0,
-            "time detrend run was registered", now);
-#endif
+    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-stack_id", 0,            "define stack ID (required)", 0);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0,            "set state (required)", NULL);
 
     // -addinputskyfile
     psMetadata *addinputskyfileArgs = psMetadataAlloc();
-    psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "define stack ID (required)", 0);
-    psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,
-            "define warp ID (required)", 0);
+    psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "define stack ID (required)", 0);
+    psMetadataAddS64(addinputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "define warp ID (required)", 0);
 
     // -inputskyfile
     psMetadata *inputskyfileArgs = psMetadataAlloc();
-    psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "search by stack ID", 0);
-    psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,
-            "search by warp ID", 0);
-    psMetadataAddU64(inputskyfileArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
-    psMetadataAddBool(inputskyfileArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
+    psMetadataAddS64(inputskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
+    psMetadataAddU64(inputskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+    psMetadataAddBool(inputskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -tosum
     psMetadata *tosumArgs = psMetadataAlloc();
-    psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "search by stack ID", 0);
-    psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-warp_id", 0,
-            "search by warp ID", 0);
-    psMetadataAddU64(tosumArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
-    psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
+    psMetadataAddS64(tosumArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
+    psMetadataAddU64(tosumArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+    psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -addsumskyfile
     psMetadata *addsumskyfileArgs = psMetadataAlloc();
-    psMetadataAddS64(addsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "define stack ID (required)", 0);
-    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-uri", 0,
-            "define URI of file", 0);
-    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-path_base", 0,
-            "define base output location", 0);
-    psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg",  0,
-            "define exposue background", NAN);
-    psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,
-            "define exposue background mean stdev", NAN);
-    psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-dtime_stack",  0,
-            "define elapsed processing time", NAN);
-    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-hostname", 0,
-            "define hostname", 0);
-    psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-good_frac",  0,
-            "define %% of good pixels", NAN);
-    psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-code",  0,
-            "set fault code", 0);
+    psMetadataAddS64(addsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "define stack ID (required)", 0);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-uri", 0,            "define URI of file", 0);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-path_base", 0,            "define base output location", 0);
+    psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg",  0,            "define exposue background", NAN);
+    psMetadataAddF64(addsumskyfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,            "define exposue background mean stdev", NAN);
+    psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-dtime_stack",  0,            "define elapsed processing time", NAN);
+    psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-hostname", 0,            "define hostname", 0);
+    psMetadataAddF32(addsumskyfileArgs, PS_LIST_TAIL, "-good_frac",  0,            "define %% of good pixels", NAN);
+    psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code", 0);
 
     // -sumskyfile
     psMetadata *sumskyfileArgs= psMetadataAlloc();
-    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "search by stack ID", 0);
-    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,
-            "search by warp ID", 0);
-    psMetadataAddU64(sumskyfileArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
-    psMetadataAddBool(sumskyfileArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
+    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
+    psMetadataAddU64(sumskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+    psMetadataAddBool(sumskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -revertsumskyfile
     psMetadata *revertsumskyfileArgs= psMetadataAlloc();
-    psMetadataAddS64(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,
-            "search by stack ID (required)", 0);
-    psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,
-            "search by fault code", 0);
+    psMetadataAddS64(revertsumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID (required)", 0);
+    psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,            "search by fault code", 0);
 
     psFree(now);
@@ -204,6 +136,5 @@
     psMetadata *modes   = psMetadataAlloc();
 
-    PXOPT_ADD_MODE("-definebyquery", "Define a new stackRun by searching for warp IDs",
-        STACKTOOL_MODE_DEFINEBYQUERY,  definebyqueryArgs);
+    PXOPT_ADD_MODE("-definebyquery", "Define a new stackRun by searching for warp IDs", STACKTOOL_MODE_DEFINEBYQUERY,  definebyqueryArgs);
     PXOPT_ADD_MODE("-definerun",       "", STACKTOOL_MODE_DEFINERUN,      definerunArgs);
     PXOPT_ADD_MODE("-updaterun",       "", STACKTOOL_MODE_UPDATERUN,      updaterunArgs);
@@ -226,80 +157,4 @@
     psFree(modes);
 
-    // setup search criterion
-#define addWhereStr(name) \
-{ \
-    psString str = NULL; \
-    bool status = false; \
-    if ((str = psMetadataLookupStr(&status, config->args, "-" #name))) { \
-        if (!psMetadataAddStr(config->where, PS_LIST_TAIL, #name, 0, "==", str)) {\
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
-            psFree(config); \
-            return NULL; \
-        } \
-    } \
-}
-
-#define addWhereS32(name) \
-{ \
-    psS32 s32 = 0; \
-    bool status = false; \
-    if ((s32= psMetadataLookupS32(&status, config->args, "-" #name))) { \
-        if (!psMetadataAddS32(config->where, PS_LIST_TAIL, #name, 0, "==", s32)) { \
-            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
-            psFree(config); \
-            return NULL; \
-        } \
-    } \
-}
-
-
-    // generate SQL where clause
-    config->where = psMetadataAlloc();
-
-{
-    psString str = NULL;
-    bool status = false;
-    if ((str = psMetadataLookupStr(&status, config->args, "-warp_id"))) {
-        if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "warp_id", 0, "==", (psS64)atoll(str))) {
-            psError(PS_ERR_UNKNOWN, false, "failed to add item warp_id");
-            psFree(config);
-            return NULL;
-        }
-    }
-}
-
-{
-    psString str = NULL;
-    bool status = false;
-    if ((str = psMetadataLookupStr(&status, config->args, "-stack_id"))) {
-        if (!psMetadataAddS64(config->where, PS_LIST_TAIL, "stack_id", 0, "==", (psS64)atoll(str))) {
-            psError(PS_ERR_UNKNOWN, false, "failed to add item stack_id");
-            psFree(config);
-            return NULL;
-        }
-    }
-}
-
-    addWhereStr(skycell_id);
-    addWhereStr(tess_id);
-
-    // convert '-code' to 'fault'
-    {
-        psS16 fault = 0;
-        bool status = false;
-        if ((fault = psMetadataLookupS16(&status, config->args, "-code"))) {
-            if (!psMetadataAddS16(config->where, PS_LIST_TAIL, "fault", 0, "==", fault)) {
-                psError(PS_ERR_UNKNOWN, false, "failed to add item fault");
-                psFree(config);
-                return NULL;
-            }
-        }
-    }
-
-    if (config->where->list->n < 1) {
-        psFree(config->where);
-        config->where = NULL;
-    }
-
     // define Database handle, if used
     // do this last so we don't setup a connection before CLI options are
