Index: trunk/ippTools/share/addtool_find_diff_id_dvo.sql
===================================================================
--- trunk/ippTools/share/addtool_find_diff_id_dvo.sql	(revision 38358)
+++ trunk/ippTools/share/addtool_find_diff_id_dvo.sql	(revision 38359)
@@ -3,6 +3,12 @@
      diffInputSkyfile 
 JOIN diffSkyfile using (diff_id, skycell_id) 
-JOIN diffRun using (diff_id)
-
+JOIN diffRun using (diff_id,tess_id)
+JOIN skycell using (skycell_id, tess_id) 
+     	     	   JOIN warpRun on (warp1 = warp_id 
+                   AND diffInputSkyfile.skycell_id = skycell_id) 
+                   JOIN fakeRun using (fake_id) 
+                   JOIN camRun using (cam_id) 
+                   JOIN chipRun using (chip_id)  
+                   JOIN rawExp using (exp_id) 
 WHERE diffRun.state = 'full' and diffSkyfile.quality = 0
     AND diffRun.diff_id NOT IN (SELECT diffRun.diff_id
Index: trunk/ippTools/src/addtool.c
===================================================================
--- trunk/ippTools/src/addtool.c	(revision 38358)
+++ trunk/ippTools/src/addtool.c	(revision 38359)
@@ -167,4 +167,5 @@
         return false;
     }
+    
     // PXOPT_LOOKUP_STR(stage,       config->args, "-stage", false, false);
     PXOPT_LOOKUP_STR(workdir,     config->args, "-set_workdir", false, false);
@@ -182,5 +183,10 @@
     PXOPT_LOOKUP_BOOL(pretend,    config->args, "-pretend", false);
     PXOPT_LOOKUP_BOOL(simple,     config->args, "-simple", false);
-
+   
+    PXOPT_LOOKUP_F32(minra,     config->args, "-set_minra", false, false);
+    PXOPT_LOOKUP_F32(maxra,     config->args, "-set_maxra", false, false);
+    PXOPT_LOOKUP_F32(mindec,     config->args, "-set_mindec", false, false);
+    PXOPT_LOOKUP_F32(maxdec,     config->args, "-set_maxdec", false, false);
+   
     // prevent queueing an addRun if a given exposure has already been added to
     // the given dvo database
@@ -288,5 +294,7 @@
 	// this is silly, there is no dvodb in skycalRun...?
       }
-    }
+      
+
+     }
 
     if (strcmp(stage,"fullforce") == 0) {
@@ -326,4 +334,13 @@
         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
         psStringAppend(&query, " AND %s", whereClause);
+	if (strcmp(stage,"diff") == 0) {
+	  //diff needs the ra /deg stuff
+	  psStringAppend(&query, " AND radeg >= %f", minra);
+	  psStringAppend(&query, " AND radeg <= %f", maxra);
+	  psStringAppend(&query, " AND decdeg >= %f", mindec);
+	  psStringAppend(&query, " AND decdeg <= %f", maxdec);
+
+	}
+
         psFree(whereClause);
     } else {
@@ -373,4 +390,5 @@
       //needs to be checked HAF xxx
       if (strcmp(stage,"diff") == 0) {
+
 	psStringAppend(&query, " GROUP BY diff_id, diff_skyfile_id ");  //this needs checking, but I think it shoul be fine? it groups by lots of stuff (including stack - we only want one of each stack in there
       }
@@ -380,5 +398,5 @@
       }
 
-
+      psError(PS_ERR_UNKNOWN, false , query);
 
 
Index: trunk/ippTools/src/addtoolConfig.c
===================================================================
--- trunk/ippTools/src/addtoolConfig.c	(revision 38358)
+++ trunk/ippTools/src/addtoolConfig.c	(revision 38359)
@@ -76,4 +76,10 @@
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_dist_group", 0,   "define new dist_group", NULL);
     psMetadataAddStr(definebyqueryArgs, PS_LIST_TAIL, "-set_note", 0,         "define new note", NULL);
+
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-set_minra", 0,         "min ra for query", 0);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-set_maxra", 0,         "max ra for query", 360);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-set_mindec", 0,         "min dec for query", -90);
+    psMetadataAddF32(definebyqueryArgs, PS_LIST_TAIL, "-set_maxdec", 0,         "max dec for query", 90);
+
 
     // -updaterun
