Index: trunk/ippTools/src/magictool.c
===================================================================
--- trunk/ippTools/src/magictool.c	(revision 21098)
+++ trunk/ippTools/src/magictool.c	(revision 21099)
@@ -457,4 +457,5 @@
     psMetadata *where = psMetadataAlloc();
     PXOPT_COPY_S64(config->args, where, "-magic_id", "magicRun.magic_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
 
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
@@ -738,4 +739,5 @@
     psMetadata *where = psMetadataAlloc();
     PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
 
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
@@ -750,7 +752,6 @@
     psString whereClause = NULL;
     if (psListLength(where->list)) {
-        whereClause = psDBGenerateWhereSQL(where, NULL);
-        psStringAppend(&query, " %s", whereClause);
-        psFree(whereClause);
+        whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+        psStringAppend(&query, " AND %s", whereClause);
     }
     psFree(where);
@@ -789,12 +790,16 @@
 
     if (whereClause) {
-        psStringAppend(&query, " %s", whereClause);
-    }
-
-    if (!p_psDBRunQuery(config->dbh, query)) {
-        psError(PS_ERR_UNKNOWN, false, "database error");
+        psString new  = NULL;
+        psStringAppend(&new, "\n AND %s", whereClause);
+        psFree(whereClause);
+        whereClause = new;
+    }
+    if (!p_psDBRunQuery(config->dbh, query, whereClause ? whereClause :  "")) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(whereClause);
         psFree(query);
         return false;
     }
+    psFree(whereClause);
     psFree(query);
 
@@ -886,5 +891,4 @@
     psFree(magicTree);
     psFree(output);
-    psFree(whereClause);
 
     return true;
Index: trunk/ippTools/src/magictoolConfig.c
===================================================================
--- trunk/ippTools/src/magictoolConfig.c	(revision 21098)
+++ trunk/ippTools/src/magictoolConfig.c	(revision 21099)
@@ -93,4 +93,5 @@
     psMetadataAddS64(totreeArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0);
     psMetadataAddU64(totreeArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
+    psMetadataAddStr(totreeArgs, PS_LIST_TAIL, "-label",       0, "define label", NULL);
     psMetadataAddBool(totreeArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
 
@@ -117,4 +118,5 @@
     psMetadataAddS64(toprocessArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0);
     psMetadataAddU64(toprocessArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
+    psMetadataAddStr(toprocessArgs, PS_LIST_TAIL, "-label",       0, "define label", NULL);
     psMetadataAddBool(toprocessArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
 
