Index: trunk/ippTools/share/fftool_definebyquery_select_warps.sql
===================================================================
--- trunk/ippTools/share/fftool_definebyquery_select_warps.sql	(revision 36623)
+++ trunk/ippTools/share/fftool_definebyquery_select_warps.sql	(revision 36633)
@@ -5,4 +5,5 @@
     JOIN chipRun USING(chip_id)
     JOIN rawExp USING(exp_id)
+    JOIN skycell ON skycell.tess_id = warpSkyfile.tess_id AND skycell.skycell_id = warpSkyfile.skycell_id
 WHERE warpRun.tess_id = '%s' AND warpSkyfile.skycell_id = '%s' AND rawExp.filter = '%s'
     AND warpRun.state = 'full' AND warpSkyfile.quality = 0 and warpSkyfile.fault = 0
Index: trunk/ippTools/share/fftool_result.sql
===================================================================
--- trunk/ippTools/share/fftool_result.sql	(revision 36623)
+++ trunk/ippTools/share/fftool_result.sql	(revision 36633)
@@ -6,4 +6,5 @@
     fullForceRun.skycal_id,
     fullForceRun.workdir,
+    fullForceRun.sources_path_base,
     CONCAT_WS('.', warp_id, skycell_id) AS dist_component,
     stackRun.tess_id,
Index: trunk/ippTools/share/fftool_summary.sql
===================================================================
--- trunk/ippTools/share/fftool_summary.sql	(revision 36623)
+++ trunk/ippTools/share/fftool_summary.sql	(revision 36633)
@@ -6,4 +6,5 @@
     fullForceRun.skycal_id,
     fullForceRun.workdir,
+    fullForceRun.sources_path_base,
     'summary' AS dist_component,
     stackRun.tess_id,
Index: trunk/ippTools/share/fftool_toadvance.sql
===================================================================
--- trunk/ippTools/share/fftool_toadvance.sql	(revision 36623)
+++ trunk/ippTools/share/fftool_toadvance.sql	(revision 36633)
@@ -15,5 +15,6 @@
     JOIN rawExp USING(exp_id)
     LEFT JOIN fullForceResult USING(ff_id, warp_id)
-WHERE fullForceRun.state = 'new'
+    LEFT JOIN fullForceSummary USING(ff_id)
+WHERE fullForceRun.state = 'new' AND fullForceSummary.ff_id IS NULL
     -- WHERE hook %s
     GROUP BY ff_id
Index: trunk/ippTools/src/fftool.c
===================================================================
--- trunk/ippTools/src/fftool.c	(revision 36623)
+++ trunk/ippTools/src/fftool.c	(revision 36633)
@@ -139,7 +139,7 @@
 
     psMetadata *warpWhereMD = psMetadataAlloc();
-    pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label",     "fullForceRun.label",           "LIKE");
-    pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group","fullForceRun.data_group",      "LIKE");
-    PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id",        "fullForceRun.warp_id",         "==");
+    pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_label",     "warpRun.label",           "LIKE");
+    pxAddLabelSearchArgs(config, warpWhereMD, "-select_warp_data_group","warpRun.data_group",      "LIKE");
+    PXOPT_COPY_S64(config->args, warpWhereMD, "-select_warp_id",        "warpRun.warp_id",         "==");
     if (!psListLength(warpWhereMD->list)) {
         psError(PXTOOLS_ERR_CONFIG, false, "warp search parameters are required");
@@ -148,20 +148,7 @@
         return false;
     }
-    if (!psListLength(warpWhereMD->list)) {
-        psError(PXTOOLS_ERR_CONFIG, false, "skycal search parameters are required");
-        psFree(skycalWhereMD);
-        psFree(warpWhereMD);
-        return false;
-    }
-
-    PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id",       "fullForceRun.tess_id",         "==");
-    pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter",        "fullForceRun.filter",          "LIKE");
-    if (!pxskycellAddWhere(config, warpWhereMD)) {
-        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
-        psFree(skycalWhereMD);
-        psFree(warpWhereMD);
-        return false;
-    }
-
+    PXOPT_COPY_F32(config->args, warpWhereMD, "-select_good_frac_min",  "warpSkyfile.good_frac",   ">=");
+    PXOPT_COPY_STR(config->args, warpWhereMD, "-select_tess_id",       "warpRun.tess_id",         "==");
+    pxAddLabelSearchArgs(config, warpWhereMD, "-select_filter",        "rawExp.filter",          "LIKE");
 
     PXOPT_LOOKUP_BOOL(rerun, config->args, "-rerun", false);
@@ -186,5 +173,5 @@
     psString joinHook = NULL;
     if (!rerun) {
-        psStringAppend(&joinHook, "\nLEFT JOIN fullForceRun ON fullForceRun.skycal_id = fullForceRun.skycal_id");
+        psStringAppend(&joinHook, "\nLEFT JOIN fullForceRun ON fullForceRun.skycal_id = skycalRun.skycal_id");
         psStringAppend(&joinHook, "\n %s\nAND fullForceRun.label = '%s'", where, label);
         psStringAppend(&select, "\nAND ff_id IS NULL");
@@ -502,5 +489,5 @@
     psMetadata *where = psMetadataAlloc();
     PXOPT_COPY_S64(config->args, where, "-ff_id",      "fullForceRun.ff_id", "==");
-    PXOPT_COPY_S64(config->args, where, "-warp_id",    "fullForceRun.warp_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-warp_id",    "fullForceResult.warp_id", "==");
     PXOPT_COPY_S64(config->args, where, "-skycal_id",  "fullForceRun.skycal_id", "==");
     PXOPT_COPY_S64(config->args, where, "-stack_id",   "stackRun.stack_id", "==");
@@ -510,5 +497,5 @@
     PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE");
     PXOPT_COPY_STR(config->args, where, "-filter",      "stackRun.filter", "LIKE");
-    PXOPT_COPY_S16(config->args, where, "-fault",      "staticskyResult.fault", "==");
+    PXOPT_COPY_S16(config->args, where, "-fault",      "fullForceResult.fault", "==");
     pxskycellAddWhere(config, where);
 
Index: trunk/ippTools/src/fftoolConfig.c
===================================================================
--- trunk/ippTools/src/fftoolConfig.c	(revision 36623)
+++ trunk/ippTools/src/fftoolConfig.c	(revision 36633)
@@ -58,4 +58,5 @@
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_tess_id", 0, "search for tess_id", NULL);
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_good_frac_min", 0, "mimimum good_frac in warp", 0.0);
 
     pxskycellAddArguments(definebyqueryArgs);
Index: trunk/ippTools/src/staticskytool.c
===================================================================
--- trunk/ippTools/src/staticskytool.c	(revision 36623)
+++ trunk/ippTools/src/staticskytool.c	(revision 36633)
@@ -1045,8 +1045,8 @@
     PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id",    "stackRun.skycell_id",       "==");
     PXOPT_COPY_STR(config->args, whereMD, "-select_tess_id",       "stackRun.tess_id",          "==");
+    pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
     PXOPT_COPY_F32(config->args, whereMD, "-select_good_frac_min", "stackSumSkyfile.good_frac", ">=");
     pxAddLabelSearchArgs(config, whereMD, "-select_label",         "staticskyRun.label",            "LIKE");
     pxAddLabelSearchArgs(config, whereMD, "-select_data_group",    "staticskyRun.data_group",       "LIKE");
-    pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
     if (!pxskycellAddWhere(config, whereMD)) {
         psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
