Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 31242)
+++ trunk/ippTools/share/Makefile.am	(revision 31375)
@@ -8,7 +8,16 @@
 	addtool_find_cam_id_dvo.sql \
 	addtool_find_cam_id.sql \
+	addtool_find_sky_id_dvo.sql \
+	addtool_find_sky_id.sql \
+	addtool_find_stack_id_dvo.sql \
+	addtool_find_stack_id.sql \
 	addtool_find_pendingexp.sql \
+	addtool_find_pendingexp_cam.sql \
+	addtool_find_pendingexp_stack.sql \
+	addtool_find_pendingexp_staticsky.sql \
 	addtool_find_pendingmergeprocess.sql \
-	addtool_find_processedexp.sql \
+	addtool_find_processedexp_cam.sql \
+	addtool_find_processedexp_stack.sql \
+	addtool_find_processedexp_staticsky.sql \
 	addtool_find_minidvodbprocessed.sql \
 	addtool_find_minidvodbrun.sql \
@@ -16,7 +25,11 @@
 	addtool_pendingcleanuprun.sql \
 	addtool_queue_cam_id.sql \
+	addtool_queue_stack_id.sql \
+	addtool_queue_sky_id.sql \
 	addtool_queue_minidvodbrun.sql \
 	addtool_revertminidvodbprocessed.sql \
-	addtool_revertprocessedexp.sql \
+	addtool_revertprocessedexp_cam.sql \
+	addtool_revertprocessedexp_stack.sql \
+	addtool_revertprocessedexp_staticsky.sql \
 	bgtool_advancechip.sql \
 	bgtool_advancewarp.sql \
Index: trunk/ippTools/share/addtool_find_cam_id.sql
===================================================================
--- trunk/ippTools/share/addtool_find_cam_id.sql	(revision 31242)
+++ trunk/ippTools/share/addtool_find_cam_id.sql	(revision 31375)
@@ -11,8 +11,9 @@
                   addRun.dvodb AS previous_dvodb
            FROM addRun
-           JOIN camRun USING(cam_id)
+           JOIN camRun on cam_id=stage_id
 	   JOIN chipRun USING(chip_id)
           ) as foo
      ON exp_id = added_exp_id
+     AND stage = 'cam'
      -- hook for qualifying the join on the previous_dvodb
      AND %s
Index: trunk/ippTools/share/addtool_find_cam_id_dvo.sql
===================================================================
--- trunk/ippTools/share/addtool_find_cam_id_dvo.sql	(revision 31242)
+++ trunk/ippTools/share/addtool_find_cam_id_dvo.sql	(revision 31375)
@@ -6,6 +6,6 @@
     AND exp_id NOT IN (SELECT exp_id
        FROM addRun
-       JOIN camRun USING(cam_id)
+       JOIN camRun on cam_id=stage_id
        JOIN chipRun USING(chip_id)
-       WHERE %s
+       WHERE stage = 'cam' AND %s
       )
Index: trunk/ippTools/share/addtool_find_pendingexp.sql
===================================================================
--- trunk/ippTools/share/addtool_find_pendingexp.sql	(revision 31242)
+++ trunk/ippTools/share/addtool_find_pendingexp.sql	(revision 31375)
@@ -1,20 +1,5 @@
 SELECT
-    addRun.*,
-    camProcessedExp.path_base as camroot,
-    rawExp.exp_tag,
-    rawExp.exp_id,
-    rawExp.exp_name,
-    rawExp.camera,
-    rawExp.telescope,
-    rawExp.filelevel
+    addRun.*
 FROM addRun
-JOIN camRun
-    USING(cam_id)
-JOIN camProcessedExp
-    USING(cam_id)
-JOIN chipRun
-    USING(chip_id)
-JOIN rawExp
-    USING(exp_id)
 LEFT JOIN addProcessedExp
     USING(add_id)
@@ -22,6 +7,5 @@
     ON addRun.label = addMask.label
 WHERE
-    camRun.state = 'full'
-    AND ((addRun.state = 'new' AND addProcessedExp.add_id IS NULL) OR addRun.state = 'update')
+((addRun.state = 'new' AND addProcessedExp.add_id IS NULL) OR addRun.state = 'update')
     AND addRun.dvodb IS NOT NULL
     AND addRun.workdir IS NOT NULL
