Index: /trunk/ippTools/share/difftool_skyfile.sql
===================================================================
--- /trunk/ippTools/share/difftool_skyfile.sql	(revision 18974)
+++ /trunk/ippTools/share/difftool_skyfile.sql	(revision 18975)
@@ -3,8 +3,25 @@
     diffRun.tess_id,
     diffRun.state,
-    diffSkyfile.*
+    diffSkyfile.*,
+    rawExp.exp_id,
+    rawExp.camera
 FROM diffRun
 JOIN diffSkyfile
     USING(diff_id)
+-- my new stuff begins here
+JOIN diffInputSkyfile
+    ON diffInputSkyfile.diff_id = diffRun.diff_id
+    AND diffInputSkyfile.template = 0
+JOIN warpRun
+    ON diffInputSkyfile.warp_id = warpRun.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
+-- my new stuff ends here
     WHERE
     -- bogus test to allow appending conditionals
Index: /trunk/ippTools/share/stacktool_sumskyfile.sql
===================================================================
--- /trunk/ippTools/share/stacktool_sumskyfile.sql	(revision 18974)
+++ /trunk/ippTools/share/stacktool_sumskyfile.sql	(revision 18975)
@@ -1,8 +1,21 @@
 SELECT
     stackSumSkyfile.*,
-    stackRun.state
+    stackRun.state,
+    rawExp.camera
 FROM stackRun
 JOIN stackSumSkyfile
     USING(stack_id)
+JOIN warpRun
+    -- just need 1 warp to find the camera
+    ON warpRun.warp_id = (SELECT warp_id FROM stackInputSkyfile 
+                            WHERE stackInputSkyfile.stack_id = stackRun.stack_id limit 1)
+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
 -- bogus test; just here so there there is a 'WHERE' stmt to append conditionals too
Index: /trunk/ippTools/share/warptool_warped.sql
===================================================================
--- /trunk/ippTools/share/warptool_warped.sql	(revision 18974)
+++ /trunk/ippTools/share/warptool_warped.sql	(revision 18975)
@@ -1,8 +1,18 @@
 SELECT
     warpSkyfile.*,
-    warpRun.state
+    warpRun.state,
+    rawExp.exp_id,
+    rawExp.camera
 FROM warpRun
 JOIN warpSkyfile
     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
 -- bogus test; just here so there there is a 'WHERE' stmt to append conditionals too
Index: /trunk/ippTools/src/difftool.c
===================================================================
--- /trunk/ippTools/src/difftool.c	(revision 18974)
+++ /trunk/ippTools/src/difftool.c	(revision 18975)
@@ -519,7 +519,8 @@
 
     psMetadata *where = psMetadataAlloc();
-    PXOPT_COPY_S64(config->args, where,  "-diff_id", "diff_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "==");
+    PXOPT_COPY_S64(config->args, where,  "-diff_id", "diffSkyfile.diff_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-skycell_id", "diffSkyfile.skycell_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-tess_id", "diffSkyfile.tess_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-exp_id", "rawExp.exp_id", "==");
 
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
@@ -533,5 +534,5 @@
 
     if (psListLength(where->list)) {
-        psString whereClause = psDBGenerateWhereConditionSQL(where, "diffSkyfile");
+        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
Index: /trunk/ippTools/src/difftoolConfig.c
===================================================================
--- /trunk/ippTools/src/difftoolConfig.c	(revision 18974)
+++ /trunk/ippTools/src/difftoolConfig.c	(revision 18975)
@@ -104,4 +104,5 @@
     psMetadataAddStr(diffskyfileArgs , PS_LIST_TAIL, "-skycell_id",  0,            "define skycell ID", NULL);
     psMetadataAddStr(diffskyfileArgs, PS_LIST_TAIL, "-tess_id",  0,            "define tessellation ID", NULL);
+    psMetadataAddStr(diffskyfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "define exposure ID", NULL);
     psMetadataAddU64(diffskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     psMetadataAddBool(diffskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
Index: /trunk/ippTools/src/stacktool.c
===================================================================
--- /trunk/ippTools/src/stacktool.c	(revision 18974)
+++ /trunk/ippTools/src/stacktool.c	(revision 18975)
@@ -690,6 +690,7 @@
 
     psMetadata *where = psMetadataAlloc();
-    PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
-    PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "==");
 
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
@@ -703,5 +704,5 @@
 
     if (psListLength(where->list)) {
-        psString whereClause = psDBGenerateWhereConditionSQL(where, "stackSumSkyfile");
+        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
Index: /trunk/ippTools/src/stacktoolConfig.c
===================================================================
--- /trunk/ippTools/src/stacktoolConfig.c	(revision 18974)
+++ /trunk/ippTools/src/stacktoolConfig.c	(revision 18975)
@@ -126,4 +126,5 @@
     psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,            "search by stack ID", 0);
     psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warp ID", 0);
+    psMetadataAddS64(sumskyfileArgs, PS_LIST_TAIL, "-exp_id", 0,            "search by exposure ID", 0);
     psMetadataAddU64(sumskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
     psMetadataAddBool(sumskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
@@ -146,5 +147,5 @@
     PXOPT_ADD_MODE("-tosum",           "", STACKTOOL_MODE_TOSUM,          tosumArgs);
     PXOPT_ADD_MODE("-addsumskyfile",   "", STACKTOOL_MODE_ADDSUMSKYFILE,   addsumskyfileArgs);
-    PXOPT_ADD_MODE("-sumskyfile",      "", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
+    PXOPT_ADD_MODE("-sumskyfile",      "list results of stackRun", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
     PXOPT_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileArgs);
 
Index: /trunk/ippTools/src/warptool.c
===================================================================
--- /trunk/ippTools/src/warptool.c	(revision 18974)
+++ /trunk/ippTools/src/warptool.c	(revision 18975)
@@ -910,9 +910,9 @@
 
     psMetadata *where = psMetadataAlloc();
-    PXOPT_COPY_S64(config->args, where, "-warp_id",    "warp_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "==");
-    PXOPT_COPY_STR(config->args, where, "-tess_id",    "tess_id", "==");
-    PXOPT_COPY_S64(config->args, where, "-exp_id",     "exp_id", "==");
-    PXOPT_COPY_S64(config->args, where, "-fake_id",    "fake_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-warp_id",    "warpSkyfile.warp_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-tess_id",    "warpSkyfile.tess_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-exp_id",     "rawExp.exp_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-fake_id",    "fakeRun.fake_id", "==");
 
     PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
@@ -927,5 +927,5 @@
 
     if (psListLength(where->list)) {
-        psString whereClause = psDBGenerateWhereConditionSQL(where, "warpSkyfile");
+        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
         psFree(whereClause);
