Index: branches/czw_branch/20100519/ippTools/share/difftool_addsummary.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/difftool_addsummary.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/difftool_addsummary.sql	(revision 28334)
@@ -0,0 +1,5 @@
+INSERT INTO diffSummary (diff_id,projection_cell,path_base) VALUES (
+       %lld,   -- warp_id
+       '%s',   -- projection_cell
+       '%s'    -- path_base
+      )
Index: branches/czw_branch/20100519/ippTools/share/difftool_tosummary.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/difftool_tosummary.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/difftool_tosummary.sql	(revision 28334)
@@ -0,0 +1,5 @@
+SELECT DISTINCT diff_id,"GPC1" as camera,diffRun.workdir,diffRun.tess_id,diffRun.diff_mode,diffRun.state
+       FROM diffRun 
+       LEFT JOIN diffSummary USING(diff_id)
+WHERE diffRun.state = 'full' AND 
+      diffSummary.projection_cell IS NULL 
Index: branches/czw_branch/20100519/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/pxadmin_create_tables.sql	(revision 28304)
+++ branches/czw_branch/20100519/ippTools/share/pxadmin_create_tables.sql	(revision 28334)
@@ -1411,4 +1411,5 @@
         uri VARCHAR(255),
         outdir     VARCHAR(255),
+        timestamp TIMESTAMP,
         fault SMALLINT,
         PRIMARY KEY(req_id),
Index: branches/czw_branch/20100519/ippTools/share/stacktool_addsummary.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/stacktool_addsummary.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/stacktool_addsummary.sql	(revision 28334)
@@ -0,0 +1,5 @@
+INSERT INTO stackSummary (sass_id,projection_cell,path_base) VALUES (
+       %lld,   -- warp_id
+       '%s',   -- projection_cell
+       '%s'    -- path_base
+)
Index: branches/czw_branch/20100519/ippTools/share/stacktool_associationdefine_select.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/stacktool_associationdefine_select.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/stacktool_associationdefine_select.sql	(revision 28334)
@@ -0,0 +1,12 @@
+SELECT 
+       sass_id,
+       data_group,
+       tess_id,
+       filter,
+       CASE WHEN LOCATE('.',skycell_id,9) > 0 THEN
+       	    SUBSTRING_INDEX(skycell_id,'.',2) ELSE
+	    SUBSTRING_INDEX(skycell_id,'.',1) END
+       AS projection_cell
+       FROM stackRun 
+       LEFT JOIN stackAssociationMap USING (stack_id)
+       WHERE stackRun.stack_id = @STACK_ID@
Index: branches/czw_branch/20100519/ippTools/share/stacktool_sassskyfile.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/stacktool_sassskyfile.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/stacktool_sassskyfile.sql	(revision 28334)
@@ -0,0 +1,23 @@
+SELECT
+    stackAssociation.sass_id,
+    stackAssociation.projection_cell,
+    stackSumSkyfile.*,
+    stackRun.state,
+    stackRun.tess_id,
+    stackRun.skycell_id,
+    stackRun.filter,
+    stackRun.workdir,
+    stackRun.label,
+    (SELECT rawExp.camera FROM 
+        stackInputSkyfile 
+        JOIN warpRun USING(warp_id)
+        JOIN fakeRun ON warpRun.fake_id = fakeRun.fake_id
+        JOIN camRun ON camRun.cam_id = fakeRun.cam_id
+        JOIN chipRun ON camRun.chip_id  = chipRun.chip_id
+        JOIN rawExp ON chipRun.exp_id  = rawExp.exp_id
+        where stack_id = stackRun.stack_id limit 1
+    ) as camera
+FROM stackRun
+JOIN stackSumSkyfile USING(stack_id)
+JOIN stackAssociationMap USING(stack_id)
+JOIN stackAssociation USING(sass_id)
Index: branches/czw_branch/20100519/ippTools/share/stacktool_tosummary.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/stacktool_tosummary.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/stacktool_tosummary.sql	(revision 28334)
@@ -0,0 +1,13 @@
+SELECT DISTINCT sass_id,rawExp.camera,stackRun.workdir,stackRun.tess_id,stackRun.state
+       FROM stackRun
+       JOIN stackInputSkyfile ON stackRun.stack_id = stackInputSkyfile.stack_id
+       JOIN stackAssociationMap ON stackRun.stack_id = stackAssociationMap.stack_id
+       JOIN stackAssociation USING(sass_id)
+       JOIN warpRun USING(warp_id)
+       JOIN fakeRun USING(fake_id)
+       JOIN camRun USING(cam_id)
+       JOIN chipRun USING(chip_id)
+       JOIN rawExp USING(exp_id)
+       LEFT JOIN stackSummary USING(sass_id)
+WHERE stackRun.state = 'full' AND
+      stackSummary.projection_cell IS NULL
Index: branches/czw_branch/20100519/ippTools/share/warptool_addsummary.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/warptool_addsummary.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/warptool_addsummary.sql	(revision 28334)
@@ -0,0 +1,5 @@
+INSERT INTO warpSummary (warp_id,projection_cell,path_base) VALUES(
+       %lld,   -- warp_id
+       '%s',   -- projection_cell
+       '%s'    -- path_base
+)
Index: branches/czw_branch/20100519/ippTools/share/warptool_tosummary.sql
===================================================================
--- branches/czw_branch/20100519/ippTools/share/warptool_tosummary.sql	(revision 28334)
+++ branches/czw_branch/20100519/ippTools/share/warptool_tosummary.sql	(revision 28334)
@@ -0,0 +1,7 @@
+SELECT DISTINCT warp_id,rawExp.camera,warpRun.workdir,warpRun.tess_id,rawExp.exp_tag,warpRun.state
+       FROM warpRun 
+       JOIN fakeRun USING(fake_id) JOIN camRun USING(cam_id)
+       JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)
+       LEFT JOIN warpSummary USING(warp_id)
+WHERE warpRun.state = 'full' AND 
+      warpSummary.projection_cell IS NULL 
Index: branches/czw_branch/20100519/ippTools/src/addtool.c
===================================================================
--- branches/czw_branch/20100519/ippTools/src/addtool.c	(revision 28304)
+++ branches/czw_branch/20100519/ippTools/src/addtool.c	(revision 28334)
@@ -817,4 +817,9 @@
   }
 
