Index: branches/cleanup/ippTools/src/stacktoolConfig.c
===================================================================
--- branches/cleanup/ippTools/src/stacktoolConfig.c	(revision 17860)
+++ branches/cleanup/ippTools/src/stacktoolConfig.c	(revision 18153)
@@ -45,54 +45,58 @@
     psTime *now = psTimeGetNow(PS_TIME_TAI);
 
-    // -queue
-    psMetadata *queueArgs = psMetadataAlloc();
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-workdir", 0,
+    // -definebyquery
+    psMetadata *definebyqueryArgs = psMetadataAlloc();
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-workdir", 0,
             "define workdir (required)", NULL);
-    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-registered",  0,
+    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-registered",  0,
             "time detrend run was registered", now);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-select_skycell_id",  0,
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_skycell_id",  0,
             "search for skycell_id", NULL);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-select_good_frac_min",  0,
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_good_frac_min",  0,
             "define min good_frac", 0.0);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-select_exp_type",  0,
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_type",  0,
             "search for exp_type", "object");
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-select_inst",  0,
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_inst",  0,
             "search for camera", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-select_telescope",  0,
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_telescope",  0,
             "search for telescope", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-select_filter",  0,
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter",  0,
             "search for filter", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-select_uri",  0,
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_uri",  0,
             "search for uri", NULL);
-    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0,
+    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_begin", 0,
             "search for exposures by time (>=)", NULL);
-    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-select_dateobs_end", 0,
+    psMetadataAddTime(definebyqueryArgs, PS_LIST_TAIL, "-select_dateobs_end", 0,
             "search for exposures by time (<)", NULL);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-select_airmass_min",  0,
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_min",  0,
             "define min airmass", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-select_airmass_max",  0,
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_airmass_max",  0,
             "define max airmass", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max",  0,
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_sat_pixel_frac_max",  0,
             "define max fraction of saturated pixels", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-select_exp_time_min",  0,
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_min",  0,
             "define min exposure time", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-select_exp_time_max",  0,
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-select_exp_time_max",  0,
             "define max exposure time", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-select_ccd_temp_min",  0,
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_min",  0,
             "define min ccd tempature", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-select_ccd_temp_max",  0,
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_ccd_temp_max",  0,
             "define max ccd tempature", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-select_posang_min",  0,
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_min",  0,
             "define min rotator position angle", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-select_posang_max",  0,
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_posang_max",  0,
             "define max rotator position angle", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-select_solang_min",  0,
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_min",  0,
             "define min solar angle", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-select_solang_max",  0,
+    psMetadataAddF64(definebyqueryArgs, PS_LIST_TAIL, "-select_solang_max",  0,
             "define max solar angle", NAN);
-
-    psMetadataAddBool(queueArgs, PS_LIST_TAIL, "-all",  0,
+    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(queueArgs, PS_LIST_TAIL, "-simple",  0,
+    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple",  0,
             "use the simple output format", false);
 
@@ -200,6 +204,6 @@
     psMetadata *modes   = psMetadataAlloc();
 
-    PXOPT_ADD_MODE("-queue", "Define a new stackRun by searching for warp IDs",
-        STACKTOOL_MODE_QUEUE,  queueArgs);
+    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);
