Index: trunk/ippToPsps/jython/stackbatch.py
===================================================================
--- trunk/ippToPsps/jython/stackbatch.py	(revision 36718)
+++ trunk/ippToPsps/jython/stackbatch.py	(revision 36719)
@@ -200,13 +200,25 @@
        
        # delete PSPS tables
+       self.logger.infoPair("dropping table:","gStackMeta")
        self.scratchDb.dropTable("gStackMeta")
+       self.logger.infoPair("dropping table:","rStackMeta")
        self.scratchDb.dropTable("rStackMeta")
+       self.logger.infoPair("dropping table:","iStackMeta")
        self.scratchDb.dropTable("iStackMeta")
+       self.logger.infoPair("dropping table:","zStackMeta")
        self.scratchDb.dropTable("zStackMeta")
+       self.logger.infoPair("dropping table:","yStackMeta")
        self.scratchDb.dropTable("yStackMeta")
+       self.logger.infoPair("dropping table:","StackObject")
 
        self.scratchDb.dropTable("StackObject")
+       self.logger.infoPair("dropping table:","StackModelFit")
+              
        self.scratchDb.dropTable("StackModelFit")
+       self.logger.infoPair("dropping table:","StackApFlx")
+
        self.scratchDb.dropTable("StackApFlx")
+       self.logger.infoPair("dropping table:","StackToImage")
+
        self.scratchDb.dropTable("StackToImage")
              # self.testprint()
@@ -508,7 +520,29 @@
     Populates the StackMeta table, mainly from dictionary values found in IPP FITS header
     '''
-    def populateStackMeta(self,filter):
+    def populateStackMeta(self,filterName):
 
         self.logger.infoPair("Procesing table", "StackMeta")
+
+        # this should work : set header into (grizy)header and run from there
+        if filterName == 'g.00000':
+            self.header = self.gheader
+            tablename = 'gStackMeta'
+            stackmetaid = self.gstackID
+        if filterName == 'r.00000':
+            tablename = 'rStackMeta'
+            self.header = self.rheader
+            stackmetaid = self.rstackID
+        if filterName == 'i.00000':
+            tablename = 'iStackMeta'
+            self.header = self.iheader
+            stackmetaid = self.istackID
+        if filterName == 'z.00000':
+            tablename = 'zStackMeta'
+            self.header = self.zheader
+            stackmetaid = self.zstackID
+        if filterName == 'y.00000':
+            tablename = 'yStackMeta'
+            self.header = self.yheader
+            stackmetaid = self.ystackID
 
         self.fwhm_maj    = self.safeDictionaryAccess(self.header, 'FWHM_MAJ')
@@ -522,7 +556,13 @@
         # print "psfmodel    = ", self.psfmodel
 
-        sql = "INSERT INTO StackMeta (\
+        #make a table
+
+        sql = "CREATE TABLE " + tablename + " LIKE StackMeta"
+        try: self.scratchDb.execute(sql)
+        except: pass
+
+        sql = "INSERT INTO " + tablename + " (\
         stackMetaID \
-        ,skycellID \
+        ,skyCellID \
         ,photoCalID \
         ,photoZero \
@@ -544,9 +584,9 @@
         ,pc002002 \
          ) VALUES ( \
-        " + str(self.id) + " \
+        " + str(stackmetaid) + " \
         ," + self.skycell + " \
         ," + str(self.scratchDb.getPhotoCalID(self.header['IMAGEID'])) + " \
         ," + self.header['FPA.ZP'] + " \
-        ," + self.expTime + " \
+        ," + self.header['EXPTIME'] + " \
         ,'" + self.psfmodel   + "' \
         ," + str(self.fwhm_maj)    + " \
@@ -566,9 +606,9 @@
         )"
         self.scratchDb.execute(sql)
-        self.scratchDb.updateAllRows("StackMeta", "batchID", str(self.batchID))
-        self.scratchDb.updateAllRows("StackMeta", "surveyID", str(self.surveyID))
-        self.scratchDb.updateFilterID("StackMeta", self.filter)
-        self.scratchDb.updateAllRows("StackMeta", "dataRelease", str(self.skychunk.dataRelease))
-        self.updateStackTypeID("StackMeta")
+        self.scratchDb.updateAllRows(tablename, "batchID", str(self.batchID))
+        self.scratchDb.updateAllRows(tablename, "surveyID", str(self.surveyID))
+        self.scratchDb.updateFilterID(tablename, filterName)
+        self.scratchDb.updateAllRows(tablename, "dataRelease", str(self.skychunk.dataRelease))
+        self.updateStackTypeID(tablename)
 
     '''
@@ -578,4 +618,29 @@
 
         self.logger.infoPair("Procesing table", "StackObject")
