Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/Makefile.am
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/Makefile.am	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/Makefile.am	(revision 37403)
@@ -471,4 +471,5 @@
 	laptool_revertgroup.sql \
 	laptool_filtersforgroup.sql \
+	laptool_revertsass.sql \
 	vptool_find_rawexp.sql \
 	vptool_pendingimfile.sql \
@@ -484,5 +485,8 @@
 	releasetool_definerelstack.sql \
 	releasetool_definerelstack_with_skycal.sql \
+	releasetool_deleterelexp.sql \
+	releasetool_deleterelstack.sql \
 	releasetool_listrelstack.sql \
+	releasetool_setrelstackcalibratedfromskycal.sql \
 	releasetool_summary.sql \
 	releasetool_definerelgroup_select_lap.sql \
@@ -508,3 +512,4 @@
 	remotetool_definebyquery_warp.sql \
 	remotetool_definebyquery_stack.sql \
+	remotetool_dropcomponent.sql \
 	remotetool_updatepoll.sql
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/camtool_find_processedexp.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/camtool_find_processedexp.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/camtool_find_processedexp.sql	(revision 37403)
@@ -1,4 +1,5 @@
 SELECT
     camProcessedExp.*,
+    HEX(IFNULL(camProcessedExp.astrom_chips, 0)) AS good_astrom_chips,
     camRun.workdir,
     camRun.label,
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/laptool_exposures.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/laptool_exposures.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/laptool_exposures.sql	(revision 37403)
@@ -1,7 +1,10 @@
-select DISTINCT V3.*,
-       diffRun.diff_id,diffRun.state as diffRun_state,
-       coalesce(CONVERT(sum(diffSkyfile.quality != 0),SIGNED),0) AS diff_bad_quality,
-       coalesce(CONVERT(count(diffSkyfile.diff_id),SIGNED),0) AS diff_component_count
-       FROM
+-- Join the diff information
+-- select DISTINCT V3.*,
+--       diffRun.diff_id,diffRun.state as diffRun_state,
+--       coalesce(CONVERT(sum(diffSkyfile.quality != 0),SIGNED),0) AS diff_bad_quality,
+--       coalesce(CONVERT(count(diffSkyfile.diff_id),SIGNED),0) AS diff_component_count
+--       FROM
+select V3.*,-1 as diff_id ,"full" as diffRun_state,0 as diff_bad_quality,0 AS diff_component_count FROM
+-- Join the warp information
 ( select V2.*,
        warpRun.warp_id,warpRun.state as warpRun_state,
@@ -10,4 +13,5 @@
        warpRun.magicked
        FROM
+-- Join the camera and fake information 
 ( select V1.*,
        camRun.cam_id,camRun.state as camRun_state,
@@ -15,4 +19,5 @@
        coalesce(CONVERT(count(camProcessedExp.cam_id),SIGNED),0) AS cam_component_count,
        fakeRun.fake_id,fakeRun.state as fakeRun_state FROM
+-- Get all the lap, exposure, chip stage information
 ( SELECT DISTINCT
        lap_id,lapRun.tess_id,projection_cell,filter,lapRun.state as lapRun_state, lapRun.registered, lapRun.fault, lapRun.label, lapRun.dist_group,
@@ -26,16 +31,19 @@
        GROUP BY lap_id,exp_id
        ) AS V1
+-- End lap/exposure/chip
        LEFT JOIN camRun USING(chip_id) LEFT JOIN camProcessedExp USING(cam_id)
        LEFT JOIN fakeRun USING(cam_id)
        GROUP BY lap_id,exp_id
   ) AS V2
+-- End camera/fake
   LEFT JOIN warpRun USING(fake_id) LEFT JOIN warpSkyfile USING(warp_id)
   GROUP BY lap_id,exp_id
 ) AS V3
