Index: /branches/bills_081204/dbconfig/changes.txt
===================================================================
--- /branches/bills_081204/dbconfig/changes.txt	(revision 20963)
+++ /branches/bills_081204/dbconfig/changes.txt	(revision 20964)
@@ -1370,2 +1370,3 @@
 ALTER TABLE magicRun ADD COLUMN diff_id BIGINT AFTER exp_id;
 ALTER TABLE magicRun ADD CONSTRAINT FOREIGN KEY(diff_id) REFERENCES diffRun(diff_id);
+ALTER TABLE magicInputSkyfile DROP PRIMARY KEY, ADD PRIMARY KEY(magic_id, diff_id, node);
Index: /branches/bills_081204/ippTools/share/difftool_inputskyfile.sql
===================================================================
--- /branches/bills_081204/ippTools/share/difftool_inputskyfile.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/difftool_inputskyfile.sql	(revision 20964)
@@ -92,6 +92,4 @@
     JOIN stackSumSkyfile
         ON  diffInputSkyfile.stack1 = stackSumSkyfile.stack_id
-    JOIN stackInputSkyfile
-        ON diffInputSkyfile.stack1 = stackInputSkyfile.stack_id
     JOIN rawExp
         USING(exp_id)
@@ -116,6 +114,4 @@
     JOIN stackSumSkyfile
         ON  diffInputSkyfile.stack2 = stackSumSkyfile.stack_id
-    JOIN stackInputSkyfile
-        ON diffInputSkyfile.stack2 = stackInputSkyfile.stack_id
     JOIN rawExp
         USING(exp_id)
Index: /branches/bills_081204/ippTools/share/magicdstool_completed_runs.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magicdstool_completed_runs.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magicdstool_completed_runs.sql	(revision 20964)
@@ -65,15 +65,13 @@
     JOIN magicRun USING (magic_id)
     JOIN magicInputSkyfile USING(magic_id)
-    -- Do we really need to join back to diffInputSkyfile here?
-    JOIN diffRun USING(diff_id)
-    JOIN diffSkyfile USING(diff_id)
-    JOIN diffInputSkyfile USING(diff_id)
+    JOIN diffSkyfile
+        ON magicInputSkyfile.diff_id = diffSkyfile.diff_id
+        AND magicInputSkyfile.node = diffSkyfile.skycell_id
     LEFT JOIN magicDSFile
         ON magicDSRun.magic_ds_id = magicDSFile.magic_ds_id
-        AND magicDSFile.component = diffInputSkyfile.skycell_id
+        AND magicDSFile.component = diffSkyfile.skycell_id
     WHERE
         magicDSRun.state = 'run'
         AND magicDSRun.stage = 'diff'
-        AND diffRun.state = 'full'
         AND diffSkyfile.fault = 0
     GROUP BY
Index: /branches/bills_081204/ippTools/share/magicdstool_getrunids.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magicdstool_getrunids.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magicdstool_getrunids.sql	(revision 20964)
@@ -8,9 +8,14 @@
 FROM magicRun 
 JOIN magicInputSkyfile USING(magic_id)
-JOIN diffInputSkyfile USING(diff_id)
-JOIN warpRun USING(warp_id)
+JOIN diffSkyfile 
+    ON magicInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND magicInputSkyfile.node = diffSkyfile.skycell_id
+JOIN diffInputSkyfile
+    ON diffInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND diffInputSkyfile.skycell_id = diffSkyfile.skycell_id
+JOIN warpRun
+    ON diffInputSkyfile.warp1 = warp_id
 JOIN fakeRun USING(fake_id)
 JOIN camRun USING(cam_id)
 JOIN chipRun USING(chip_id)
-WHERE template  = 0
-AND magic_id = %ld
+WHERE magic_id = %ld
Index: /branches/bills_081204/ippTools/share/magicdstool_getskycells.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magicdstool_getskycells.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magicdstool_getskycells.sql	(revision 20964)
@@ -1,20 +1,20 @@
 SELECT DISTINCT
     diffSkyfile.diff_id,
