Index: trunk/ippTools/share/warptool_listrun.sql
===================================================================
--- trunk/ippTools/share/warptool_listrun.sql	(revision 27737)
+++ trunk/ippTools/share/warptool_listrun.sql	(revision 27737)
@@ -0,0 +1,17 @@
+SELECT
+    warpRun.*,
+    camRun.cam_id,
+    chipRun.chip_id,
+    rawExp.exp_id,
+    rawExp.exp_name,
+    rawExp.camera,
+    rawExp.filter
+FROM warpRun
+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
Index: trunk/ippTools/share/warptool_pendingcleanupskyfile.sql
===================================================================
--- trunk/ippTools/share/warptool_pendingcleanupskyfile.sql	(revision 27734)
+++ trunk/ippTools/share/warptool_pendingcleanupskyfile.sql	(revision 27737)
@@ -10,5 +10,6 @@
     USING(warp_id)
 WHERE
-   ((warpRun.state = 'goto_cleaned'  AND warpSkyfile.data_state = 'full')
+   ((warpRun.state = 'goto_cleaned'  AND (warpSkyfile.data_state = 'full'
+                                      OR  warpSkyfile.data_state = 'update'))
     OR
     (warpRun.state = 'goto_scrubbed' AND warpSkyfile.data_state != 'scrubbed')
Index: trunk/ippTools/share/warptool_scmap.sql
===================================================================
--- trunk/ippTools/share/warptool_scmap.sql	(revision 27734)
+++ trunk/ippTools/share/warptool_scmap.sql	(revision 27737)
@@ -3,5 +3,10 @@
     chipProcessedImfile.uri,
     chipProcessedImfile.path_base as chip_path_base,
-    camProcessedExp.path_base as cam_path_base
+    camProcessedExp.path_base as cam_path_base,
+    chipProcessedImfile.chip_id,
+    chipRun.state,
+    chipProcessedImfile.data_state,
+    chipProcessedImfile.magicked,
+    rawImfile.magicked AS raw_magicked
 FROM warpRun
 JOIN warpSkyCellMap
@@ -18,7 +23,7 @@
     ON chipRun.chip_id = chipProcessedImfile.chip_id
     AND warpSkyCellMap.class_id = chipProcessedImfile.class_id
+JOIN rawImfile
+    ON chipRun.exp_id = rawImfile.exp_id
+    AND chipProcessedImfile.class_id = rawImfile.class_id
 WHERE
---    warpRun.state = 'new'
-    fakeRun.state = 'full'
-    AND camRun.state = 'full'
-    AND chipRun.state = 'full'
+    1
Index: trunk/ippTools/share/warptool_setskyfiletoupdate.sql
===================================================================
--- trunk/ippTools/share/warptool_setskyfiletoupdate.sql	(revision 27737)
+++ trunk/ippTools/share/warptool_setskyfiletoupdate.sql	(revision 27737)
@@ -0,0 +1,8 @@
+UPDATE warpRun
+    JOIN warpSkyfile USING(warp_id)
+SET warpRun.state = 'update', 
+    warpSkyfile.data_state = 'update'
+    -- set hook %s
+WHERE warp_id = %lld
+    AND (warpRun.state = 'cleaned' OR warpRun.state = 'update')
+    AND (warpSkyfile.data_state = 'cleaned')
Index: trunk/ippTools/share/warptool_towarped.sql
===================================================================
--- trunk/ippTools/share/warptool_towarped.sql	(revision 27734)
+++ trunk/ippTools/share/warptool_towarped.sql	(revision 27737)
@@ -1,2 +1,16 @@
+SELECT 
+    warp_id,
+    warp_skyfile_id,
+    skycell_id,
+    tess_id,
+    fake_id,
+    state,
+    reduction,
+    cam_id,
+    camera,
+    exp_tag,
+    workdir,
+    magicked
+FROM (
     SELECT DISTINCT
         warpSkyCellMap.warp_id,
@@ -45,2 +59,40 @@
         AND warpSkyCellMap.fault = 0
         -- where hook 1 %s
+        -- limit hook 1 %s
+UNION
+    SELECT
+        warpSkyCellMap.warp_id,
+        warpImfile.warp_skyfile_id,
+        warpSkyCellMap.skycell_id,
+        warpSkyCellMap.tess_id,
+        warpRun.fake_id,
+        warpRun.state,
+        warpRun.reduction,
+        camRun.cam_id,
+        rawExp.camera,
+        rawExp.exp_tag,
+        warpRun.workdir,
+        MIN(chipProcessedImfile.magicked) AS magicked
+    FROM warpRun
+    JOIN warpImfile USING(warp_id)
+    JOIN warpSkyCellMap USING(warp_id, skycell_id)
+    JOIN warpSkyfile USING(warp_id, skycell_id)
+    JOIN fakeRun USING(fake_id)
+    JOIN camRun USING(cam_id)
+    JOIN chipRun USING(chip_id)
+    JOIN rawExp USING(exp_id)
+    LEFT JOIN chipProcessedImfile USING(chip_id, class_id)
+    WHERE warpRun.state = 'update'
+        AND warpSkyfile.data_state = 'update'
+        AND warpSkyfile.fault = 0
+        AND camRun.state = 'full'
+        AND chipProcessedImfile.data_state = 'full'
+        -- if warpSkyfile was magicked previously require inputs to be magicked
+        -- this blocks processing until all the chip inputs have been destreaked
+        AND (warpSkyfile.magicked = 0 OR chipProcessedImfile.magicked >= 0)
+        -- where hook 2 %s
+    GROUP BY warp_id, skycell_id
+    HAVING COUNT(warpSkyCellMap.class_id) = COUNT(chipProcessedImfile.class_id)
+    -- limit hook 2 %s
+) as towarped
+
Index: trunk/ippTools/share/warptool_warped.sql
===================================================================
--- trunk/ippTools/share/warptool_warped.sql	(revision 27734)
+++ trunk/ippTools/share/warptool_warped.sql	(revision 27737)
@@ -21,6 +21,2 @@
 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
--- XXX EAM : not needed: fix warptool.c
-    warpRun.warp_id is NOT NULL