-LEFT JOIN
-  (SELECT DISTINCT diff_id,warp1,warp2 FROM diffInputSkyfile) AS DI ON
-  (DI.warp1 = warp_id OR DI.warp2 = warp_id)
-LEFT JOIN diffRun USING(diff_id)
-LEFT JOIN diffSkyfile USING(diff_id)
+-- End warp
+-- LEFT JOIN
+--  (SELECT DISTINCT diff_id,warp1,warp2 FROM diffInputSkyfile) AS DI ON
+--  (DI.warp1 = warp_id OR DI.warp2 = warp_id)
+-- LEFT JOIN diffRun USING(diff_id)
+-- LEFT JOIN diffSkyfile USING(diff_id)
 GROUP BY lap_id,exp_id
 
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/laptool_revertsass.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/laptool_revertsass.sql	(revision 37403)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/laptool_revertsass.sql	(revision 37403)
@@ -0,0 +1,1 @@
+UPDATE lapRun SET final_sass_id = NULL,quick_sass_id = NULL
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/pxadmin_create_tables.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/pxadmin_create_tables.sql	(revision 37403)
@@ -523,4 +523,5 @@
     quality SMALLINT NOT NULL DEFAULT 0,
     background_model SMALLINT,
+    astrom_chips BIGINT,
     PRIMARY KEY(cam_id),
     KEY(fault),
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_definerelexp.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_definerelexp.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_definerelexp.sql	(revision 37403)
@@ -18,2 +18,3 @@
 
 WHERE previousrelexp.relexp_id IS NULL
