Index: trunk/ippTools/share/magictool_definebyquery_select.sql
===================================================================
--- trunk/ippTools/share/magictool_definebyquery_select.sql	(revision 28022)
+++ trunk/ippTools/share/magictool_definebyquery_select.sql	(revision 28039)
@@ -35,7 +35,8 @@
 JOIN camRun USING(cam_id)
 JOIN chipRun USING(chip_id)
+JOIN rawExp USING(exp_id)
 LEFT JOIN
     (SELECT magic_id, exp_id, label
-        FROM magicRun 
+        FROM magicRun
         -- rerun hook %s
     ) AS oldMagicRun
Index: trunk/ippTools/src/magictool.c
===================================================================
--- trunk/ippTools/src/magictool.c	(revision 28022)
+++ trunk/ippTools/src/magictool.c	(revision 28039)
@@ -129,4 +129,5 @@
     PXOPT_COPY_STR(config->args, diffWhere, "-diff_label", "diffRun.label", "==");
     PXOPT_COPY_S64(config->args, diffWhere, "-diff_id", "diff_id", "==");
+    PXOPT_COPY_S64(config->args, diffWhere, "-select_filter", "rawExp.filter", "==");
 
     psMetadata *queryWhere = psMetadataAlloc(); // WHERE conditions for everything else
Index: trunk/ippTools/src/magictoolConfig.c
===================================================================
--- trunk/ippTools/src/magictoolConfig.c	(revision 28022)
+++ trunk/ippTools/src/magictoolConfig.c	(revision 28039)
@@ -58,4 +58,5 @@
     psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-exp_id", 0, "search exp_id", 0);
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-diff_label", 0, "select diff label", NULL);
+    psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-select_filter", 0, "select filter", NULL);
     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-available", 0, "process what's immediately available?", false);
     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-rerun", 0, "generate new run even if existing?", false);
