Index: branches/eam_branches/ipp-20100621/ippTools/src/addtool.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/addtool.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/addtool.c	(revision 28980)
@@ -144,23 +144,25 @@
     PXOPT_LOOKUP_BOOL(simple,     config->args, "-simple", false);
 
-
-
-    // find the cam_id of all the exposures that we want to queue up.
-    psString bare_query = pxDataGet("addtool_find_cam_id.sql");
-    if (!bare_query) {
-        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
-        psFree(where);
-        return false;
-    }
-
     // prevent queueing an addRun if a given exposure has already been added to
     // the given dvo database
     psString dvodb_string = NULL;
+    psString bare_query = NULL;
     if (dvodb) {
-        // user supplied dvodb
-        psStringAppend(&dvodb_string, "(previous_dvodb = '%s')", dvodb);
+      psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_cam_id_dvo.sql\n", dvodb);
+        // find the cam_id of all the exposures that we want to queue up.
+        bare_query = pxDataGet("addtool_find_cam_id_dvo.sql");
+	// user supplied dvodb
+	psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb);
     } else {
+        psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_cam_id.sql\n");
+        // find the cam_id of all the exposures that we want to queue up.
+        bare_query = pxDataGet("addtool_find_cam_id.sql");
         // inherit dvodb from camRun, avoid matching NULL
         psStringAppend(&dvodb_string, "(camRun.dvodb IS NOT NULL AND previous_dvodb = camRun.dvodb)");
+    }
+    if (!bare_query) {
+        psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement");
+	psFree(where);
+	return false;
     }
     // Take the bare query and add the dvodb selector
Index: branches/eam_branches/ipp-20100621/ippTools/src/bgtool.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/bgtool.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/bgtool.c	(revision 28980)
@@ -39,4 +39,5 @@
 static bool advancechipMode(pxConfig *config);
 static bool revertchipMode(pxConfig *config);
+static bool listchipMode(pxConfig *config);
 static bool definewarpMode(pxConfig *config);
 static bool updatewarpMode(pxConfig *config);
@@ -47,4 +48,5 @@
 static bool advancewarpMode(pxConfig *config);
 static bool revertwarpMode(pxConfig *config);
+static bool listwarpMode(pxConfig *config);
 static bool tocleanchipMode(pxConfig *config);
 static bool cleanedchipMode(pxConfig *config);
@@ -100,4 +102,5 @@
         MODECASE(BGTOOL_MODE_ADVANCECHIP, advancechipMode);
         MODECASE(BGTOOL_MODE_REVERTCHIP,  revertchipMode);
+        MODECASE(BGTOOL_MODE_LISTCHIP,    listchipMode);
         MODECASE(BGTOOL_MODE_DEFINEWARP,  definewarpMode);
         MODECASE(BGTOOL_MODE_UPDATEWARP,  updatewarpMode);
@@ -108,4 +111,5 @@
         MODECASE(BGTOOL_MODE_ADVANCEWARP, advancewarpMode);
         MODECASE(BGTOOL_MODE_REVERTWARP,  revertwarpMode);
+        MODECASE(BGTOOL_MODE_LISTWARP,    listwarpMode);
         MODECASE(BGTOOL_MODE_TOCLEANCHIP, tocleanchipMode);
         MODECASE(BGTOOL_MODE_CLEANEDCHIP, cleanedchipMode);
@@ -907,4 +911,67 @@
     int numDeleted = psDBAffectedRows(config->dbh);
     psLogMsg("bgtool", PS_LOG_INFO, "Deleted %d chipBackgroundImfiles", numDeleted);
