Index: trunk/ippToPsps/jython/gpc1db.py
===================================================================
--- trunk/ippToPsps/jython/gpc1db.py	(revision 36697)
+++ trunk/ippToPsps/jython/gpc1db.py	(revision 36709)
@@ -87,5 +87,5 @@
 
             stage = "skycal"
-            sql = "SELECT DISTINCT stack_id, radeg, decdeg FROM skycalRun \
+            sql = "SELECT DISTINCT sky_id, radeg, decdeg FROM skycalRun \
                    JOIN addRun ON(skycalRun.skycal_id = addRun.stage_id) \
                    JOIN minidvodbRun USING(minidvodb_name) \
@@ -499,2 +499,40 @@
 
 
+    '''
+    grabs the stackID for a particular skyId, filter, and dvodb
+    the mapping of stack_id from sky_id is not unique unless
+    joined to the dvodb 
+    '''
+    def getStackIDsFromSkyID(self,dvoDb,skyID,filter):
+
+        self.logger.infoPair("finding stack_ids from gpc1 for sky_id ", skyID)
+
+        sql = "SELECT DISTINCT stack_id from skycalRun \
+               JOIN addRun ON(skycalRun.skycal_id = addRun.stage_id) \
+               JOIN minidvodbRun USING(minidvodb_name) \
+               JOIN minidvodbProcessed USING(minidvodb_id) \
+               JOIN mergedvodbRun USING(minidvodb_id) \
+               JOIN mergedvodbProcessed USING(merge_id) \
+               JOIN stackRun USING (stack_id) \
+               WHERE mergedvodbRun.mergedvodb = '" + dvoDb + "' \
+               AND minidvodbRun.state = 'merged' \
+               AND minidvodbProcessed.fault = 0 \
+               AND mergedvodbRun.state = 'full' \
+               AND mergedvodbProcessed.fault = 0  \
+               AND addRun.stage = 'skycal' \
+               AND addRun.state = 'full' \
+               AND filter = '" + filter + "' \
+               AND sky_id = '" + skyID + "'"
+              
+        try:
+            rs = self.executeQuery(sql)
+            while (rs.next()):
+                rows.append([rs.getInt(1)])
+            rs.close()    
+        except:    
+            self.logger.exception("can't query for stackid in DVO")
+            self.logger.infoPair("failed sql:", sql)
+            return rows
+
+        self.logger.infoPair("number of stackIDs found ", len(rows))
+        return rows