+  if (minidvodb_path) {
+    psStringAppend(&minidvodb_path,"/%s",minidvodb_name);
+  }
+
+
   psString query = NULL;
 
Index: branches/czw_branch/20100519/ippTools/src/pstamptool.c
===================================================================
--- branches/czw_branch/20100519/ippTools/src/pstamptool.c	(revision 28304)
+++ branches/czw_branch/20100519/ippTools/src/pstamptool.c	(revision 28334)
@@ -271,4 +271,5 @@
         uri,
         NULL,   // outdir
+        NULL,   // timestamp
         0       // fault
         )) {
@@ -547,4 +548,9 @@
     PXOPT_LOOKUP_BOOL(clearfault,config->args, "-clearfault",    false);
 
+    if (!state && !label && !outProduct && !fault && !uri && !outdir && !name && !reqType && !clearfault) {
+        psError(PS_ERR_UNKNOWN, true, "at least one set option is required");
+        return false;
+    }
+
     psMetadata *where = psMetadataAlloc();
     PXOPT_COPY_S64(config->args, where, "-req_id",     "req_id", "==");
@@ -552,4 +558,6 @@
     PXOPT_COPY_S32(config->args, where, "-fault",      "fault", "==");
     PXOPT_COPY_STR(config->args, where, "-state",      "state", "==");
+    PXOPT_COPY_TIME(config->args, where, "-timestamp_begin", "timestamp", ">=");
+    PXOPT_COPY_TIME(config->args, where, "-timestamp_end", "timestamp", "<=");
     pxAddLabelSearchArgs(config, where, "-label",      "pstampRequest.label", "LIKE");
     if (!psListLength(where->list)) {
@@ -559,11 +567,9 @@
     }
 
-    psString query = psStringCopy("UPDATE pstampRequest SET");
+    psString query = psStringCopy("UPDATE pstampRequest SET timestamp = UTC_TIMESTAMP()");
 
     psString stateCheck = NULL;
-    char c = ' ';
     if (state) {
-        psStringAppend(&query, "%c state = '%s'", c, state);
-        c = ',';
+        psStringAppend(&query, ", state = '%s'", state);
         if (!strcmp(state, "goto_cleaned")) {
             psStringAppend(&stateCheck, " AND state != 'cleaned'");
@@ -571,14 +577,11 @@
     }
     if (label) {
-        psStringAppend(&query, "%c label = '%s'", c, label);
-        c = ',';
+        psStringAppend(&query, ", label = '%s'", label);
     }
     if (outProduct) {
-        psStringAppend(&query, "%c outProduct = '%s'", c, outProduct);
-        c = ',';
+        psStringAppend(&query, ", outProduct = '%s'", outProduct);
     }
     if (outdir) {
-        psStringAppend(&query, "%c outdir = '%s'", c, outdir);
-        c = ',';
+        psStringAppend(&query, ", outdir = '%s'", outdir);
     }
     if (clearfault) {
@@ -587,25 +590,16 @@
             return false;
         }
-        psStringAppend(&query, "%c fault = 0", c);
-        c = ',';
+        psStringAppend(&query, ", fault = 0");
     } else if (fault) {
-        psStringAppend(&query, "%c fault = %d", c, fault);
-        c = ',';
+        psStringAppend(&query, ", fault = %d", fault);
     }
     if (uri) {
-        psStringAppend(&query, "%c uri = '%s'", c, uri);
-        c = ',';
+        psStringAppend(&query, ", uri = '%s'", uri);
     }
     if (name) {
-        psStringAppend(&query, "%c name = '%s'", c, name);
-        c = ',';
+        psStringAppend(&query, ", name = '%s'", name);
     }
     if (reqType) {
-        psStringAppend(&query, "%c reqType = '%s'", c, reqType);
-        c = ',';
-    }
-    if (c != ',') {
-        psError(PS_ERR_UNKNOWN, true, "at least one set option is required");
-        return false;
+        psStringAppend(&query, ", reqType = '%s'", reqType);
     }
 
Index: branches/czw_branch/20100519/ippTools/src/pstamptoolConfig.c
===================================================================
--- branches/czw_branch/20100519/ippTools/src/pstamptoolConfig.c	(revision 28304)
+++ branches/czw_branch/20100519/ippTools/src/pstamptoolConfig.c	(revision 28334)
@@ -103,4 +103,6 @@
     psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-state", 0,        "search by state", NULL);
     psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by pstampJob label (LIKE comparision)", NULL);
+    psMetadataAddTime(updatereqArgs, PS_LIST_TAIL, "-timestamp_begin", 0, "search by timestamp (>=)", NULL);
+    psMetadataAddTime(updatereqArgs, PS_LIST_TAIL, "-timestamp_end", 0, "search by timestamp (<=)", NULL);
     psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-set_state", 0,        "new state", NULL);
     psMetadataAddStr(updatereqArgs, PS_LIST_TAIL, "-set_label", 0,        "new label", NULL);
Index: branches/czw_branch/20100519/ippTools/src/stacktool.c
===================================================================
--- branches/czw_branch/20100519/ippTools/src/stacktool.c	(revision 28304)
+++ branches/czw_branch/20100519/ippTools/src/stacktool.c	(revision 28334)
@@ -1372,5 +1372,5 @@
   if (psListLength(where->list)) {
     psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
-    psStringAppend(&query, " WHERE %s", whereClause);
+    psStringAppend(&query, " AND %s", whereClause);
     psFree(whereClause);
   } else if (!all) {
@@ -1387,5 +1387,5 @@
     psFree(limitString);
   }
-  
+
   if (!p_psDBRunQuery(config->dbh, query)) {
     psError(PS_ERR_UNKNOWN, false, "database error");