+
+    return true;
+}
+static bool listchipMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_S64(config->args, where, "-chip_bg_id", "chipBackgroundRun.chip_bg_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-class_id", "chipProcessedImfile.class_id", "==");
+
+    // chip_bg_id is required
+    PXOPT_LOOKUP_S64(chip_bg_id, config->args, "-chip_bg_id", true, false);
+
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+
+    psString query = pxDataGet("bgtool_listchip.sql");
+    if (!query) {
+        psError(psErrorCodeLast(), false, "failed to retreive SQL statement");
+        return false;
+    }
+
+    psString whereStr = psStringCopy("");
+    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+    psStringAppend(&query, "\nWHERE %s", whereClause);
+    psFree(whereClause);
+    psFree(where);
+
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(psErrorCodeLast(), false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(whereStr);
+    psFree(query);
+
+    psArray *output = p_psDBFetchResult(config->dbh);
+    if (!output) {
+        psError(psErrorCodeLast(), false, "Unable to fetch result of query %s", query);
+        return false;
+    }
+    if (!psArrayLength(output)) {
+        psTrace("bgtool", PS_LOG_INFO, "no rows found");
+        psFree(output);
+        return true;
+    }
+
+    if (psArrayLength(output)) {
+        if (!ippdbPrintMetadatas(stdout, output, "chipProcessedImfile", !simple)) {
+            psError(psErrorCodeLast(), false, "failed to print array");
+            psFree(output);
+            return false;
+        }
+    }
+
+    psFree(output);
 
     return true;
@@ -1686,4 +1753,64 @@
     return true;
 }
+static bool listwarpMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_S64(config->args, where, "-warp_bg_id", "warpBackgroundRun.warp_bg_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyfile.skycell_id", "==");
+
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+
+    psString query = pxDataGet("bgtool_listwarp.sql");
+    if (!query) {
+        psError(psErrorCodeLast(), false, "failed to retreive SQL statement");
+        return false;
+    }
+
+    psString whereStr = psStringCopy("");
+    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+    psStringAppend(&query, "\nWHERE %s", whereClause);
+    psFree(whereClause);
+    psFree(where);
+
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(psErrorCodeLast(), false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(whereStr);
+    psFree(query);
+
+    psArray *output = p_psDBFetchResult(config->dbh);
+    if (!output) {
+        psError(psErrorCodeLast(), false, "Unable to fetch result of query %s", query);
+        return false;
+    }
+    if (!psArrayLength(output)) {
+        psTrace("bgtool", PS_LOG_INFO, "no rows found");
+        psFree(output);
+        return true;
+    }
+
+    if (psArrayLength(output)) {
+        if (!ippdbPrintMetadatas(stdout, output, "warpSkyfile", !simple)) {
+            psError(psErrorCodeLast(), false, "failed to print array");
+            psFree(output);
+            return false;
+        }
+    }
+
+    psFree(output);
+
+    return true;
+}
 
 static bool tocleanwarpMode(pxConfig *config)
Index: branches/eam_branches/ipp-20100621/ippTools/src/bgtool.h
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/bgtool.h	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/bgtool.h	(revision 28980)
@@ -34,4 +34,5 @@
     BGTOOL_MODE_ADVANCECHIP,
     BGTOOL_MODE_REVERTCHIP,
+    BGTOOL_MODE_LISTCHIP,
     // Warp stage
     BGTOOL_MODE_DEFINEWARP,
@@ -43,4 +44,5 @@
     BGTOOL_MODE_ADVANCEWARP,
     BGTOOL_MODE_REVERTWARP,
+    BGTOOL_MODE_LISTWARP,
     // Cleanups
     BGTOOL_MODE_TOCLEANCHIP,
Index: branches/eam_branches/ipp-20100621/ippTools/src/bgtoolConfig.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/bgtoolConfig.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/bgtoolConfig.c	(revision 28980)
@@ -184,4 +184,11 @@
     psMetadataAddS16(revertchipArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0);
     psMetadataAddBool(revertchipArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false);
