Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 19276)
+++ trunk/ippTools/share/Makefile.am	(revision 19325)
@@ -88,9 +88,6 @@
      faketool_revertprocessedimfile.sql \
      faketool_unmasked.sql \
-     flatcorr_completely_processed_chiprun.sql \
-     flatcorr_create_tmp_chiprundone.sql \
-     flatcorr_find_completed_floatcorruns.sql \
-     flatcorr_find_processedimfiles.sql \
-     flatcorr_pending.sql \
+     flatcorr_chiprundone.sql \
+     flatcorr_pendingprocess.sql \
      magictool_addmask.sql \
      magictool_create_tmp_warpcomplete.sql \
Index: trunk/ippTools/share/flatcorr_chiprundone.sql
===================================================================
--- trunk/ippTools/share/flatcorr_chiprundone.sql	(revision 19325)
+++ trunk/ippTools/share/flatcorr_chiprundone.sql	(revision 19325)
@@ -0,0 +1,15 @@
+SELECT
+    corr_id,
+    cam_id,
+    chipRun.*
+FROM flatcorrRun
+JOIN flatcorrChipLink
+    USING(corr_id)
+JOIN chipRun
+    USING(chip_id)
+LEFT JOIN camRun
+    ON chipRun.chip_id = camRun.chip_id
+WHERE
+    flatcorrRun.state = 'new'
+    AND chipRun.state = 'full'
+    AND camRun.cam_id is NULL;
Index: trunk/ippTools/share/flatcorr_pendingprocess.sql
===================================================================
--- trunk/ippTools/share/flatcorr_pendingprocess.sql	(revision 19325)
+++ trunk/ippTools/share/flatcorr_pendingprocess.sql	(revision 19325)
@@ -0,0 +1,34 @@
+SELECT 
+  corr_id,
+  dvodb,
+  filter,
+  state,
+  workdir,
+  label,
+  reduction,
+  region
+  chip_count,
+  cam_count
+FROM 
+  (SELECT 
+     flatcorrRun.*,
+     flatcorrChipLink.corr_id as chip_corr_id,
+     count(flatcorrChipLink.chip_id) as chip_count
+   FROM flatcorrRun
+   JOIN flatcorrChipLink
+     ON flatcorrChipLink.corr_id = flatcorrRun.corr_id
+   GROUP BY
+     flatcorrChipLink.corr_id) AS t1
+LEFT JOIN
+  (SELECT 
+     flatcorrCamLink.corr_id as cam_corr_id,
+     count(flatcorrCamLink.cam_id) as cam_count
+   FROM flatcorrCamLink
+   JOIN camRun
+       ON flatcorrCamLink.cam_id = camRun.cam_id
+   WHERE camRun.state = 'full'
+   GROUP BY
+       flatcorrCamLink.corr_id) AS t2
+ON t1.chip_corr_id = t2.cam_corr_id
+WHERE chip_count = cam_count
+AND state = 'new'
Index: trunk/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_create_tables.sql	(revision 19276)
+++ trunk/ippTools/share/pxadmin_create_tables.sql	(revision 19325)
@@ -976,5 +976,15 @@
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
-CREATE TABLE flatcorrExp (
+-- XXX deprecate this table
+-- CREATE TABLE flatcorrExp (
+--         corr_id BIGINT,
+--         chip_id BIGINT,
+--         PRIMARY KEY(corr_id, chip_id),
+--         FOREIGN KEY (corr_id)  REFERENCES  flatcorrRun(corr_id),
+--         FOREIGN KEY (chip_id)  REFERENCES  chipRun(chip_id)
+-- ) ENGINE=innodb DEFAULT CHARSET=latin1;
+
+-- these two tables link the flatcorrRun to the associated chip and camera runs
+CREATE TABLE flatcorrChipLink (
         corr_id BIGINT,
         chip_id BIGINT,
@@ -982,4 +992,12 @@
         FOREIGN KEY (corr_id)  REFERENCES  flatcorrRun(corr_id),
         FOREIGN KEY (chip_id)  REFERENCES  chipRun(chip_id)
+) ENGINE=innodb DEFAULT CHARSET=latin1;
+
+CREATE TABLE flatcorrCamLink (
+        corr_id BIGINT,
+        cam_id BIGINT,
+        PRIMARY KEY(corr_id, cam_id),
+        FOREIGN KEY (corr_id)  REFERENCES  flatcorrRun(corr_id),
+        FOREIGN KEY (cam_id)  REFERENCES  camRun(cam_id)
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
