Index: /trunk/ippTools/share/difftool_definebyquery.sql
===================================================================
--- /trunk/ippTools/share/difftool_definebyquery.sql	(revision 20681)
+++ /trunk/ippTools/share/difftool_definebyquery.sql	(revision 20682)
@@ -7,6 +7,4 @@
     warpsToDiff.tess_id,
     warpsToDiff.filter,
-    stacksForDiff.stack_label,
-    warpsToDiff.warp_label,
     warpsToDiff.good_frac,
     warpsToDiff.diff_id,
@@ -45,4 +43,5 @@
         warpSkyfile.fault = 0
         AND warpSkyfile.ignored = 0
+    -- warpsToDiff WHERE hook %s
     ) AS warpsToDiff
 -- Get best stack as a function of skycell_id, filter
@@ -51,11 +50,10 @@
         MAX(stack_id) AS best_stack_id, -- most recent stack, by virtue of auto-increment
         skycell_id,
-        tess_id,
-        filter,
-        label as stack_label
+        filter
     FROM stackRun
     JOIN stackSumSkyfile USING(stack_id)
     WHERE stackRun.state = 'full'
         AND stackSumSkyfile.fault = 0
+    -- stacksForDiff WHERE hook %s
     GROUP BY
         skycell_id,
Index: /trunk/ippTools/src/difftool.c
===================================================================
--- /trunk/ippTools/src/difftool.c	(revision 20681)
+++ /trunk/ippTools/src/difftool.c	(revision 20682)
@@ -936,14 +936,15 @@
     PS_ASSERT_PTR_NON_NULL(config, false);
 
-    psMetadata *where = psMetadataAlloc();
-
-    PXOPT_COPY_S64(config->args, where, "-warp_id", "warpsToDiff.warp_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpsToDiff.skycell_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-tess_id", "warpsToDiff.tess_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-filter", "warpsToDiff.filter", "==");
-    PXOPT_COPY_STR(config->args, where, "-stack_label", "stacksForDiff.stack_label", "==");
-    PXOPT_COPY_STR(config->args, where, "-warp_label", "warpsToDiff.warp_label", "==");
-    PXOPT_COPY_STR(config->args, where,  "-kind", "warpsToDiff.kind", "==");
-    PXOPT_COPY_F32(config->args, where,  "-good_frac", "warpsToDiff.good_frac", ">=");
+    psMetadata *warpWhere = psMetadataAlloc();
+    psMetadata *stackWhere = psMetadataAlloc();
+
+    PXOPT_COPY_S64(config->args, warpWhere, "-warp_id", "warpsToDiff.warp_id", "==");
+    PXOPT_COPY_STR(config->args, warpWhere, "-skycell_id", "warpsToDiff.skycell_id", "==");
+    PXOPT_COPY_STR(config->args, warpWhere, "-tess_id", "warpsToDiff.tess_id", "==");
+    PXOPT_COPY_STR(config->args, warpWhere, "-filter", "warpsToDiff.filter", "==");
+    PXOPT_COPY_STR(config->args, warpWhere, "-warp_label", "warpsToDiff.warp_label", "==");
+    PXOPT_COPY_STR(config->args, warpWhere,  "-kind", "warpsToDiff.kind", "==");
+    PXOPT_COPY_F32(config->args, warpWhere,  "-good_frac", "warpsToDiff.good_frac", ">=");
+    PXOPT_COPY_STR(config->args, stackWhere, "-stack_label", "stacksForDiff.stack_label", "==");
 
     PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false); // required options
@@ -969,12 +970,26 @@
     }
 
-    if (psListLength(where->list)) {
-        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
-        psStringAppend(&query, " AND %s", whereClause);
+    psString warpQuery = NULL;
+    psString stackQuery = NULL;
+
+    if (psListLength(warpWhere->list)) {
+        psString whereClause = psDBGenerateWhereConditionSQL(warpWhere, NULL);
+        psStringAppend(&warpQuery, "\n AND %s", whereClause);
         psFree(whereClause);
-    }
-    psFree(where);
-
-    if (!p_psDBRunQuery(config->dbh, query)) {
+    } else {
+        warpQuery = psStringCopy("");
+    }
+    psFree(warpWhere);
+
+    if (psListLength(stackWhere->list)) {
+        psString whereClause = psDBGenerateWhereConditionSQL(stackWhere, NULL);
+        psStringAppend(&stackQuery, "\n AND %s", whereClause);
+        psFree(whereClause);
+    } else {
+        stackQuery = psStringCopy("");
+    }
+    psFree(warpWhere);
+
+    if (!p_psDBRunQuery(config->dbh, query, warpWhere, stackWhere)) {
         psError(PS_ERR_UNKNOWN, false, "database error");
         psFree(query);