+
+    // -listchip
+    psMetadata *listchipArgs = psMetadataAlloc();
+    psMetadataAddS64(listchipArgs, PS_LIST_TAIL, "-chip_bg_id", 0, "search by chip_bg_id (required)", 0);
+    psMetadataAddStr(listchipArgs, PS_LIST_TAIL, "-class_id",  0, "search by class_id", NULL);
+    psMetadataAddBool(listchipArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
+    psMetadataAddU64(listchipArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
 
     // -tocleanchip
@@ -347,4 +354,11 @@
     psMetadataAddBool(revertwarpArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false);
 
+    // -listwarp
+    psMetadata *listwarpArgs = psMetadataAlloc();
+    psMetadataAddS64(listwarpArgs, PS_LIST_TAIL, "-warp_bg_id", 0, "search by warp_bg_id (required)", 0);
+    psMetadataAddStr(listwarpArgs, PS_LIST_TAIL, "-skycell_id",  0, "search by skycell_id", NULL);
+    psMetadataAddBool(listwarpArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
+    psMetadataAddU64(listwarpArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
+
     // -tocleanwarp
     psMetadata *tocleanwarpArgs = psMetadataAlloc();
@@ -382,4 +396,5 @@
     PXOPT_ADD_MODE("-advancechip", "", BGTOOL_MODE_ADVANCECHIP, advancechipArgs);
     PXOPT_ADD_MODE("-revertchip",  "", BGTOOL_MODE_REVERTCHIP,  revertchipArgs);
+    PXOPT_ADD_MODE("-listchip",    "", BGTOOL_MODE_LISTCHIP,    listchipArgs);
     PXOPT_ADD_MODE("-tocleanchip", "", BGTOOL_MODE_TOCLEANCHIP, tocleanchipArgs);
     PXOPT_ADD_MODE("-cleanedchip", "", BGTOOL_MODE_CLEANEDCHIP, cleanedchipArgs);
@@ -395,4 +410,5 @@
     PXOPT_ADD_MODE("-advancewarp", "", BGTOOL_MODE_ADVANCEWARP, advancewarpArgs);
     PXOPT_ADD_MODE("-revertwarp",  "", BGTOOL_MODE_REVERTWARP,  revertwarpArgs);
+    PXOPT_ADD_MODE("-listwarp",    "", BGTOOL_MODE_LISTWARP,    listwarpArgs);
     PXOPT_ADD_MODE("-tocleanwarp", "", BGTOOL_MODE_TOCLEANWARP, tocleanwarpArgs);
     PXOPT_ADD_MODE("-cleanedwarp", "", BGTOOL_MODE_CLEANEDWARP, cleanedwarpArgs);
Index: branches/eam_branches/ipp-20100621/ippTools/src/disttool.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/disttool.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/disttool.c	(revision 28980)
@@ -34,4 +34,5 @@
 static bool updaterunMode(pxConfig *config);
 static bool revertrunMode(pxConfig *config);
+static bool rerunMode(pxConfig *config);
 static bool pendingcomponentMode(pxConfig *config);
 static bool addprocessedcomponentMode(pxConfig *config);
@@ -83,4 +84,5 @@
         MODECASE(DISTTOOL_MODE_UPDATERUN, updaterunMode);
         MODECASE(DISTTOOL_MODE_REVERTRUN, revertrunMode);
+        MODECASE(DISTTOOL_MODE_RERUN, rerunMode);
         MODECASE(DISTTOOL_MODE_PENDINGCOMPONENT, pendingcomponentMode);
         MODECASE(DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, addprocessedcomponentMode);
@@ -327,4 +329,21 @@
         // stack stage doesn't require magic
         no_magic = true;
+    } else if (!strcmp(stage, "sky")) {
+        magicRunType = "staticskyRun";
+        query = pxDataGet("disttool_definebyquery_sky.sql");
+        if (!query) {
+            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+            psFree(where);
+            return false;
+        }
+
+        if (label) {
+            psStringAppend(&query, " AND (staticskyRun.label = '%s')", label);
+        }
+        if (dist_group) {
+            psStringAppend(&query, " AND (sticskyRun.dist_group = '%s')", dist_group);
+        }
+        // (static)sky stage doesn't require magic
+        no_magic = true;
     } else if (!strcmp(stage, "SSdiff")) {
       magicRunType = "diffRun";
@@ -587,4 +606,132 @@
 }
 
+static bool rerunMode(pxConfig *config)
+{
+    psMetadata *where = psMetadataAlloc();
+    PXOPT_COPY_S64(config->args, where, "-dist_id", "distRun.dist_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-stage", "stage", "==");;
+    PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "==");
+    PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
+    PXOPT_COPY_STR(config->args, where, "-data_group", "data_group", "==");
+
+    // require data_group or dist_id to be supplied
+    PXOPT_LOOKUP_STR(data_group, config->args, "-data_group", true, false);
+    PXOPT_LOOKUP_S64(dist_id, config->args, "-dist_id", false, false);
+    if (!data_group && !dist_id) {
+        psError(PXTOOLS_ERR_CONFIG, true, "data_group or dist_id is required");
+        return false;
+    }
+    PXOPT_LOOKUP_STR(set_label, config->args, "-set_label", false, false);
+
+    psString label_hook = psStringCopy("");
+    if (set_label) {
+        psStringAppend(&label_hook, ", label = '%s'", set_label);
+    }
+
+    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
+    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
+    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
+
+
+    // It might be useful to be able to query by the parameters of the underlying runs
+
+    if (!psListLength(where->list)) {
+        psFree(where);
+        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
+        return false;
+    }
+
+    psString query = pxDataGet("disttool_rerun_select.sql");
+    if (!query) {
+        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
+        if (!psDBRollback(config->dbh)) {
+            psError(PS_ERR_UNKNOWN, false, "database error");
+        }
+        return false;
+    }
+
+    if (psListLength(where->list)) {
+        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
+        psStringAppend(&query, " AND %s", whereClause);
+        psFree(whereClause);
+    }
+    psFree(where);
+
+    if (limit) {
+        psString limitString = psDBGenerateLimitSQL(limit);
+        psStringAppend(&query, " %s", limitString);
+        psFree(limitString);
+    }
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        psFree(query);
+        return false;
+    }
+    psFree(query);
+
+    psArray *output = p_psDBFetchResult(config->dbh);
+    if (!output) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+    }
+    if (!psArrayLength(output)) {
+        psTrace("disttool", PS_LOG_INFO, "no rows found");
+        psFree(output);
+        return true;
+    }
+
+
+    if (pretend) {
+        if (!ippdbPrintMetadatas(stdout, output, "distRunsToUpdate", true)) {
+            psError(PS_ERR_UNKNOWN, false, "failed to print array");
+            psFree(output);
+            return false;
+        }
+        psFree(output);
+        return true;
+    }
+
+    query = "DELETE FROM distComponent where dist_id = %" PRId64;
+    
+    for (long i=0; i < psArrayLength(output); i++) {
+        psMetadata *md = output->data[i];
+        psS64 dist_id = psMetadataLookupS64(NULL, md, "dist_id");
+
+        if (!psDBTransaction(config->dbh)) {
+            psError(PS_ERR_UNKNOWN, false, "database error");
+            return false;
+        }
+
+        if (!p_psDBRunQueryF(config->dbh, query, dist_id)) {
+            psError(PS_ERR_UNKNOWN, false, "database error");
+            psFree(query);
+            if (!psDBRollback(config->dbh)) {
+                psError(PS_ERR_UNKNOWN, false, "database error");
+            }
+            return false;
+        }
+
+        if (!p_psDBRunQueryF(config->dbh,
+        "UPDATE distRun SET state = 'new', fault=0 %s WHERE dist_id =%" PRId64,
+                label_hook, dist_id)) {
+            psError(PS_ERR_UNKNOWN, false, "database error");
+            psFree(query);
+            if (!psDBRollback(config->dbh)) {
+                psError(PS_ERR_UNKNOWN, false, "database error");
+            }
+            return false;
+        }
+        if (!psDBCommit(config->dbh)) {
+            psError(PS_ERR_UNKNOWN, false, "database error");
+            return false;
+        }
+        printf("re-running distRun %" PRId64 "\n", dist_id);
+    }
+
+    psFree(output);
+
+    return true;
+}
 static bool revertrunMode(pxConfig *config)
 {
Index: branches/eam_branches/ipp-20100621/ippTools/src/disttool.h
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/disttool.h	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/disttool.h	(revision 28980)
@@ -28,4 +28,5 @@
     DISTTOOL_MODE_UPDATERUN,
     DISTTOOL_MODE_REVERTRUN,
+    DISTTOOL_MODE_RERUN,
     DISTTOOL_MODE_PENDINGCOMPONENT,
     DISTTOOL_MODE_ADDPROCESSEDCOMPONENT,
Index: branches/eam_branches/ipp-20100621/ippTools/src/disttoolConfig.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/disttoolConfig.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/disttoolConfig.c	(revision 28980)
@@ -85,4 +85,16 @@
     psMetadataAddS16(updaterunArgs, PS_LIST_TAIL, "-fault",      0, "define fault code", 0);
 
+    // -rerun
+    psMetadata *rerunArgs = psMetadataAlloc();
+    psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-data_group",    0, "define data_group (required)", NULL);
+    psMetadataAddS64(rerunArgs, PS_LIST_TAIL, "-dist_id", 0, "search by dist_id", 0);
+    psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-stage",    0, "search by stage", NULL);
+    psMetadataAddS64(rerunArgs, PS_LIST_TAIL, "-stage_id", 0, "search by stage_id", 0);
+    psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-label",    0, "search by label", NULL);
+    psMetadataAddStr(rerunArgs, PS_LIST_TAIL, "-set_label",    0, "define new label", NULL);
+    psMetadataAddBool(rerunArgs, PS_LIST_TAIL, "-pretend", 0, "don't queue runs just display what would be selected", false);
+    psMetadataAddU64(rerunArgs, PS_LIST_TAIL, "-limit",  0,  "limit result set to N items", 0);
+    psMetadataAddBool(rerunArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
+
     // -revertrun
     psMetadata *revertrunArgs = psMetadataAlloc();
@@ -327,10 +339,11 @@
     psMetadata *modes = psMetadataAlloc();
 
-    PXOPT_ADD_MODE("-definebyquery",    "", DISTTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs);
-    PXOPT_ADD_MODE("-updaterun",    "", DISTTOOL_MODE_UPDATERUN, updaterunArgs);
-    PXOPT_ADD_MODE("-revertrun",    "", DISTTOOL_MODE_REVERTRUN, revertrunArgs);
+    PXOPT_ADD_MODE("-definebyquery",    "define distribution run", DISTTOOL_MODE_DEFINEBYQUERY, definebyqueryArgs);
+    PXOPT_ADD_MODE("-updaterun",    "update distRun", DISTTOOL_MODE_UPDATERUN, updaterunArgs);
+    PXOPT_ADD_MODE("-rerun",        "reprocess a cleaned distribution run", DISTTOOL_MODE_RERUN, rerunArgs);
+    PXOPT_ADD_MODE("-revertrun",    "revert distRun.faults", DISTTOOL_MODE_REVERTRUN, revertrunArgs);
     PXOPT_ADD_MODE("-pendingcomponent",   "", DISTTOOL_MODE_PENDINGCOMPONENT,    pendingcomponentArgs);
     PXOPT_ADD_MODE("-addprocessedcomponent", "", DISTTOOL_MODE_ADDPROCESSEDCOMPONENT, addprocessedcomponentArgs);
-    PXOPT_ADD_MODE("-revertcomponent",    "", DISTTOOL_MODE_REVERTCOMPONENT, revertcomponentArgs);
+    PXOPT_ADD_MODE("-revertcomponent",    "revert faulted components", DISTTOOL_MODE_REVERTCOMPONENT, revertcomponentArgs);
     PXOPT_ADD_MODE("-processedcomponent", "", DISTTOOL_MODE_PROCESSEDCOMPONENT, processedcomponentArgs);
     PXOPT_ADD_MODE("-toadvance",          "", DISTTOOL_MODE_TOADVANCE, toadvanceArgs);
@@ -340,5 +353,5 @@
     PXOPT_ADD_MODE("-updatefileset",         "", DISTTOOL_MODE_UPDATEFILESET, updatefilesetArgs);
     PXOPT_ADD_MODE("-listfilesets",        "", DISTTOOL_MODE_LISTFILESETS, listfilesetsArgs);
-    PXOPT_ADD_MODE("-revertfileset",      "", DISTTOOL_MODE_REVERTFILESET, revertfilesetArgs);
+    PXOPT_ADD_MODE("-revertfileset",      "revert faulted filesets", DISTTOOL_MODE_REVERTFILESET, revertfilesetArgs);
     PXOPT_ADD_MODE("-queuercrun",         "", DISTTOOL_MODE_QUEUERCRUN, queuercrunArgs);
     PXOPT_ADD_MODE("-updatercrun",        "", DISTTOOL_MODE_UPDATERCRUN, updatercrunArgs);
Index: branches/eam_branches/ipp-20100621/ippTools/src/magicdstool.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/magicdstool.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/magicdstool.c	(revision 28980)
@@ -613,4 +613,5 @@
     PXOPT_COPY_S64(config->args, where, "-magic_ds_id", "magicDSRun.magic_ds_id", "==");
     PXOPT_COPY_S64(config->args, where, "-magic_id", "magic_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "==");
     pxAddLabelSearchArgs (config, where, "-label", "magicDSRun.label", "==");
 
Index: branches/eam_branches/ipp-20100621/ippTools/src/magicdstoolConfig.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/magicdstoolConfig.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/magicdstoolConfig.c	(revision 28980)
@@ -120,4 +120,5 @@
     psMetadataAddS64(todestreakArgs, PS_LIST_TAIL, "-magic_ds_id", 0, "search by magic Destreak ID", 0);
     psMetadataAddS64(todestreakArgs, PS_LIST_TAIL, "-magic_id", 0, "search by magic ID", 0);
+    psMetadataAddS64(todestreakArgs, PS_LIST_TAIL, "-stage_id", 0, "search by stage ID", 0);
     psMetadataAddStr(todestreakArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "define label", NULL);
     psMetadataAddU64(todestreakArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0);
Index: branches/eam_branches/ipp-20100621/ippTools/src/pstamptool.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/pstamptool.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/pstamptool.c	(revision 28980)
@@ -1220,4 +1220,6 @@
     PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "==");
     PXOPT_COPY_S64(config->args, where, "-dep_id", "dep_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-job_id", "job_id", "==");
+    PXOPT_COPY_S64(config->args, where, "-req_id", "req_id", "==");
     PXOPT_COPY_STR(config->args, where, "-rlabel", "rlabel", "==");
     pxAddLabelSearchArgs(config, where, "-label", "pstampRequest.label", "==");
Index: branches/eam_branches/ipp-20100621/ippTools/src/pstamptoolConfig.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/pstamptoolConfig.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/pstamptoolConfig.c	(revision 28980)
@@ -211,4 +211,6 @@
     psMetadataAddStr(pendingdependentArgs, PS_LIST_TAIL, "-component", 0,    "define component for dependent", NULL);
     psMetadataAddS64(pendingdependentArgs, PS_LIST_TAIL, "-dep_id", 0, "define dep_id for dependent", 0);
+    psMetadataAddS64(pendingdependentArgs, PS_LIST_TAIL, "-job_id", 0, "define job_id for dependent", 0);
+    psMetadataAddS64(pendingdependentArgs, PS_LIST_TAIL, "-req_id", 0, "define eqp_id for dependent", 0);
     psMetadataAddStr(pendingdependentArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK,   "define label for pstampRequest", NULL);
     psMetadataAddStr(pendingdependentArgs, PS_LIST_TAIL, "-rlabel", 0,   "define label for dependent", NULL);
Index: branches/eam_branches/ipp-20100621/ippTools/src/staticskytool.c
===================================================================
--- branches/eam_branches/ipp-20100621/ippTools/src/staticskytool.c	(revision 28794)
+++ branches/eam_branches/ipp-20100621/ippTools/src/staticskytool.c	(revision 28980)
@@ -727,5 +727,4 @@
 bool exportrunMode(pxConfig *config)
 {
-# if (0)
   typedef struct ExportTable {
     char tableName[80];
@@ -737,5 +736,5 @@
   PS_ASSERT_PTR_NON_NULL(config, NULL);
 
-  PXOPT_LOOKUP_S64(det_id, config->args, "-stack_id", true,  false);
+  PXOPT_LOOKUP_S64(det_id, config->args, "-sky_id", true,  false);
   PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true,  false);
   PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false);
@@ -753,10 +752,10 @@
   }
   psMetadata *where = psMetadataAlloc();
-  PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "==");
+  PXOPT_COPY_S64(config->args, where, "-sky_id", "sky_id", "==");
 
   ExportTable tables [] = {
-    {"stackRun", "staticskytool_export_run.sql"},
-    {"stackInputSkyfile", "staticskytool_export_input_skyfile.sql"},
-    {"stackSumSkyfile", "staticskytool_export_sum_skyfile.sql"},
+    {"staticskyRun", "staticskytool_export_run.sql"},
+    {"staticskyInput", "staticskytool_export_input.sql"},
+    {"staticskyResult", "staticskytool_export_result.sql"},
   };
 
@@ -800,6 +799,6 @@
 
     if (clean) {
-        if (!strcmp(tables[i].tableName, "stackRun")) {
-            if (!pxSetStateCleaned("stackRun", "state", output)) {
+        if (!strcmp(tables[i].tableName, "staticskyRun")) {
+            if (!pxSetStateCleaned("staticskyRun", "state", output)) {
                 psFree(output);
                 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s",  tables[i].tableName);
@@ -821,5 +820,4 @@
     fclose (f);
 
-# endif
     return true;
 }
