Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 18526)
+++ trunk/ippTools/share/Makefile.am	(revision 18561)
@@ -10,17 +10,27 @@
 	chiptool_donecleanup.sql \
 	chiptool_find_rawexp.sql \
-	chiptool_find_unprocessed_imfile.pl \
+	chiptool_pendingcleanupimfile.sql \
 	chiptool_pendingcleanuprun.sql \
-	chiptool_pendingcleanupimfile.sql \
 	chiptool_pendingimfile.sql \
 	chiptool_processedimfile.sql \
+	chiptool_revertprocessedimfile.sql \
 	chiptool_run.sql \
-	chiptool_revertprocessedimfile.sql \
 	chiptool_unmasked.sql \
 	detselect_search.sql \
 	detselect_select.sql \
+        dettool_addprocessedexp.sql \
+        dettool_childlessrun.sql \
+        dettool_definebydetrun.sql \
+        dettool_detrunsummary.sql \
 	dettool_find_completed_runs.sql \
+        dettool_input.sql \
+        dettool_normalizedexp.sql \
+        dettool_normalizedimfile.sql \
 	dettool_normalizedstat.sql \
+        dettool_pending.sql \
+        dettool_processedimfile.sql \
 	dettool_raw.sql \
+        dettool_residexp.sql \
+        dettool_residimfile.sql \
 	dettool_revertdetrunsummary.sql \
 	dettool_revertnormalizedexp.sql \
@@ -33,4 +43,5 @@
 	dettool_revertstacked.sql \
 	dettool_runs.sql \
+        dettool_stacked.sql \
 	dettool_start_new_iteration.sql \
 	dettool_stop_completed_correct_runs.sql \
@@ -38,4 +49,5 @@
 	dettool_tocorrectimfile.sql \
 	dettool_todetrunsummary.sql \
+        dettool_tonormalize.sql \
 	dettool_tonormalizedexp.sql \
 	dettool_tonormalizedstat.sql \
@@ -62,6 +74,9 @@
 	flatcorr_find_completed_floatcorruns.sql \
 	flatcorr_find_processedimfiles.sql \
+        flatcorr_pending.sql \
+        magictool_create_tmp_warpcomplete.sql \
 	magictool_find_complete_diffed_exposures.sql \
 	magictool_find_complete_warpruns.sql \
+        magictool_find_unmagiced.sql \
 	magictool_inputskyfile.sql \
 	magictool_totree.sql \
@@ -73,11 +88,16 @@
 	magictool_addmask.sql \
 	magictool_mask.sql \
+        pstamptool_addjob_otherjob.sql \
+        pstamptool_addjob_stampjob.sql \
+        pstamptool_datastore.sql \
+        pstamptool_pendingjob.sql \
+        pstamptool_pendingreq.sql \
 	pxadmin_create_tables.sql \
 	pxadmin_drop_tables.sql \
 	pztool_find_completed_exp.sql \
 	pztool_pendingimfile.sql \
-	pztool_revertcopied.sql \
 	pztool_revert_downloadimfile_faults.sql \
 	pztool_revert_fileset_faults.sql \
+	pztool_revertcopied.sql \
 	regtool_create_dup_table.sql \
 	regtool_pendingexp.sql \
@@ -95,7 +115,7 @@
 	warptool_exp.sql \
 	warptool_imfile.sql \
+	warptool_revertwarped.sql \
 	warptool_scmap.sql \
 	warptool_tooverlap.sql \
-	warptool_revertwarped.sql \
 	warptool_towarped.sql \
 	warptool_warped.sql