Index: trunk/ippTools/share/addtool_find_pendingexp_cam.sql
===================================================================
--- trunk/ippTools/share/addtool_find_pendingexp_cam.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_pendingexp_cam.sql	(revision 31375)
@@ -0,0 +1,30 @@
+SELECT
+    addRun.*,
+    camProcessedExp.path_base as stageroot,
+    rawExp.exp_tag,
+    rawExp.exp_id,
+    rawExp.exp_name,
+    rawExp.camera,
+    rawExp.telescope,
+    rawExp.filelevel
+FROM addRun
+JOIN camRun
+    on cam_id = stage_id
+JOIN camProcessedExp
+    USING(cam_id)
+JOIN chipRun
+    USING(chip_id)
+JOIN rawExp
+    USING(exp_id)
+LEFT JOIN addProcessedExp
+    USING(add_id)
+LEFT JOIN addMask
+    ON addRun.label = addMask.label
+WHERE
+    camRun.state = 'full' 
+    AND addRun.stage = 'cam' 
+    AND ((addRun.state = 'new' AND addProcessedExp.add_id IS NULL) OR addRun.state = 'update')
+    AND addRun.dvodb IS NOT NULL
+    AND addRun.workdir IS NOT NULL
+    AND addMask.label IS NULL
+
Index: trunk/ippTools/share/addtool_find_pendingexp_stack.sql
===================================================================
--- trunk/ippTools/share/addtool_find_pendingexp_stack.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_pendingexp_stack.sql	(revision 31375)
@@ -0,0 +1,28 @@
+SELECT
+    addRun.*,
+    stackSumSkyfile.path_base as stageroot,
+    rawExp.camera,
+    rawExp.telescope
+FROM addRun
+JOIN stackRun
+    ON stack_id = stage_id
+JOIN stackSumSkyfile
+    USING(stack_id)
+JOIN stackInputSkyfile 
+     USING(stack_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 addProcessedExp using (add_id)
+LEFT JOIN addMask
+    ON addRun.label = addMask.label
+WHERE
+    stackRun.state = 'full'
+    AND stage = 'stack'
+    AND ((addRun.state = 'new' AND addProcessedExp.add_id IS NULL) OR addRun.state = 'update')
+    AND addRun.dvodb IS NOT NULL
+    AND addRun.workdir IS NOT NULL
+    AND addMask.label IS NULL
+
Index: trunk/ippTools/share/addtool_find_pendingexp_staticsky.sql
===================================================================
--- trunk/ippTools/share/addtool_find_pendingexp_staticsky.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_pendingexp_staticsky.sql	(revision 31375)
@@ -0,0 +1,32 @@
+SELECT
+    addRun.*,
+    staticskyResult.path_base as stageroot,
+    rawExp.camera,
+    rawExp.telescope
+FROM addRun
+JOIN staticskyRun 
+    ON sky_id = stage_id
+JOIN staticskyResult
+     USING (sky_id)
+JOIN staticskyInput
+     USING (sky_id)
+JOIN stackRun
+    USING (stack_id)
+JOIN stackInputSkyfile 
+     USING(stack_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 addProcessedExp using (add_id)
+LEFT JOIN addMask
+    ON addRun.label = addMask.label
+WHERE
+    staticskyRun.state = 'full'
+    AND stage = 'staticsky'
+    AND ((addRun.state = 'new' AND addProcessedExp.add_id IS NULL) OR addRun.state = 'update')
+    AND addRun.dvodb IS NOT NULL
+    AND addRun.workdir IS NOT NULL
+    AND addMask.label IS NULL
+
Index: trunk/ippTools/share/addtool_find_processedexp_cam.sql
===================================================================
--- trunk/ippTools/share/addtool_find_processedexp_cam.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_processedexp_cam.sql	(revision 31375)
@@ -0,0 +1,12 @@
+SELECT
+    addProcessedExp.*,
+    addRun.workdir
+FROM addProcessedExp
+JOIN addRun
+    USING(add_id)
+JOIN camRun
+    on cam_id = stage_id
+JOIN chipRun
+    USING(chip_id)
+JOIN rawExp
+    ON chipRun.exp_id = rawExp.exp_id
Index: trunk/ippTools/share/addtool_find_processedexp_stack.sql
===================================================================
--- trunk/ippTools/share/addtool_find_processedexp_stack.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_processedexp_stack.sql	(revision 31375)
@@ -0,0 +1,6 @@
+SELECT
+    addProcessedExp.*,
+    addRun.workdir
+FROM addProcessedExp
+JOIN addRun
+    USING(add_id)
Index: trunk/ippTools/share/addtool_find_processedexp_staticsky.sql
===================================================================
--- trunk/ippTools/share/addtool_find_processedexp_staticsky.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_processedexp_staticsky.sql	(revision 31375)
@@ -0,0 +1,6 @@
+SELECT
+    addProcessedExp.*,
+    addRun.workdir
+FROM addProcessedExp
+JOIN addRun
+    USING(add_id)
Index: trunk/ippTools/share/addtool_find_sky_id.sql
===================================================================
--- trunk/ippTools/share/addtool_find_sky_id.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_sky_id.sql	(revision 31375)
@@ -0,0 +1,22 @@
+SELECT
+    staticskyRun.*
+FROM 
+     staticskyResult
+join staticSkyRun using (sky_id)
+join staticSkyInput using (stack_id)
+JOIN stackRun USING(stack_id)
+
+LEFT JOIN (SELECT sky_id       AS added_sky_id,
+                  addRun.dvodb AS previous_dvodb
+           FROM addRun
+JOIN staticskyRun on sky_id = stage_id
+          ) as foo
+     ON sky_id = added_sky_id 
+     AND stage = 'sky'
+     -- hook for qualifying the join on the previous_dvodb
+     AND %s
+WHERE
+    staticskyRun.state = 'full'
+    AND staticskyResult.quality = 0
+    AND added_exp_id IS NULL
+    -- addtool adds checks on exposure being added to the dvodb previously
Index: trunk/ippTools/share/addtool_find_sky_id_dvo.sql
===================================================================
--- trunk/ippTools/share/addtool_find_sky_id_dvo.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_sky_id_dvo.sql	(revision 31375)
@@ -0,0 +1,9 @@
+SELECT staticskyRun.* FROM staticskyResult
+JOIN staticskyRun USING(sky_id)
+WHERE staticskyRun.state = 'full' and staticskyResult.quality = 0
+    AND sky_id NOT IN (SELECT sky_id
+       FROM addRun
+       JOIN staticskyResult on staticskyResult.sky_id = addRun.stage_id
+       JOIN staticskyRun USING(sky_id)
+       WHERE addRun.stage = 'staticsky' AND %s
+      )
Index: trunk/ippTools/share/addtool_find_stack_id.sql
===================================================================
--- trunk/ippTools/share/addtool_find_stack_id.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_stack_id.sql	(revision 31375)
@@ -0,0 +1,19 @@
+SELECT
+    stackRun.*
+FROM stackSumSkyfile
+JOIN stackRun USING(stack_id)
+
+LEFT JOIN (SELECT stack_id       AS added_stack_id,
+                  addRun.dvodb AS previous_dvodb
+           FROM addRun
+JOIN stackRun on stack_id = stage_id
+          ) as foo
+     ON stack_id = added_stack_id 
+     AND stage = 'stack'
+     -- hook for qualifying the join on the previous_dvodb
+     AND %s
+WHERE
+    stackRun.state = 'full'
+    AND stackSumSkyfile.quality = 0
+    AND added_exp_id IS NULL
+    -- addtool adds checks on exposure being added to the dvodb previously
Index: trunk/ippTools/share/addtool_find_stack_id_dvo.sql
===================================================================
--- trunk/ippTools/share/addtool_find_stack_id_dvo.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_find_stack_id_dvo.sql	(revision 31375)
@@ -0,0 +1,9 @@
+SELECT stackRun.* FROM stackSumSkyfile
+JOIN stackRun USING(stack_id)
+WHERE stackRun.state = 'full' and stackSumSkyfile.quality = 0
+    AND stack_id NOT IN (SELECT stack_id
+       FROM addRun
+       JOIN stackInputSkyfile on stackInputSkyfile.stack_id = addRun.stage_id
+       JOIN stackRun USING(stack_id)
+       WHERE addRun.stage = 'stack' AND %s
+      )
Index: trunk/ippTools/share/addtool_queue_cam_id.sql
===================================================================
--- trunk/ippTools/share/addtool_queue_cam_id.sql	(revision 31242)
+++ trunk/ippTools/share/addtool_queue_cam_id.sql	(revision 31375)
@@ -2,5 +2,6 @@
     SELECT
         0,              -- add_id
-        cam_id,         -- cam_id
+	'cam',		-- stage
+        cam_id,         -- stage_id
         '%s',           -- state
         '%s',           -- workdir
Index: trunk/ippTools/share/addtool_queue_sky_id.sql
===================================================================
--- trunk/ippTools/share/addtool_queue_sky_id.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_queue_sky_id.sql	(revision 31375)
@@ -0,0 +1,21 @@
+INSERT INTO addRun
+    SELECT
+        0,              -- add_id
+        'staticsky',		-- stage
+        sky_id,         -- stage_id
+        '%s',           -- state
+        '%s',           -- workdir
+	'%s',           -- workdir_state
+        '%s',           -- reduction
+        '%s',           -- label
+        '%s',           -- data_group
+        '%s',           -- dvodb 
+        '%s',           -- note
+	%d,		-- image_only
+	%d,		-- minidvodb
+	'%s',           -- minidvodb_group 
+ 	'%s'	        -- minidvodb_name
+    FROM staticskyRun
+    WHERE
+        staticskyRun.state = 'full'
+        AND staticskyRun.sky_id = %lld
Index: trunk/ippTools/share/addtool_queue_stack_id.sql
===================================================================
--- trunk/ippTools/share/addtool_queue_stack_id.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_queue_stack_id.sql	(revision 31375)
@@ -0,0 +1,21 @@
+INSERT INTO addRun
+    SELECT
+        0,              -- add_id
+        'stack',		-- stage
+        stack_id,         -- stage_id
+        '%s',           -- state
+        '%s',           -- workdir
+	'%s',           -- workdir_state
+        '%s',           -- reduction
+        '%s',           -- label
+        '%s',           -- data_group
+        '%s',           -- dvodb 
+        '%s',           -- note
+	%d,		-- image_only
+	%d,		-- minidvodb
+	'%s',           -- minidvodb_group 
+ 	'%s'	        -- minidvodb_name
+    FROM stackRun
+    WHERE
+        stackRun.state = 'full'
+        AND stackRun.stack_id = %lld
Index: trunk/ippTools/share/addtool_revertprocessedexp_cam.sql
===================================================================
--- trunk/ippTools/share/addtool_revertprocessedexp_cam.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_revertprocessedexp_cam.sql	(revision 31375)
@@ -0,0 +1,10 @@
+DELETE FROM addProcessedExp
+USING addProcessedExp, addRun, camRun, chipRun, rawExp
+WHERE
+    addRun.add_id = addProcessedExp.add_id
+    AND addRun.stage_id = camRun.cam_id
+    AND camRun.chip_id = chipRun.chip_id
+    AND chipRun.exp_id = rawExp.exp_id
+    AND addProcessedExp.fault != 0
+    AND addRun.state = 'new'
+    AND addRun.stage = 'cam'
Index: trunk/ippTools/share/addtool_revertprocessedexp_stack.sql
===================================================================
--- trunk/ippTools/share/addtool_revertprocessedexp_stack.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_revertprocessedexp_stack.sql	(revision 31375)
@@ -0,0 +1,7 @@
+DELETE FROM addProcessedExp
+USING addProcessedExp, addRun
+WHERE
+    addRun.add_id = addProcessedExp.add_id
+    AND addProcessedExp.fault != 0
+    AND addRun.state = 'new'
+    AND addRun.stage = 'stack'
Index: trunk/ippTools/share/addtool_revertprocessedexp_staticsky.sql
===================================================================
--- trunk/ippTools/share/addtool_revertprocessedexp_staticsky.sql	(revision 31375)
+++ trunk/ippTools/share/addtool_revertprocessedexp_staticsky.sql	(revision 31375)
@@ -0,0 +1,7 @@
+DELETE FROM addProcessedExp
+USING addProcessedExp, addRun
+WHERE
+    addRun.add_id = addProcessedExp.add_id
+    AND addProcessedExp.fault != 0
+    AND addRun.state = 'new'
+    AND addRun.stage = 'staticsky'
