Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 41705)
+++ trunk/ippTools/share/Makefile.am	(revision 42097)
@@ -421,4 +421,5 @@
 	stacktool_sassskyfile.sql \
 	stacktool_tosum.sql \
+	stacktool_tosum_allstates.sql \
 	stacktool_tobkg.sql \
 	stacktool_tosummary.sql \
Index: trunk/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_create_tables.sql	(revision 41705)
+++ trunk/ippTools/share/pxadmin_create_tables.sql	(revision 42097)
@@ -1453,5 +1453,5 @@
         username VARCHAR(255),
         proj_id BIGINT,
-        registered TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+        registered datetime,
         timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
         fault SMALLINT,
Index: trunk/ippTools/share/stacktool_tosum_allstates.sql
===================================================================
--- trunk/ippTools/share/stacktool_tosum_allstates.sql	(revision 42097)
+++ trunk/ippTools/share/stacktool_tosum_allstates.sql	(revision 42097)
@@ -0,0 +1,21 @@
+SELECT
+    stackRun.stack_id,
+    stackRun.tess_id,
+    stackRun.skycell_id,
+    stackRun.workdir,
+    stackRun.reduction,
+    stackRun.label,
+    stackRun.state,
+    stackSumSkyfile.path_base,
+    IFNULL(Label.priority, 10000) AS priority
+FROM stackRun
+JOIN stackInputSkyfile USING(stack_id)
+JOIN warpRun USING(warp_id)
+LEFT JOIN stackSumSkyfile USING(stack_id)
+LEFT JOIN Label ON Label.label = stackRun.label
+WHERE
+    ((stackRun.state = 'new' AND stackSumSkyfile.stack_id IS NULL)
+    OR (stackRun.state = 'update' AND stackSumSkyfile.fault = 0 AND stackSumSkyfile.quality = 0))
+    AND (Label.active OR Label.active IS NULL)
+    -- WHERE hook %s
+GROUP BY stack_id
Index: trunk/ippTools/src/stacktool.c
===================================================================
--- trunk/ippTools/src/stacktool.c	(revision 41705)
+++ trunk/ippTools/src/stacktool.c	(revision 42097)
@@ -264,4 +264,10 @@
     pxAddLabelSearchArgs (config, where, "-warp_id",                   "warpRun.warp_id", "==");
     
+    // Add position dependence here.
+    if (!pxspaceBoxAddWhere(config, where)) {
+      psError(psErrorCodeLast(), false, "pxSpaceBoxAddWhere failed");
+      return false;
+    }
+  
     // these are used to build the HAVING restriction
     PXOPT_COPY_S32(config->args, having, "-min_num", "num_warp", ">=");
@@ -922,6 +928,7 @@
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
-
-    psString query = pxDataGet("stacktool_tosum.sql");
+    PXOPT_LOOKUP_BOOL(ignore_warp_state, config->args, "-ignore-warp-state", false);
+
+    psString query = ignore_warp_state ? pxDataGet("stacktool_tosum_allstates.sql") : pxDataGet("stacktool_tosum.sql");
     if (!query) {
         psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
Index: trunk/ippTools/src/stacktoolConfig.c
===================================================================
--- trunk/ippTools/src/stacktoolConfig.c	(revision 41705)
+++ trunk/ippTools/src/stacktoolConfig.c	(revision 42097)
@@ -103,4 +103,5 @@
     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-pretend",  0, "do not actually modify the database", false);
     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
+    pxspaceBoxAddArguments(definebyqueryArgs);
 
     // -definerun
@@ -153,4 +154,5 @@
     psMetadataAddU64(tosumArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddBool(tosumArgs, PS_LIST_TAIL, "-ignore-warp-state",  0, "generate the stack even if some inputs are not full", false);
 
     // -tobkg