Index: trunk/ippTools/share/dettool_addprocessedexp.sql
===================================================================
--- trunk/ippTools/share/dettool_addprocessedexp.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_addprocessedexp.sql	(revision 18561)
@@ -0,0 +1,34 @@
+SELECT DISTINCT
+   detProcessedImfile.det_id,
+   detRun.iteration,
+   detRun.det_type,
+   detProcessedImfile.exp_id
+FROM detRun
+JOIN detInputExp
+   ON detRun.det_id = detInputExp.det_id
+   AND detRun.iteration = detInputExp.iteration
+JOIN rawExp
+   ON detInputExp.exp_id = rawExp.exp_id
+JOIN detProcessedImfile
+   ON detInputExp.det_id = detProcessedImfile.det_id
+   AND detInputExp.exp_id = detProcessedImfile.exp_id
+LEFT JOIN detProcessedExp
+   ON detInputExp.det_id = detProcessedExp.det_id
+   AND detProcessedImfile.exp_id= detProcessedExp.exp_id
+LEFT JOIN rawImfile
+   ON detInputExp.exp_id = rawImfile.exp_id
+   AND detProcessedImfile.class_id = rawImfile.class_id
+WHERE
+  detRun.state = 'run'
+  AND detRun.mode = 'master'
+  AND detProcessedExp.det_id IS NULL
+  AND detProcessedExp.exp_id IS NULL
+  AND detInputExp.include = 1
+  AND detRun.det_id = %s
+  AND detProcessedImfile.exp_id = '%s'
+GROUP BY
+   detProcessedImfile.class_id,
+   rawImfile.class_id,
+   detRun.det_id
+HAVING
+   COUNT(detProcessedImfile.class_id) = COUNT(rawImfile.class_id)
Index: trunk/ippTools/share/dettool_childlessrun.sql
===================================================================
--- trunk/ippTools/share/dettool_childlessrun.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_childlessrun.sql	(revision 18561)
@@ -0,0 +1,11 @@
+-- dettool -childlessrun
+
+SELECT DISTINCT
+   detRun.*
+ FROM detRun
+ LEFT JOIN detRun as foo
+   ON foo.parent = detRun.det_id
+ WHERE
+   detRun.state = 'stop'
+   AND detRun.mode = 'master'
+   AND foo.det_id IS NULL
Index: trunk/ippTools/share/dettool_definebydetrun.sql
===================================================================
--- trunk/ippTools/share/dettool_definebydetrun.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_definebydetrun.sql	(revision 18561)
@@ -0,0 +1,12 @@
+-- dettool -definebydetrun
+
+INSERT INTO detInputExp
+   SELECT
+       %d,
+       0,
+       detResidExp.exp_id,
+       detResidExp.accept
+   FROM detResidExp
+   JOIN rawExp
+       USING(exp_id)
+   WHERE det_id = %d
Index: trunk/ippTools/share/dettool_detrunsummary.sql
===================================================================
--- trunk/ippTools/share/dettool_detrunsummary.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_detrunsummary.sql	(revision 18561)
@@ -0,0 +1,9 @@
+SELECT DISTINCT
+   detRunSummary.*,
+   detRun.det_type,
+   detRun.mode
+ FROM detRun
+ JOIN detRunSummary
+   USING(det_id, iteration)
+ WHERE
+   detRun.state = 'run'
Index: trunk/ippTools/share/dettool_input.sql
===================================================================
--- trunk/ippTools/share/dettool_input.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_input.sql	(revision 18561)
@@ -0,0 +1,4 @@
+SELECT DISTINCT *
+ FROM detInputExp
+ JOIN rawExp
+ USING(exp_id)
Index: trunk/ippTools/share/dettool_normalizedexp.sql
===================================================================
--- trunk/ippTools/share/dettool_normalizedexp.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_normalizedexp.sql	(revision 18561)
@@ -0,0 +1,8 @@
+SELECT
+   detNormalizedExp.*
+ FROM detNormalizedExp
+ JOIN detRun
+   USING(det_id, iteration)
+ WHERE
+   detRun.state = 'run'
+   AND detRun.mode = 'master'
Index: trunk/ippTools/share/dettool_normalizedimfile.sql
===================================================================
--- trunk/ippTools/share/dettool_normalizedimfile.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_normalizedimfile.sql	(revision 18561)
@@ -0,0 +1,8 @@
+SELECT
+ detNormalizedImfile.*
+ FROM detNormalizedImfile
+ JOIN detRun
+   USING(det_id, iteration)
+ WHERE
+   detRun.state = 'run'
+   AND detRun.mode = 'master'
Index: trunk/ippTools/share/dettool_pending.sql
===================================================================
--- trunk/ippTools/share/dettool_pending.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_pending.sql	(revision 18561)
@@ -0,0 +1,10 @@
+-- dettool -pending : not sure this is still used (EAM : 2008.07.10)
+
+SELECT
+   rawExp.*
+ FROM rawExp
+ LEFT JOIN detInputExp
+   ON rawExp.exp_id = detInputExp.exp_id
+ WHERE
+    detInputExp.exp_id IS NULL
+    AND rawExp.object != 'object'
Index: trunk/ippTools/share/dettool_processedimfile.sql
===================================================================
--- trunk/ippTools/share/dettool_processedimfile.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_processedimfile.sql	(revision 18561)
@@ -0,0 +1,13 @@
+SELECT DISTINCT
+  detRun.det_type,
+  rawExp.exp_time,
+  detProcessedImfile.*
+FROM detProcessedImfile
+JOIN detRun
+  USING(det_id)
+JOIN detInputExp
+  ON detRun.det_id = detInputExp.det_id
+  AND detRun.iteration = detInputExp.iteration
+  AND detProcessedImfile.exp_id = detInputExp.exp_id
+JOIN rawExp
+  ON rawExp.exp_id = detProcessedImfile.exp_id
Index: trunk/ippTools/share/dettool_residexp.sql
===================================================================
--- trunk/ippTools/share/dettool_residexp.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_residexp.sql	(revision 18561)
@@ -0,0 +1,11 @@
+SELECT
+   detRun.mode,
+   detResidExp.*,
+   detInputExp.include
+ FROM detRun
+ JOIN detInputExp
+   USING(det_id, iteration)
+ JOIN detResidExp
+   USING(det_id, iteration, exp_id)
+ WHERE
+   detRun.state = 'run'
Index: trunk/ippTools/share/dettool_residimfile.sql
===================================================================
--- trunk/ippTools/share/dettool_residimfile.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_residimfile.sql	(revision 18561)
@@ -0,0 +1,11 @@
+SELECT
+   detRun.det_type,
+   detRun.mode,
+   detResidImfile.*,
+   rawExp.exp_time
+ FROM detResidImfile
+ JOIN detRun
+   USING(det_id, iteration)
+ JOIN rawExp
+   USING(exp_id)
+ WHERE
Index: trunk/ippTools/share/dettool_stacked.sql
===================================================================
--- trunk/ippTools/share/dettool_stacked.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_stacked.sql	(revision 18561)
@@ -0,0 +1,12 @@
+-- select detStackedImfile.*
+-- by:
+-- where det_id, iteration, class_id is not in detNormalizedImfile
+
+SELECT
+   detStackedImfile.*
+ FROM detStackedImfile
+ JOIN detRun
+   USING(det_id, iteration)
+ WHERE
+   detRun.state = 'run'
+   AND detRun.mode = 'master'
Index: trunk/ippTools/share/dettool_tonormalize.sql
===================================================================
--- trunk/ippTools/share/dettool_tonormalize.sql	(revision 18561)
+++ trunk/ippTools/share/dettool_tonormalize.sql	(revision 18561)
@@ -0,0 +1,27 @@
+SELECT DISTINCT
+   detRun.det_type,
+   detRun.workdir,
+   rawExp.camera,
+   detStackedImfile.uri,
+   detNormalizedStatImfile.*
+ FROM detRun
+ JOIN detStackedImfile
+   USING(det_id, iteration)
+ JOIN detInputExp
+   USING(det_id, iteration)
+ JOIN rawExp
+   ON detInputExp.exp_id = rawExp.exp_id
+ JOIN detNormalizedStatImfile
+   ON detStackedImfile.det_id = detNormalizedStatImfile.det_id
+   AND detStackedImfile.iteration = detNormalizedStatImfile.iteration
+   AND detStackedImfile.class_id = detNormalizedStatImfile.class_id
+ LEFT JOIN detNormalizedImfile
+   ON detNormalizedStatImfile.det_id = detNormalizedImfile.det_id
+   AND detNormalizedStatImfile.iteration = detNormalizedImfile.iteration
+   AND detNormalizedStatImfile.class_id = detNormalizedImfile.class_id
+ WHERE
+   detNormalizedImfile.det_id IS NULL
+   AND detNormalizedImfile.iteration IS NULL
+   AND detNormalizedImfile.class_id IS NULL
+   AND detNormalizedStatImfile.fault = 0
+   AND detRun.state = 'run'
Index: trunk/ippTools/share/dettool_tonormalizedexp.sql
===================================================================
--- trunk/ippTools/share/dettool_tonormalizedexp.sql	(revision 18526)
+++ trunk/ippTools/share/dettool_tonormalizedexp.sql	(revision 18561)
@@ -1,2 +1,4 @@
+-- this is used by both 'tonormalizedexp' and 'addnormalizedexp'
+
 SELECT
     *
