Index: trunk/ippTools/share/staticskytool_definebyquery_inputs.sql
===================================================================
--- trunk/ippTools/share/staticskytool_definebyquery_inputs.sql	(revision 33860)
+++ trunk/ippTools/share/staticskytool_definebyquery_inputs.sql	(revision 33919)
@@ -6,4 +6,5 @@
   FROM stackRun
   JOIN stackSumSkyfile USING(stack_id)
+  JOIN skycell USING(tess_id, skycell_id)
   WHERE stackRun.state = 'full'
       AND stackSumSkyfile.fault = 0
Index: trunk/ippTools/share/staticskytool_definebyquery_select.sql
===================================================================
--- trunk/ippTools/share/staticskytool_definebyquery_select.sql	(revision 33860)
+++ trunk/ippTools/share/staticskytool_definebyquery_select.sql	(revision 33919)
@@ -10,4 +10,5 @@
   FROM stackRun
   JOIN stackSumSkyfile USING(stack_id)
+  JOIN skycell using(tess_id, skycell_id)
   WHERE stackRun.state = 'full'
       AND stackSumSkyfile.fault = 0
@@ -29,4 +30,5 @@
     JOIN stackRun USING(stack_id)
     JOIN stackSumSkyfile USING(stack_id)
+    JOIN skycell USING(tess_id, skycell_id)
     WHERE 1
     -- restrict by selected filters, stackSumSkyfile.good_frac, stackRun.skycell_id, stackRun.label
Index: trunk/ippTools/share/staticskytool_result.sql
===================================================================
--- trunk/ippTools/share/staticskytool_result.sql	(revision 33860)
+++ trunk/ippTools/share/staticskytool_result.sql	(revision 33919)
@@ -6,7 +6,10 @@
     stackRun.tess_id,
     stackRun.skycell_id,
-    count(stackRun.filter) AS num_filters
+    count(stackRun.filter) AS num_filters,
+    skycell.glong,
+    skycell.glat
 FROM staticskyRun
 JOIN staticskyResult USING(sky_id)
 JOIN staticskyInput USING(sky_id)
-JOIN stackRun using(stack_id)
+JOIN stackRun USING(stack_id)
+LEFT JOIN skycell USING(tess_id, skycell_id)
Index: trunk/ippTools/src/staticskytool.c
===================================================================
--- trunk/ippTools/src/staticskytool.c	(revision 33860)
+++ trunk/ippTools/src/staticskytool.c	(revision 33919)
@@ -29,4 +29,5 @@
 
 #include "pxtools.h"
+#include "pxspace.h"
 #include "staticskytool.h"
 
@@ -131,4 +132,6 @@
     pxAddLabelSearchArgs(config, whereMD, "-select_data_group",    "stackRun.data_group",       "LIKE");
     pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_glat_min",      "skycell.glat",              ">=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_glat_max",      "skycell.glat",              "<=");
 
     // find the number of requested filters:
@@ -390,7 +393,13 @@
 
     psMetadata *where = psMetadataAlloc();
-    PXOPT_COPY_S64(config->args, where, "-sky_id",  "sky_id",   "==");
-    PXOPT_COPY_STR(config->args, where, "-label",   "label",    "==");
-    PXOPT_COPY_STR(config->args, where, "-state",   "state",    "==");
+    PXOPT_COPY_S64(config->args, where, "-sky_id",      "sky_id",   "==");
+    PXOPT_COPY_STR(config->args, where, "-label",       "staticskyRun.label",    "==");
+    PXOPT_COPY_STR(config->args, where, "-state",       "staticskyRun.state",    "==");
+    PXOPT_COPY_STR(config->args, where, "-tess_id",     "stackRun.tess_id",    "==");
+    PXOPT_COPY_STR(config->args, where, "-skycell_id",  "stackRun.skycell_id",    "==");
+    if (!pxskycellAddWhere(config, where)) {
+        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
+        return false;
+    }
     if (!psListLength(where->list)) {
         psFree(where);
@@ -399,5 +408,5 @@
     }
 
-    psString query = psStringCopy("UPDATE staticskyRun");
+    psString query = psStringCopy("UPDATE staticskyRun JOIN staticskyInput USING(sky_id) JOIN stackRun using(stack_id) JOIN skycell USING(tess_id, skycell_id)");
 
     // pxUpdateRun gets parameters from config->args and updates
@@ -638,4 +647,5 @@
     PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE");
     PXOPT_COPY_S16(config->args, where, "-fault",      "staticskyResult.fault", "==");
+    pxskycellAddWhere(config, where);
     PXOPT_LOOKUP_S32(num_filters, config->args, "-num_filters", false, false);
 
Index: trunk/ippTools/src/staticskytoolConfig.c
===================================================================
--- trunk/ippTools/src/staticskytoolConfig.c	(revision 33860)
+++ trunk/ippTools/src/staticskytoolConfig.c	(revision 33919)
@@ -55,4 +55,6 @@
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_data_group", PS_META_DUPLICATE_OK, "search by stackRun data_group (LIKE comparison, multiple OK)", NULL);
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_glat_min", 0, "define min galactic latitude", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_glat_max", 0, "define max galactic latitude", NAN);
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-set_workdir", 0, "define workdir (required)", NULL);
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-set_label", 0, "define label (required)", NULL);
@@ -73,4 +75,7 @@
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL);
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tess_id", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell_id", NULL);
+    pxskycellAddArguments(updaterunArgs);
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_label", 0, "define new value for label", NULL);
     psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-set_state", 0, "define new state", NULL);
@@ -113,4 +118,5 @@
     psMetadataAddStr(resultArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group (LIKE comparison)", NULL);
     psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-num_filters", 0, "search by number of filters in the inputs (>=)", 0);
+    pxskycellAddArguments(resultArgs);
     psMetadataAddS16(resultArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0);
     psMetadataAddU64(resultArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
