Index: trunk/ippToPsps/jython/scratchdb.py
===================================================================
--- trunk/ippToPsps/jython/scratchdb.py	(revision 33235)
+++ trunk/ippToPsps/jython/scratchdb.py	(revision 33236)
@@ -23,14 +23,13 @@
 
         if useFull:
-            self.dvoMetaTable = "dvoMetaFull"
             self.dvoDetectionTable = "dvoDetectionFull"
             self.dvoDoneTable = "dvoDone"
             self.dvoSkyTable = "dvoSkyTable"
-            self.dvoImageTable = "dvoImages"
+            self.dvoImagesTable = "dvoImagesFull"
         else:
-            self.dvoMetaTable = "dvoMeta"
+            self.dvoImagesTable = "dvoImages"
             self.dvoDetectionTable = "dvoDetection"
 
-        self.logger.debugPair("Using DVO meta table", self.dvoMetaTable)
+        self.logger.debugPair("Using DVO images table", self.dvoImagesTable)
         self.logger.debugPair("Using DVO detection table", self.dvoDetectionTable)
 
@@ -114,9 +113,9 @@
     Gets imageID from extern ID 
     ''' 
-    def getImageIDFromExternID(self, sourceID, externID): 
+    def getImageIDFromExternID(self, externID): 
                
         imageID = -1 
                
-        sql = "SELECT imageID FROM " + self.dvoMetaTable + " WHERE sourceID = %s AND externID = %s" % (sourceID, externID) 
+        sql = "SELECT IMAGE_ID FROM " + self.dvoImagesTable + " WHERE EXTERN_ID = %s" % (externID) 
         try: 
             rs = self.executeQuery(sql)   
@@ -131,9 +130,9 @@
     Gets DVO image flags
     '''
-    def getDvoImageFlags(self, sourceID, externID):
+    def getDvoImageFlags(self, externID):
 
         flags = 0
 
-        sql = "SELECT flags FROM " + self.dvoMetaTable + " WHERE sourceID = %s AND externID = %s" % (sourceID, externID)
+        sql = "SELECT FLAGS FROM " + self.dvoImagesTable + " WHERE EXTERN_ID = %s" % (externID)
         try:
             rs = self.executeQuery(sql)  
@@ -147,9 +146,9 @@
     Gets photcode (aka photoCalID from dvo table)
     '''
-    def getPhotoCalID(self, sourceID, externID):
+    def getPhotoCalID(self, externID):
 
         photcode = -1
 
-        sql = "SELECT photcode FROM " + self.dvoMetaTable + " WHERE sourceID = %s AND externID = %s" % (sourceID, externID)
+        sql = "SELECT PHOTCODE FROM " + self.dvoImagesTable + " WHERE EXTERN_ID = %s" % (externID)
         try:
             rs = self.executeQuery(sql)  
@@ -170,11 +169,11 @@
 
     '''
-    Inserts a new sourceID/imageID combo into dvoMeta
+    Inserts a new sourceID/imageID combo into dvoImages
     '''
     def insertNewDvoExternID(self, sourceID, externID):
 
-        sql = "INSERT INTO dvoMeta ( \
-               sourceID, \
-               externID \
+        sql = "INSERT INTO " + self.dvoImagesTable + " ( \
+               SOURCE_ID, \
+               EXTERN_ID \
                ) VALUES (\
                " + str(sourceID) + ", \
@@ -359,22 +358,18 @@
     '''
     def createDvoTables(self):
-
-        self.logger.debugPair("Creating DVO table", "dvoMeta")
-
-        sql = "DROP TABLE dvoMeta"
+    
+        # drop and create Images table
+        self.logger.debugPair("Creating DVO table", self.dvoImagesTable)
+        sql = "DROP TABLE " + self.dvoImagesTable
         try: self.execute(sql)
         except: pass
         