Index: trunk/ippTools/share/dettool_toresidexp.sql
===================================================================
--- trunk/ippTools/share/dettool_toresidexp.sql	(revision 18526)
+++ trunk/ippTools/share/dettool_toresidexp.sql	(revision 18561)
@@ -1,2 +1,4 @@
+-- this is used by both 'toresidexp' and 'addresidexp'
+
 -- which returns a list of exposures for which all component class ids have had
 -- residuals created.  This list includes the detrend id, iteration, exposure
Index: trunk/ippTools/share/dettool_toresidimfile.sql
===================================================================
--- trunk/ippTools/share/dettool_toresidimfile.sql	(revision 18526)
+++ trunk/ippTools/share/dettool_toresidimfile.sql	(revision 18561)
@@ -40,4 +40,5 @@
     AND detRun.mode = 'master'
     AND detNormalizedImfile.fault = 0
+    AND detNormalizedExp.fault = 0
     AND detResidImfile.det_id IS NULL
     AND detResidImfile.iteration IS NULL
@@ -73,4 +74,6 @@
     detRun.state = 'run'
     AND detRun.mode = 'verify'
+    -- AND detNormalizedImfile.fault = 0
+    -- AND detNormalizedExp.fault = 0
     AND detResidImfile.det_id IS NULL
     AND detResidImfile.iteration IS NULL
