Index: trunk/ippTools/src/camtool.c
===================================================================
--- trunk/ippTools/src/camtool.c	(revision 41548)
+++ trunk/ippTools/src/camtool.c	(revision 41549)
@@ -145,5 +145,5 @@
 
     // use psDBGenerateWhereSQL because the SQL yields an intermediate table
-    if (where && psListLength(where->list)) {
+    if (psListLength(where->list)) {
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
@@ -300,4 +300,8 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
+
     psMetadata *where = psMetadataAlloc();
     pxcamGetSearchArgs (config, where);
@@ -306,7 +310,4 @@
     PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "==");
 
-    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
-    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
-
     psString query = pxDataGet("camtool_pendingexp.sql");
     if (!query) {
@@ -320,4 +321,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -375,4 +381,5 @@
 
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psString query = pxDataGet("camtool_find_pendingimfile.sql");
@@ -387,4 +394,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -1135,4 +1147,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -1145,8 +1158,13 @@
     }
 
-    if (where && psListLength(where->list)) {
+    if (psListLength(where->list)) {
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -1197,4 +1215,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -1210,8 +1229,13 @@
     }
 
-    if (where && psListLength(where->list)) {
+    if (psListLength(where->list)) {
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
Index: trunk/ippTools/src/chiptool.c
===================================================================
--- trunk/ippTools/src/chiptool.c	(revision 41548)
+++ trunk/ippTools/src/chiptool.c	(revision 41549)
@@ -489,4 +489,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -502,8 +503,13 @@
     }
 
-    if (where && psListLength(where->list)) {
+    if (psListLength(where->list)) {
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -1269,4 +1275,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -1283,4 +1290,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all");
+        return false;
+      }
     }
     psFree(where);
@@ -1351,4 +1363,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
Index: trunk/ippTools/src/difftool.c
===================================================================
--- trunk/ippTools/src/difftool.c	(revision 41548)
+++ trunk/ippTools/src/difftool.c	(revision 41549)
@@ -471,4 +471,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psString query = pxDataGet("difftool_todiffskyfile.sql");
@@ -478,8 +479,13 @@
     }
 
-    if (psListLength(where->list)) {
+    if (where && psListLength(where->list)) {
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all");
+        return false;
+      }
     }
     psFree(where);
Index: trunk/ippTools/src/dqstatstool.c
===================================================================
--- trunk/ippTools/src/dqstatstool.c	(revision 41548)
+++ trunk/ippTools/src/dqstatstool.c	(revision 41549)
@@ -223,4 +223,5 @@
   PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstatsRun.dqstats_id", "==");
   PXOPT_COPY_STR(config->args, where, "-label", "dqstatsRun.label", "==");
+  PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
   psString query = pxDataGet("dqstatstool_get_run.sql");           // query
@@ -230,8 +231,13 @@
   }
 
-  if (where && psListLength(where->list)) {
+  if (psListLength(where->list)) {
     psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     psStringAppend(&query, " AND %s", whereClause);
     psFree(whereClause);
+  } else {
+    if (!all) {
+      psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+      return false;
+    }
   }
   psFree(where);
Index: trunk/ippTools/src/faketool.c
===================================================================
--- trunk/ippTools/src/faketool.c	(revision 41548)
+++ trunk/ippTools/src/faketool.c	(revision 41549)
@@ -367,4 +367,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -385,4 +386,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -432,4 +438,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -451,4 +458,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -886,4 +898,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -900,4 +913,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -948,4 +966,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psMetadata *where = psMetadataAlloc();
@@ -965,4 +984,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
Index: trunk/ippTools/src/pubtool.c
===================================================================
--- trunk/ippTools/src/pubtool.c	(revision 41548)
+++ trunk/ippTools/src/pubtool.c	(revision 41549)
@@ -324,4 +324,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     psString query = pxDataGet("pubtool_pending.sql");
@@ -337,4 +338,9 @@
         psStringAppend(&whereClause, "\nAND %s", clause);
         psFree(clause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
Index: trunk/ippTools/src/warptool.c
===================================================================
--- trunk/ippTools/src/warptool.c	(revision 41548)
+++ trunk/ippTools/src/warptool.c	(revision 41549)
@@ -602,4 +602,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     // find all rawImfiles matching the default query
@@ -614,4 +615,9 @@
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(where);
@@ -930,4 +936,5 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
     // First find Label's with warpRuns in state new in priority order
@@ -945,4 +952,9 @@
         psStringAppend(&labelWhereStr, "\n AND %s", whereClause);
         psFree(whereClause);
+    } else {
+      if (!all) {
+        psError(PXTOOLS_ERR_SYS, false, "unrestricted query not allowed (try -all)");
+        return false;
+      }
     }
     psFree(labelWhere);
@@ -1645,4 +1657,7 @@
   PS_ASSERT_PTR_NON_NULL(config, NULL);
   
+  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+  
   psMetadata *where = psMetadataAlloc();
   PXOPT_COPY_S64(config->args, where, "-warp_id",    "warpSkyfile.warp_id", "==");
@@ -1661,7 +1676,4 @@
   PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
 
-  PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
-  PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
-  
   // find all rawImfiles matching the default query
   psString query = pxDataGet("warptool_tosummary.sql");
