Index: trunk/ippTools/src/chiptool.c
===================================================================
--- trunk/ippTools/src/chiptool.c	(revision 40534)
+++ 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);
