Index: /trunk/ippToPsps/jython/stackbatch.py
===================================================================
--- /trunk/ippToPsps/jython/stackbatch.py	(revision 38854)
+++ /trunk/ippToPsps/jython/stackbatch.py	(revision 38855)
@@ -5,4 +5,5 @@
 import sys
 import math
+import string
 
 import stilts
@@ -549,8 +550,11 @@
                 continue
 
-            cmfTable = filter + "SkyChip.xsrc"
-            mysTable = filter + "SkyChip_xsrc"
+            cmfTable = filter + "SkyChip_xsrc"
             if not cmfTable in self.tablesLoaded:
                 self.logger.infoPair("no xsrc data for filter" , filter) 
+                self.logger.infoPair("(did not find table in tablesLoaded)", cmfTable) 
+                for name in self.tablesLoaded:
+                    print "-- table: " + name
+                os._exit(3)
                 continue
 
@@ -566,10 +570,5 @@
 
             sql = sqlLine.makeEquals("WHERE a." + filter + "ippDetectID = b.IPP_IDET")
-
-            try:
-                self.scratchDb.execute(sql)
-            except:
-                self.logger.errorPair('failed sql',sql)
-                raise
+            self.scratchDb.execute(sql)
 
         self.deleteRowsWithNoStackData(tablename)
@@ -604,8 +603,4 @@
         tablename = "StackModelFit" + model
 
-        if self.config.camera == "simtest":
-            self.logger.infoPair("Skipping table for simtest:", tablename)
-            return
-
         self.logger.infoPair("Procesing table", tablename)
         self.insertDvoIDs(tablename, "StackObjectThin")
@@ -631,11 +626,14 @@
             return True
 
-        cmfTable = filter + "SkyChip.xfit"
-        mysTable = filter + "SkyChip_xfit"
+        cmfTable = filter + "SkyChip_xfit"
         if not cmfTable in self.tablesLoaded:
             self.logger.infoPair("no xfit data for filter" , filter) 
+            self.logger.infoPair("(did not find table in tablesLoaded)", cmfTable) 
+            for name in self.tablesLoaded:
+                print "-- table: " + name
+            os._exit(3)
             return True
 
-        if self.scratchDb.getRowCount(mysTable) <=0 :
+        if self.scratchDb.getRowCount(cmfTable) <=0 :
             self.logger.infoPair("no extended source information, trying to skip",filter)
             return True
@@ -646,5 +644,5 @@
         magtime = "%.5f" % (2.5*math.log10(float(header['EXPTIME'])))
 
-        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + mysTable + " AS b SET")
+        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET")
 
         sqlLine.group("a."+filter+"haveData",              "'1'")
@@ -773,8 +771,4 @@
         tablename = "StackPetrosian"
 
-        if self.config.camera == "simtest":
-            self.logger.infoPair("Skipping table for simtest:", tablename)
-            return
-
         self.logger.infoPair("Procesing table", tablename)
         self.insertDvoIDs(tablename, "StackObjectThin")
@@ -800,11 +794,14 @@
             return True
 
-        cmfTable = filter + "SkyChip.xsrc"
-        mysTable = filter + "SkyChip_xsrc"
+        cmfTable = filter + "SkyChip_xsrc"
         if not cmfTable in self.tablesLoaded:
             self.logger.infoPair("no xsrc data for filter" , filter) 
+            self.logger.infoPair("(did not find table in tablesLoaded)", cmfTable) 
+            for name in self.tablesLoaded:
+                print "-- table: " + name
+            os._exit(3)
             return True
 
-        if self.scratchDb.getRowCount(mysTable) <=0 :
+        if self.scratchDb.getRowCount(cmfTable) <=0 :
             self.logger.infoPair("no extended source information, trying to skip", filter)
             return True
@@ -820,5 +817,5 @@
 
         self.logger.infoPair("Adding", "petrosians for extended sources")
-        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + mysTable + " AS b SET")
+        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET")
 
         sqlLine.group("a."+filter+"haveData",         "'1'")
@@ -858,8 +855,4 @@
         tablename = "StackApFlx"
 
-        if self.config.camera == "simtest":
-            self.logger.infoPair("Skipping table for simtest:", tablename)
-            return
-
         self.logger.infoPair("Procesing table", tablename)
         self.insertDvoIDs(tablename, "StackObjectThin")
@@ -883,8 +876,4 @@
 
         tablename = "StackApFlxExGal" + version