-    diffRun.skycell_id,
+    diffSkyfile.skycell_id,
     diffSkyfile.uri,
     diffSkyfile.path_base
 FROM magicDSRun
 JOIN magicRun USING(magic_id)
-JOIN magicInputSkyfile USING(magic_id)
-JOIN diffRun USING(diff_id)
-JOIN diffSkyfile USING(diff_id)
+JOIN magicInputSkyfile USING(magic_id, diff_id)
+JOIN diffSkyfile
+    ON magicInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND magicInputSkyfile.node = diffSkyfile.skycell_id
 JOIN diffInputSkyfile
-    ON diffInputSkyfile.diff_id = diffRun.diff_id
-    AND diffInputSkyfile.skycell_id = diffRun.skycell_id
+    ON diffInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND diffInputSkyfile.skycell_id = diffSkyfile.skycell_id
     -- Want input warps only
-    AND diffInputSkyfile.warp_id IS NOT NULL
-    AND diffInputSkyfile.template = 0
+    AND diffInputSkyfile.warp1 IS NOT NULL
 JOIN warpSkyCellMap
-    ON warpSkyCellMap.warp_id = diffInputSkyfile.warp_id
+    ON warpSkyCellMap.warp_id = diffInputSkyfile.warp1
     AND warpSkyCellMap.skycell_id = diffInputSkyfile.skycell_id
 JOIN warpSkyfile
@@ -23,5 +23,4 @@
     AND warpSkyfile.ignored = 0
 WHERE
-    diffRun.state = 'full'
-    AND diffSkyfile.fault = 0
+    diffSkyfile.fault = 0
     AND magic_ds_id = %lld
Index: /branches/bills_081204/ippTools/share/magicdstool_todestreak.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magicdstool_todestreak.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magicdstool_todestreak.sql	(revision 20964)
@@ -106,6 +106,6 @@
     magicMask.uri as streaks_uri,
     stage,
-    diff_id as stage_id,
-    diffInputSkyfile.skycell_id as component,
+    magicRun.diff_id as stage_id,
+    diffSkyfile.skycell_id as component,
     diffSkyfile.uri,
     diffSkyfile.path_base,
@@ -120,14 +120,13 @@
 JOIN magicDSRun USING(magic_id)
 JOIN magicInputSkyfile USING(magic_id)
-JOIN diffRun USING(diff_id)
-JOIN diffSkyfile USING(diff_id)
-JOIN diffInputSkyfile USING(diff_id)
+JOIN diffSkyfile
+    ON  magicInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND magicInputSkyfile.node = diffSkyfile.skycell_id
 LEFT JOIN magicDSFile
     ON magicDSRun.magic_ds_id = magicDSFile.magic_ds_id
-    AND magicDSFile.component = diffInputSkyfile.skycell_id
+    AND magicDSFile.component = diffSkyfile.skycell_id
 WHERE
     magicDSRun.state = 'run'
     AND magicDSRun.stage = 'diff'
-    AND diffRun.state = 'full'
     AND diffSkyfile.fault = 0
     AND magicDSFile.component IS NULL
Index: /branches/bills_081204/ippTools/share/magictool_definebyquery_select.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magictool_definebyquery_select.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magictool_definebyquery_select.sql	(revision 20964)
@@ -2,5 +2,5 @@
 SELECT 
     exp_id,
-    MAX(diff_id) AS diff_id
+    MAX(diffRun.diff_id) AS diff_id
 FROM diffRun
 JOIN rawExp USING(exp_id)
Index: /branches/bills_081204/ippTools/share/magictool_inputs.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magictool_inputs.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magictool_inputs.sql	(revision 20964)
@@ -10,8 +10,10 @@
     diffSkyfile.path_base,
     diffSkyfile.fault
-FROM magicInputSkyfile
-JOIN magicRun USING(magic_id)
+FROM magicRun
+JOIN magicInputSkyfile
+USING(magic_id)
 JOIN diffSkyfile