-        sql = "DROP TABLE dvoDetection"
-        try: self.execute(sql)
-        except: pass
-
-        sql = "CREATE TABLE dvoMeta ( \
-               sourceID INT, \
-               imageID INT, \
-               externID INT, \
-               flags INT, \
-               photcode INT, \
-               PRIMARY KEY (sourceID, imageID, externID) \
+        sql = "CREATE TABLE " + self.dvoImagesTable + " ( \
+               SOURCE_ID SMALLINT, \
+               IMAGE_ID INT, \
+               EXTERN_ID INT, \
+               FLAGS INT, \
+               PHOTCODE SMALLINT, \
+               PRIMARY KEY (IMAGE_ID, EXTERN_ID) \
                )"
 
@@ -383,7 +378,12 @@
             self.logger.error("Unable to create DVO meta-data database table")
 
+        # now detection table
+        self.logger.debugPair("Creating DVO table", self.dvoDetectionTable)
+        sql = "DROP TABLE " + self.dvoDetectionTable
+        try: self.execute(sql)
+        except: pass
+
         self.logger.debugPair("Creating DVO table", "dvoDetection")
         sql = "CREATE TABLE dvoDetection ( \
-               sourceID INT, \
                imageID INT, \
                ippDetectID BIGINT, \
@@ -392,5 +392,5 @@
                objID BIGINT, \
                flags INT, \
-               PRIMARY KEY (sourceID, imageID, ippDetectID) \
+               PRIMARY KEY (imageID, ippDetectID) \
                )"
 