-
-        if self.config.camera == "simtest":
-            self.logger.infoPair("Skipping table for simtest:", tablename)
-            return
 
         self.logger.infoPair("Procesing table", tablename)
@@ -954,8 +943,7 @@
 
         # set the flux values from the cmf file
-        cmfTable = filter + "SkyChip.xrad"
-        mysTable = filter + "SkyChip_xrad"
 
         # skip this table if it was not loaded from the cmf
+        cmfTable = filter + "SkyChip_xrad"
         if not cmfTable in self.tablesLoaded:
             self.logger.infoPair("no xrad data for filter" , filter) 
@@ -963,5 +951,5 @@
 
         # we have variable numbers of these columns. find out which are in use
-        sql = "DESCRIBE " + mysTable + " 'aper_fill_%'"
+        sql = "DESCRIBE " + cmfTable + " 'aper_fill_%'"
         rs = self.scratchDb.executeQuery(sql)
         rs.first()
@@ -984,8 +972,8 @@
         # get the exposure time for aperture fluxes
         header = self.headerSet[filter]
-        exptime = self.getKeyFloat(header, "%.5f", "EXPTIME")
+        exptimeString = str(self.getKeyFloat(header, "%.5f", "EXPTIME"))
 
         # generate the sql to do the necessary ops on the columns    
-        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + mysTable + " AS b SET ")
+        sqlLine = sqlUtility("UPDATE " + tablename + " AS a, " + cmfTable + " AS b SET ")
 
         sqlLine.group("a."+filter+"haveData", "'1'")
@@ -994,7 +982,7 @@
             pspsNum  = str(int(number) + 2)
             field = filter + prefix + "flxR" + pspsNum
-            sqlLine.group(field,          "b.APER_FLUX_"       + number + " / " + exptime)
-            sqlLine.group(field + "Err",  "b.APER_FLUX_ERR_"   + number + " / " + exptime)
-            sqlLine.group(field + "Std",  "b.APER_FLUX_STDEV_" + number + " / " + exptime)
+            sqlLine.group(field,          "b.APER_FLUX_"       + number + " / " + exptimeString)
+            sqlLine.group(field + "Err",  "b.APER_FLUX_ERR_"   + number + " / " + exptimeString)
+            sqlLine.group(field + "Std",  "b.APER_FLUX_STDEV_" + number + " / " + exptimeString)
             sqlLine.group(field + "Fill", "b.APER_FILL_"       + number)
             
@@ -1120,19 +1108,15 @@
             self.logger.infoPair("Creating indexes on", "IPP tables")
 
-            cmfTable = filter + "SkyChip.psf"
-            mysTable = filter + "SkyChip_psf"
-            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(mysTable, "IPP_IDET")
-
-            cmfTable = filter + "SkyChip.xfit"
-            mysTable = filter + "SkyChip_xfit"
-            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(mysTable, "IPP_IDET")
-
-            cmfTable = filter + "SkyChip.xrad"
-            mysTable = filter + "SkyChip_xrad"
-            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(mysTable, "IPP_IDET")
-
-            cmfTable = filter + "SkyChip.xsrc"
-            mysTable = filter + "SkyChip_xsrc"
-            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(mysTable, "IPP_IDET")
+            cmfTable = filter + "SkyChip_psf"
+            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(cmfTable, "IPP_IDET")
+
+            cmfTable = filter + "SkyChip_xfit"
+            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(cmfTable, "IPP_IDET")
+
+            cmfTable = filter + "SkyChip_xrad"
+            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(cmfTable, "IPP_IDET")
+
+            cmfTable = filter + "SkyChip_xsrc"
+            if cmfTable in self.tablesLoaded: self.scratchDb.createIndex(cmfTable, "IPP_IDET")
 
         return True
@@ -1351,4 +1335,6 @@
 
         self.tablesLoaded = []
+
+        transtable = string.maketrans(".","_")
 
         count = 0
@@ -1392,5 +1378,7 @@
                     self.logger.exception("Problem writing table '" + filter + table.name + "' to the database")
                       
-                self.tablesLoaded.append(table.name)
+                # headers (and thus table.name) are like SkyChip.psf, but mysql names are SkyChip_psf (converted automatically by stilts)
+                myTable = filter + table.name.replace(".", "_")
+                self.tablesLoaded.append(myTable)
 
         # XXX validate required tables (do we need _psf?, _xsrc? etc)