+        
+        
+
+
+
+
+        self.logger.infoPair("inserting non-filter dependent items into", "StackObject")
+
+        #this is dvo crap
+        #sql = "INSERT INTO StackObject(\
+        #      objID, \
+        #      gcobjID, \
+        #      ippObjID, \
+        #      surveyID, \
+        #      skyCellID, \
+        #      randomStackObjID, \
+        #      stackDetectRowID, \
+        #      dvoRegionID, \
+        #      dataRelease) SELECT \
+        #      -999,
+        #      -999,
+        #      -999,
+        #      ,
+              
+        
 
         # insert all the detections
@@ -1005,10 +1070,36 @@
 
         return True
+    '''
+    Insert objid (from dvo) into table
+    '''
+    def insertDvoIDs(self, table, filterName):
+        self.logger.infoPair("getting imageID for ","filter")
+        if (filterName == 'g.00000'):
+            self.header=self.gheader
+        if (filterName == 'r.00000'):
+            self.header=self.rheader
+        if (filterName == 'i.00000'):
+            self.header=self.iheader
+        if (filterName == 'z.00000'):
+            self.header=self.zheader
+        if (filterName == 'y.00000'):
+            self.header=self.yheader
+
+        imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
+        self.logger.infoPair("obtained","imageID")
+        self.logger.debug("Updating table '" + table + "' with DVO IDs...")
+        sql = "INSERT IGNORE INTO " + table + " ( \
+               objID ) \
+               SELECT (objID) FROM " + self.scratchDb.dvoDetectionTable + " ( \
+               WHERE b.imageID = " + str(imageID)
+        self.scratchDb.execute(sql)
+    
+
 
     '''
     Updates provided table with DVO IDs from DVO table
     '''
-    def updateDvoIDs(self, table):
-        self.logger.infoPair("getting","imageID")
+    def updateDvoIDs(self, table, filterName):
+        self.logger.infoPair("getting imageID for ","filter")
         imageID = self.scratchDb.getImageIDFromExternID(self.header['IMAGEID'])
         self.logger.infoPair("obtained","imageID")
@@ -1055,17 +1146,42 @@
              if not self.getIDsFromDVO():
                 return False
-        self.logger.infoPair("populating","gStackMeta")    
-        self.populateStackMeta("g.00000")
-        self.logger.infoPair("populating","rStackMeta")    
-        self.populateStackMeta("r.00000")
-        self.logger.infoPair("populating","iStackMeta")    
-        self.populateStackMeta("i.00000")
-        self.logger.infoPair("populating","zStackMeta")    
-        self.populateStackMeta("z.00000")
-        self.logger.infoPair("populating","yStackMeta")    
-        self.populateStackMeta("y.00000")
-
-        ##self.logger.infoPair("populating","StackObject") 
-        ##self.populateStackObject()
+        #do some basics first
+        # populate stack meta per filter
+        # insert objid per filter to each table           
+
+
+        if self.gstackID > 0:        
+            self.logger.infoPair("populating","gStackMeta")    
+            self.populateStackMeta("g.00000")
+            self.insertDvoIDs("StackObject","g.00000")
+            self.insertDvoIDs("StackModelFit","g.00000")
+            self.insertDvoIDs("StackApFlx","g.00000")
+        if self.rstackID > 0:    
+            self.logger.infoPair("populating","rStackMeta")    
+            self.populateStackMeta("r.00000")
+            self.insertDvoIDs("StackObject","r.00000")
+            self.insertDvoIDs("StackModelFit","r.00000")
+            self.insertDvoIDs("StackApFlx","r.00000")
+        if self.istackID > 0:    
+            self.logger.infoPair("populating","iStackMeta")    
+            self.populateStackMeta("i.00000")
+            self.insertDvoIDs("StackObject","i.00000")
+            self.insertDvoIDs("StackModelFit","i.00000")
+            self.insertDvoIDs("StackApFlx","i.00000")
+        if self.zstackID > 0:    
+            self.logger.infoPair("populating","zStackMeta")    
+            self.populateStackMeta("z.00000")
+            self.insertDvoIDs("StackObject","z.00000")
+            self.insertDvoIDs("StackModelFit","z.00000")
+            self.insertDvoIDs("StackApFlx","z.00000")
+        if self.ystackID > 0:    
+            self.logger.infoPair("populating","yStackMeta")    
+            self.populateStackMeta("y.00000")
+            self.insertDvoIDs("StackObject","y.00000")
+            self.insertDvoIDs("StackModelFit","y.00000")
+            self.insertDvoIDs("StackApFlx","y.00000")
+
+        self.logger.infoPair("populating","StackObject") 
+        self.populateStackObject()
         
         ##if self.stackType != "NIGHTLY_STACK": 
