Index: trunk/ippToPsps/jython/scratchdb.py
===================================================================
--- trunk/ippToPsps/jython/scratchdb.py	(revision 34638)
+++ trunk/ippToPsps/jython/scratchdb.py	(revision 35097)
@@ -19,6 +19,17 @@
     Constructor
     '''
-    def __init__(self, logger, config, dbName=None):
-        super(ScratchDb, self).__init__(logger, config, "localdatabase", dbName)
+    def __init__(self, logger, config, dbVersion, dbName=None):
+
+        # create gpc1 database objects
+        if (config.test): 
+            dbType = "localdatabase_test"
+        else:
+            dbType = "localdatabase"
+
+        if not dbName:
+            dbName = config.getDbName(dbType)
+            dbName += dbVersion
+
+        super(ScratchDb, self).__init__(logger, config, dbType, dbName)
 
         self.dvoDoneTable = "dvoDone"
@@ -340,10 +351,14 @@
             rs.first()
             if rs.getInt(1) < 50:
+                # print "bad astromety"
                 self.logger.debug("Bad astrometric solution for",  ota)
                 return False
             else:
+                # print "good astromety"
                 return True
         except:
+            # print "query failed"
             self.logger.debug("Unable to check astrometric solution")
+            return False
 
         return True
@@ -355,11 +370,15 @@
     def createDvoTables(self):
     
+        dvoImagesTable = "dvoImages"
+        dvoDetectionTable = "dvoDetections"
+
         # drop and create Images table
-        self.logger.debugPair("Creating DVO table", self.dvoImagesTable)
-        sql = "DROP TABLE " + self.dvoImagesTable
+        self.logger.debugPair("Creating DVO table", dvoImagesTable)
+        sql = "DROP TABLE " + dvoImagesTable
+
         try: self.execute(sql)
         except: pass
         
-        sql = "CREATE TABLE " + self.dvoImagesTable + " ( \
+        sql = "CREATE TABLE " + dvoImagesTable + " ( \
                SOURCE_ID SMALLINT, \
                IMAGE_ID INT, \
@@ -375,6 +394,6 @@
 
         # now detection table
-        self.logger.debugPair("Creating DVO table", self.dvoDetectionTable)
-        sql = "DROP TABLE " + self.dvoDetectionTable
+        self.logger.debugPair("Creating DVO table", dvoDetectionTable)
+        sql = "DROP TABLE " + dvoDetectionTable
         try: self.execute(sql)
         except: pass
@@ -396,11 +415,14 @@
                raErr REAL, \
                decErr REAL, \
-               PRIMARY KEY (imageID, ippDetectID) \
-               )"
+               PRIMARY KEY (imageID, ippDetectID), \
+               KEY (objID, detectID) \
+             )"
 
         try: self.execute(sql)
         except: 
             self.logger.error("Unable to create DVO detection database table")
-        self.makeColumnUnique("dvoDetection", "objID") 
+
+        # XXX EAM : for the parallel mode, dvoDetection requires duplicate objID values!
+        # self.makeColumnUnique("dvoDetection", "objID") 
 
     '''
@@ -479,14 +501,16 @@
        self.createIndex(self.dvoDetectionTable, "fileID")
 
-       # now add a delete cascading foreign key constraint on fileID
-       sql = "ALTER TABLE dvoDetectionFull \
+       # XXX : this should be based on choice of useStilts (which is set in dvo.py and must be moved)
+       if (False):
+           # now add a delete cascading foreign key constraint on fileID
+           sql = "ALTER TABLE dvoDetectionFull \
               ADD CONSTRAINT fk_fileID \
               FOREIGN KEY (fileID) \
               REFERENCES dvoDone(id) \
               ON DELETE CASCADE"
-       try: self.execute(sql)
-       except: 
-           self.logger.errorPair("Unable to create foreign key on", self.dvoDoneTable)
-           return False
+           try: self.execute(sql)
+           except: 
+               self.logger.errorPair("Unable to create foreign key on", self.dvoDoneTable)
+               return False
 
        return True