+    AND camRun.state = 'full'
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_deleterelexp.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_deleterelexp.sql	(revision 37403)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_deleterelexp.sql	(revision 37403)
@@ -0,0 +1,4 @@
+DELETE FROM relExp USING relExp, ippRelease, rawExp, camRun
+WHERE relExp.rel_id = ippRelease.rel_id
+    AND relExp.exp_id = rawExp.exp_id
+    AND relExp.cam_id = camRun.cam_id
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_deleterelstack.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_deleterelstack.sql	(revision 37403)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_deleterelstack.sql	(revision 37403)
@@ -0,0 +1,3 @@
+DELETE FROM relStack USING relStack, ippRelease, stackRun
+WHERE relStack.rel_id = ippRelease.rel_id
+    AND relStack.stack_id = stackRun.stack_id
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_setrelstackcalibratedfromskycal.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_setrelstackcalibratedfromskycal.sql	(revision 37403)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/releasetool_setrelstackcalibratedfromskycal.sql	(revision 37403)
@@ -0,0 +1,10 @@
+UPDATE relStack
+    JOIN ippRelease USING(rel_id)
+    JOIN skycell USING(tess_id, skycell_id)
+    JOIN stackRun USING(stack_id, tess_id, skycell_id)  
+    JOIN skycalRun USING(stack_id)  -- join to skycal using stack_id not skycal_id ...
+    JOIN skycalResult ON skycalRun.skycal_id = skycalResult.skycal_id
+SET relStack.skycal_id = skycalRun.skycal_id,    -- ... because we set skycal_id here
+    relStack.zpt_obs = skycalResult.zpt_obs,
+    relStack.zpt_stdev = skycalResult.zpt_stdev,
+    relStack.state = 'calibrated'
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_cam.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_cam.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_cam.sql	(revision 37403)
@@ -1,12 +1,21 @@
-SELECT 
-       cam_id AS stage_id
-FROM camRun 
-       LEFT JOIN remoteComponent ON (remoteComponent.stage_id = camRun.cam_id) 
-       LEFT JOIN remoteRun ON (
-       	    remoteComponent.remote_id = remoteRun.remote_id AND 
-	    remoteRun.label = camRun.label
-	    )
+SELECT stage_id FROM
+
+( SELECT cam_id AS stage_id
+    FROM camRun
 WHERE
-camRun.state = 'new' AND
-remoteRun.stage = 'camera' AND
-remote_id IS NULL
+camRun.state = 'new'
+-- where hook %s
+GROUP BY cam_id
+) AS W
+
+LEFT JOIN
+
+(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state 
+   FROM remoteRun 
+   JOIN remoteComponent USING (remote_id)
+WHERE
+remoteRun.stage = 'camera'
+-- where hook %s
+) AS R
+USING (stage_id)
+WHERE R.remote_id IS NULL
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_chip.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_chip.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_chip.sql	(revision 37403)
@@ -1,14 +1,24 @@
-SELECT 
-       chip_id AS stage_id
-FROM chipRun 
-       LEFT JOIN remoteComponent ON (remoteComponent.stage_id = chipRun.chip_id) 
-       LEFT JOIN remoteRun ON (
-       	    remoteComponent.remote_id = remoteRun.remote_id AND 
-	    remoteRun.label = chipRun.label
-	    )
+SELECT stage_id FROM
+
+( SELECT chip_id AS stage_id
+    FROM chipRun
 WHERE
-chipRun.state = 'new' AND
-(remoteRun.stage = 'chip' OR remoteRun.stage IS NULL) AND
-remoteComponent.remote_id IS NULL
+chipRun.state = 'new'
+-- where hook %s
+GROUP BY chip_id
+) AS W
+
+LEFT JOIN
+
+(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state 
+   FROM remoteRun 
+   JOIN remoteComponent USING (remote_id)
+WHERE
+remoteRun.stage = 'chip'
+-- where hook %s
+) AS R
+USING (stage_id)
+WHERE R.remote_id IS NULL
+
 
 
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_stack.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_stack.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_stack.sql	(revision 37403)
@@ -1,12 +1,21 @@
-SELECT 
-       stack_id AS stage_id
-FROM stackRun 
-       LEFT JOIN remoteComponent ON (remoteComponent.stage_id = stackRun.stack_id) 
-       LEFT JOIN remoteRun ON (
-       	    remoteComponent.remote_id = remoteRun.remote_id AND 
-	    remoteRun.label = stackRun.label
-	    )
+SELECT stage_id FROM
+
+( SELECT stack_id AS stage_id
+    FROM stackRun
 WHERE
-stackRun.state = 'new' AND
-remoteRun.stage = 'stack' AND
-remote_id IS NULL
+stackRun.state = 'new'
+-- where hook %s
+GROUP BY stack_id
+) AS W
+
+LEFT JOIN
+
+(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state 
+   FROM remoteRun 
+   JOIN remoteComponent USING (remote_id)
+WHERE
+remoteRun.stage = 'stack'
+-- where hook %s
+) AS R
+USING (stage_id)
+WHERE R.remote_id IS NULL
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_warp.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_warp.sql	(revision 36680)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_definebyquery_warp.sql	(revision 37403)
@@ -1,12 +1,24 @@
-SELECT 
-       warp_id AS stage_id
-FROM warpRun 
-       LEFT JOIN remoteComponent ON (remoteComponent.stage_id = warpRun.warp_id) 
-       LEFT JOIN remoteRun ON (
-       	    remoteComponent.remote_id = remoteRun.remote_id AND 
-	    remoteRun.label = warpRun.label
-	    )
+SELECT stage_id FROM
+
+( SELECT warp_id AS stage_id, count(warpSkyCellMap.skycell_id) AS N
+    FROM warpRun
+    LEFT JOIN warpSkyCellMap USING(warp_id)
 WHERE
-warpRun.state = 'new' AND
-remoteRun.stage = 'warp' AND
-remote_id IS NULL
+warpRun.state = 'new'
+-- where hook %s
+GROUP BY warp_id
+HAVING N != 0
+) AS W
+
+LEFT JOIN
+
+(SELECT remote_id,remoteRun.stage,remoteRun.label,remoteComponent.stage_id,remoteRun.state 
+   FROM remoteRun 
+   JOIN remoteComponent USING (remote_id)
+WHERE
+remoteRun.stage = 'warp'
+-- where hook %s
+) AS R
+USING (stage_id)
+WHERE R.remote_id IS NULL
+
Index: branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_dropcomponent.sql
===================================================================
--- branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_dropcomponent.sql	(revision 37403)
+++ branches/eam_branches/ps2-tc3-20130727/ippTools/share/remotetool_dropcomponent.sql	(revision 37403)
@@ -0,0 +1,4 @@
+DELETE FROM remoteComponent
+WHERE 
+remote_id = %ld AND
+stage_id  = %ld