Index: trunk/ippTools/share/difftool_queue.sql
===================================================================
--- trunk/ippTools/share/difftool_queue.sql	(revision 18526)
+++ trunk/ippTools/share/difftool_queue.sql	(revision 18561)
@@ -3,4 +3,5 @@
         stackRun.tess_id,
         stackRun.stack_id,
+	diffInputSkyfile.template,
         warpSkyfile.warp_id
 FROM stackSumSkyfile
Index: trunk/ippTools/share/magictool_create_tmp_warpcomplete.sql
===================================================================
--- trunk/ippTools/share/magictool_create_tmp_warpcomplete.sql	(revision 18561)
+++ trunk/ippTools/share/magictool_create_tmp_warpcomplete.sql	(revision 18561)
@@ -0,0 +1,3 @@
+CREATE TEMPORARY TABLE warpComplete
+ (warp_id BIGINT, skycell_id VARCHAR(64), tess_id VARCHAR(64),
+ PRIMARY KEY(warp_id, skycell_id, tess_id)) ENGINE=MEMORY;
Index: trunk/ippTools/share/pstamptool_addjob_otherjob.sql
===================================================================
--- trunk/ippTools/share/pstamptool_addjob_otherjob.sql	(revision 18561)
+++ trunk/ippTools/share/pstamptool_addjob_otherjob.sql	(revision 18561)
@@ -0,0 +1,3 @@
+INSERT INTO pstampJob
+ (req_id, rownum, state, jobType, uri, outputBase, fault)
+ VALUES( %s, '%s', '%s', '%s', '%s', '%s', %s)
Index: trunk/ippTools/share/pstamptool_addjob_stampjob.sql
===================================================================
--- trunk/ippTools/share/pstamptool_addjob_stampjob.sql	(revision 18561)
+++ trunk/ippTools/share/pstamptool_addjob_stampjob.sql	(revision 18561)
@@ -0,0 +1,3 @@
+INSERT INTO pstampJob
+ (req_id, rownum, state, jobType, uri, outputBase, fault, args)
+ VALUES( %s, '%s', '%s', '%s', '%s', '%s', %s, '%s')
Index: trunk/ippTools/share/pstamptool_datastore.sql
===================================================================
--- trunk/ippTools/share/pstamptool_datastore.sql	(revision 18561)
+++ trunk/ippTools/share/pstamptool_datastore.sql	(revision 18561)
@@ -0,0 +1,1 @@
+SELECT * FROM pstampDataStore
Index: trunk/ippTools/share/pstamptool_pendingjob.sql
===================================================================
--- trunk/ippTools/share/pstamptool_pendingjob.sql	(revision 18561)
+++ trunk/ippTools/share/pstamptool_pendingjob.sql	(revision 18561)
@@ -0,0 +1,4 @@
+SELECT
+ *
+ FROM pstampJob
+ WHERE state = 'run'
Index: trunk/ippTools/share/pstamptool_pendingreq.sql
===================================================================
--- trunk/ippTools/share/pstamptool_pendingreq.sql	(revision 18561)
+++ trunk/ippTools/share/pstamptool_pendingreq.sql	(revision 18561)
@@ -0,0 +1,4 @@
+SELECT
+ *
+ FROM pstampRequest
+ WHERE state = 'new'
