IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 37122


Ignore:
Timestamp:
Jul 25, 2014, 11:57:11 AM (12 years ago)
Author:
bills
Message:

add mode to releasetool to delete rows in the relStack table.

Location:
trunk/ippTools
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/Makefile.am

    r37095 r37122  
    485485        releasetool_definerelstack_with_skycal.sql \
    486486        releasetool_deleterelexp.sql \
     487        releasetool_deleterelstack.sql \
    487488        releasetool_listrelstack.sql \
    488489        releasetool_summary.sql \
  • trunk/ippTools/src/releasetool.c

    r37095 r37122  
    4848static bool updaterelstackMode(pxConfig *config);
    4949static bool listrelstackMode(pxConfig *config);
     50static bool deleterelstackMode(pxConfig *config);
    5051static bool summaryMode(pxConfig *config);
    5152static bool definerelgroupMode(pxConfig *config);
     
    8788        MODECASE(RELEASETOOL_MODE_UPDATERELSTACK,   updaterelstackMode);
    8889        MODECASE(RELEASETOOL_MODE_LISTRELSTACK,     listrelstackMode);
     90        MODECASE(RELEASETOOL_MODE_DELETERELSTACK,   deleterelstackMode);
    8991        MODECASE(RELEASETOOL_MODE_SUMMARY,          summaryMode);
    9092
     
    857859    PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
    858860
    859     PXOPT_COPY_S32(config->args, where, "-rel_id",  "rel_id", "==");
    860     PXOPT_COPY_STR(config->args, where, "-release_name", "release_name", "==");
     861    PXOPT_COPY_S32(config->args, where, "-rel_id",  "relExp.rel_id", "==");
     862    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
    861863
    862864    psString query = pxDataGet("releasetool_deleterelexp.sql");
     
    10881090    return false;
    10891091}
     1092static bool deleterelstackMode(pxConfig *config)
     1093{
     1094    PS_ASSERT_PTR_NON_NULL(config, false);
     1095
     1096    PXOPT_LOOKUP_S64(relstack_id, config->args,   "-relstack_id", false, false);
     1097    // If relexp_id is supplied that is all that we need
     1098    if (!relstack_id) {
     1099        // Otherwise we need to identify the release ...
     1100        PXOPT_LOOKUP_STR(release_name, config->args, "-release_name", false, false);
     1101        PXOPT_LOOKUP_S32(rel_id, config->args,      "-rel_id", false, false);
     1102
     1103        if (!release_name && !rel_id) {
     1104            psError(PXTOOLS_ERR_CONFIG, true, "at least one of -relstack_id, -release_name, or -rel_id is required\n");
     1105            return false;
     1106        }
     1107        // ... and the Stack
     1108        PXOPT_LOOKUP_STR(label, config->args,       "-label", false, false);
     1109        PXOPT_LOOKUP_S64(stack_id, config->args,    "-stack_id", false, false);
     1110        if (!label && !stack_id) {
     1111            psError(PXTOOLS_ERR_CONFIG, true, "at least one of -label and  -stack_id is required\n");
     1112            return false;
     1113        }
     1114    }
     1115
     1116    psMetadata *where = psMetadataAlloc();
     1117
     1118    PXOPT_COPY_S32(config->args, where, "-relstack_id", "relStack.relstack_id", "==");
     1119    PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");
     1120    PXOPT_COPY_S64(config->args, where, "-stack_id", "relStack.stack_id", "==");
     1121
     1122    PXOPT_COPY_S32(config->args, where, "-rel_id", "relStack.rel_id", "==");
     1123    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "==");
     1124
     1125    psString query = pxDataGet("releasetool_deleterelstack.sql");
     1126
     1127    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1128    psStringAppend(&query, "\n    AND %s", whereClause);
     1129    psFree(whereClause);
     1130
     1131    if (!p_psDBRunQuery(config->dbh, query)) {
     1132        psError(PS_ERR_UNKNOWN, false, "database error");
     1133        psFree(query);
     1134        return false;
     1135    }
     1136
     1137    psU64 affected = psDBAffectedRows(config->dbh);
     1138    psLogMsg("releasetool", PS_LOG_INFO, "Deleted %" PRIu64 " relStack rows", affected);
     1139
     1140
     1141    psFree(query);
     1142
     1143    return true;
     1144}
    10901145
    10911146static bool listrelstackMode(pxConfig *config)
  • trunk/ippTools/src/releasetool.h

    r37095 r37122  
    3737    RELEASETOOL_MODE_DEFINERELSTACK,
    3838    RELEASETOOL_MODE_UPDATERELSTACK,
     39    RELEASETOOL_MODE_DELETERELSTACK,
    3940    RELEASETOOL_MODE_TOCALIBSTACK,
    4041    RELEASETOOL_MODE_LISTRELSTACK,
  • trunk/ippTools/src/releasetoolConfig.c

    r37095 r37122  
    6767    psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_ubercal_file", 0,  "define ubercal file name", NULL);
    6868
    69     // -uptdaterelease
     69    // -updaterelease
    7070    psMetadata *updatereleaseArgs = psMetadataAlloc();
    7171
     
    259259    psMetadataAddBool(listrelstackArgs, PS_LIST_TAIL, "-simple",      0, "use the simple output format", false);
    260260
     261    // -updaterelstack
     262    psMetadata *updaterelstackArgs = psMetadataAlloc();
     263
     264    // -deleterelstack
     265    psMetadata *deleterelstackArgs = psMetadataAlloc();
     266    psMetadataAddS64(deleterelstackArgs, PS_LIST_TAIL,  "-relstack_id", 0,   "select by released exposure ID", 0);
     267    psMetadataAddS64(deleterelstackArgs, PS_LIST_TAIL,  "-stack_id", 0,   "select by stack ID", 0);
     268//    psMetadataAddS64(deleterelstackArgs, PS_LIST_TAIL,  "-skycal_id", 0,   "select by skycal ID", 0);
     269    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL);
     270    psMetadataAddS32(deleterelstackArgs, PS_LIST_TAIL,  "-rel_id", 0,   "select by release ID", 0);
     271
     272    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-label",  0,      "select by stackRun.label", NULL);
     273//    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-data_group", 0,  "select by stackRun.data_group", NULL);
     274//    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-skycal_label",  0, "select by skycalRun.label", NULL);
     275//    psMetadataAddStr(deleterelstackArgs,  PS_LIST_TAIL, "-skycal_data_group", 0,  "select by skycalRun.data_group", NULL);
     276
    261277    // -summary
    262278    psMetadata *summaryArgs = psMetadataAlloc();
     
    363379    PXOPT_ADD_MODE("-definerelstack",     "define a released stack",    RELEASETOOL_MODE_DEFINERELSTACK,  definerelstackArgs);
    364380    PXOPT_ADD_MODE("-listrelstack",       "list released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    listrelstackArgs);
     381    PXOPT_ADD_MODE("-updaterelstack",     "update parameters of released stacks",      RELEASETOOL_MODE_LISTRELSTACK,    updaterelstackArgs);
     382    PXOPT_ADD_MODE("-deleterelstack",     "update parameters of released stacks",      RELEASETOOL_MODE_DELETERELSTACK,  deleterelstackArgs);
     383
    365384    PXOPT_ADD_MODE("-summary",            "list stackSummaryes for released stacks", RELEASETOOL_MODE_SUMMARY,    summaryArgs);
    366385
Note: See TracChangeset for help on using the changeset viewer.