@@ -401,7 +401,41 @@
 
     '''
-    Resets only the detection table info from DVO ingest
-    '''
-    def resetOnlyDetectionDvoTables(self):
+    Removes the provided DVO FITS files from from dvoDone and dvoDetection tables
+    Returns a count of the number of detections deleted
+    '''
+    def purgeTheseDvoRegions(self, regions):
+
+        detectionCount = self.getRowCount(self.dvoDetectionTable)
+        for region in regions:
+           
+           fileId = self.getDvoCpmFileIdForRegion(region)
+
+           if fileId < 0:
+               self.logger.errorPair("Unable to get file ID to delete " + region + " from", self.dvoDoneTable)
+               continue
+
+           sql = "DELETE FROM " + self.dvoDetectionTable + " WHERE fileID = " + str(fileId)
+           try: self.execute(sql)
+           except: 
+               self.logger.errorPair("Unable to delete from " + self.dvoDetectionTable, "for file ID: %d" % fileId)
+               return False
+
+           sql = "DELETE FROM " + self.dvoDoneTable + " WHERE region = '" + region + "'"
+           try: self.execute(sql)
+           except:
+               self.logger.errorPair("Unable to delete " + region + " from", self.dvoDoneTable)
+
+        finalCount = detectionCount - self.getRowCount(self.dvoDetectionTable)
+
+        # after a big delete, we should OPTIMIZE the table
+        self.logger.infoPair("Running OPTIMIZE on ", self.dvoDetectionTable)
+        if finalCount > 0: self.optimizeTable(self.dvoDetectionTable)
+
+        return finalCount
+           
+    '''
+    Drops DVO stuff pertaining to detections
+    '''
+    def resetDvoDetectionTables(self):
 
        self.logger.infoPair("Deleting detections from", self.dvoDoneTable)
@@ -412,79 +446,34 @@
            return False
 
-       self.logger.infoPair("Deleting detections from", self.dvoDetectionTable)
-       sql = "DELETE FROM " + self.dvoDetectionTable
+       self.logger.infoPair("Dropping table", self.dvoDetectionTable)
+       self.dropTable(self.dvoDetectionTable)
+
+       self.logger.infoPair("Creating table", self.dvoDetectionTable)
+       sql = "CREATE TABLE " + self.dvoDetectionTable + " LIKE dvoDetection"
+       try: self.execute(sql)
+       except:
+           self.logger.errorPair("Unable to create table", self.dvoDetectionTable)
+           return False
+
+       # TODO
+       sql = "ALTER TABLE " + self.dvoDetectionTable + " ADD fileID INT NOT NULL"
        try: self.execute(sql)
        except: 
-           self.logger.errorPair("Unable to delete from", self.dvoDetectionTable)
+           self.logger.errorPair("Unable to add fileID column to ", self.dvoDetectionTable)
            return False
 
-       return True
-
-    '''
-    Removes the provided DVO FITS files from from dvoDone and dvoDetection tables
-    Returns a count of the number of detections deleted
-    '''
-    def purgeTheseDvoRegions(self, regions):
-
-        detectionCount = self.getRowCount(self.dvoDetectionTable)
-        for region in regions:
-           
-           fileId = self.getDvoCpmFileIdForRegion(region)
-
-           if fileId < 0:
-               self.logger.errorPair("Unable to get file ID to delete " + region + " from", self.dvoDoneTable)
-               continue
-
-           sql = "DELETE FROM " + self.dvoDetectionTable + " WHERE fileID = " + str(fileId)
-           try: self.execute(sql)
-           except: 
-               self.logger.errorPair("Unable to delete from " + self.dvoDetectionTable, "for file ID: %d" % fileId)
-               return False
-
-           sql = "DELETE FROM " + self.dvoDoneTable + " WHERE region = '" + region + "'"
-           try: self.execute(sql)
-           except:
-               self.logger.errorPair("Unable to delete " + region + " from", self.dvoDoneTable)
-
-        finalCount = detectionCount - self.getRowCount(self.dvoDetectionTable)
-
-        # after a big delete, we should OPTIMIZE the table
-        self.logger.infoPair("Running OPTIMIZE on ", self.dvoDetectionTable)
-        if finalCount > 0: self.optimizeTable(self.dvoDetectionTable)
-
-        return finalCount
-           
-
     '''
     Drops and recreates tables necessary for dvoToMySQL program. Be very careful before using this...
     '''
-    def resetDvoToMysqlTables(self):
-
-       self.logger.infoPair("Dropping table", self.dvoMetaTable)
-       self.dropTable(self.dvoMetaTable)
-       self.logger.infoPair("Dropping table", self.dvoDetectionTable)
-       self.dropTable(self.dvoDetectionTable)
+    def resetAllDvoTables(self):
+
+       self.logger.infoPair("Dropping table", self.dvoImagesTable)
+       self.dropTable(self.dvoImagesTable) 
        self.logger.infoPair("Dropping table", self.dvoSkyTable)
        self.dropTable(self.dvoSkyTable) 
        self.logger.infoPair("Dropping table", self.dvoDoneTable)
        self.dropTable(self.dvoDoneTable) 
-       self.logger.infoPair("Dropping table", self.dvoImageTable)
-       self.dropTable(self.dvoImageTable) 
-
-       self.logger.infoPair("Creating table", self.dvoMetaTable)
-       sql = "CREATE TABLE " + self.dvoMetaTable + " LIKE dvoMeta"
-       try: self.execute(sql)
-       except: self.logger.errorPair("Unable to create table", self.dvoMetaTable)
-
-       self.logger.infoPair("Creating table", self.dvoDetectionTable)
-       sql = "CREATE TABLE " + self.dvoDetectionTable + " LIKE dvoDetection"
-       try: self.execute(sql)
-       except: self.logger.errorPair("Unable to create table", self.dvoDetectionTable)
-
-       # TODO
-       sql = "ALTER TABLE " + self.dvoDetectionTable + " ADD fileID INT NOT NULL"
-       try: self.execute(sql)
-       except: self.logger.errorPair("Unable to add fileID column to ", self.dvoDetectionTable)
-
+
+       # create dvoDone table
        self.logger.infoPair("Creating table", self.dvoDoneTable )
        sql = "CREATE TABLE " + self.dvoDoneTable + " (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, region VARCHAR(100), path VARCHAR(1000), modifiedDate BIGINT, size BIGINT)"
@@ -492,4 +481,5 @@
        except: self.logger.errorPair("Unable to create table", self.dvoDoneTable)
 
+       self.resetDvoDetectionTables()
 
     '''