-    USING(diff_id)
+    ON magicInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND magicInputSkyfile.node = diffSkyfile.skycell_id
 UNION
 -- Merged skycells
Index: /branches/bills_081204/ippTools/share/magictool_inputskyfile.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magictool_inputskyfile.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magictool_inputskyfile.sql	(revision 20964)
@@ -2,9 +2,10 @@
     magicInputSkyfile.*,
     diffSkyfile.uri
-FROM magicInputSkyfile
-JOIN magicRun
+FROM magicRun
+JOIN magicInputSkyfile
     USING(magic_id)
 JOIN diffSkyfile
-    USING(diff_id)
+    ON magicInputSkyfile.diff_id = diffSkyfile.diff_id
+    AND magicInputSkyfile.node = diffSkyfile.skycell_id
 WHERE
     magicRun.state = 'run'
Index: /branches/bills_081204/ippTools/share/magictool_toprocess_inputs.sql
===================================================================
--- /branches/bills_081204/ippTools/share/magictool_toprocess_inputs.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/magictool_toprocess_inputs.sql	(revision 20964)
@@ -11,5 +11,7 @@
 JOIN magicRun USING(magic_id)
 JOIN magicInputSkyfile USING(magic_id, node)
-JOIN diffSkyfile USING(diff_id)
+JOIN diffSkyfile 
+    ON magicRun.diff_id = diffSkyfile.diff_id
+    AND magicInputSkyfile.node = diffSkyfile.skycell_id
 JOIN rawExp USING(exp_id)
 LEFT JOIN magicNodeResult
Index: /branches/bills_081204/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- /branches/bills_081204/ippTools/share/pxadmin_create_tables.sql	(revision 20963)
+++ /branches/bills_081204/ippTools/share/pxadmin_create_tables.sql	(revision 20964)
@@ -1038,5 +1038,5 @@
         diff_id BIGINT,
         node VARCHAR(64),
-        PRIMARY KEY(magic_id, diff_id),
+        PRIMARY KEY(magic_id, diff_id, node),
         FOREIGN KEY (magic_id)  REFERENCES  magicRun(magic_id),
         FOREIGN KEY (diff_id) REFERENCES diffRun(diff_id)
Index: /branches/bills_081204/ippTools/src/magicdstool.c
===================================================================
--- /branches/bills_081204/ippTools/src/magicdstool.c	(revision 20963)
+++ /branches/bills_081204/ippTools/src/magicdstool.c	(revision 20964)
@@ -469,5 +469,5 @@
     if (psArrayLength(output)) {
         // negative simple so the default is true
-        if (!ippdbPrintMetadatas(stdout, output, "totree", !simple)) {
+        if (!ippdbPrintMetadatas(stdout, output, "todestreak", !simple)) {
             psError(PS_ERR_UNKNOWN, false, "failed to print array");
             psFree(output);
Index: /branches/bills_081204/ippTools/src/magictool.c
===================================================================
--- /branches/bills_081204/ippTools/src/magictool.c	(revision 20963)
+++ /branches/bills_081204/ippTools/src/magictool.c	(revision 20964)
@@ -160,4 +160,11 @@
             }
         }
+        // now add the user specified qualifiers
+        if (psListLength(where->list)) {
+            psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+            psStringAppend(&queryWhere, " %s %s", queryWhere == NULL ? "WHERE" : "AND", whereClause);
+            psFree(whereClause);
+        }
+        psFree(where);
         if (!queryWhere) {
             psStringAppend(&queryWhere, " ");
@@ -207,5 +214,5 @@
         psMetadata *row = output->data[i]; // Row of interest
         psS64 exp_id = psMetadataLookupS64(NULL, row, "exp_id"); // Exposure identifier
-        psS64 diff_id = psMetadataLookupS64(NULL, row, "diff_id"); // Exposure identifier
+        psS64 diff_id = psMetadataLookupS64(NULL, row, "diff_id"); // difference identifier
 
         // create a new magicRun for this group
