IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 14098


Ignore:
Timestamp:
Jul 10, 2007, 10:30:39 AM (19 years ago)
Author:
jhoblitt
Message:

add regtool -revertprocessedexp

Location:
trunk/ippTools
Files:
1 added
4 edited

Legend:

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

    r14097 r14098  
    2929        regtool_processedexp.sql \
    3030        regtool_processedimfile.sql \
     31        regtool_revertprocessedexp.sql \
    3132        regtool_revertprocessedimfile.sql \
    3233        stacktool_inputskyfile.sql \
  • trunk/ippTools/src/regtool.c

    r14097 r14098  
    3131#include "chiptool.h"
    3232
     33// imfile
    3334static bool pendingimfileMode(pxConfig *config);
    3435static bool addprocessedimfileMode(pxConfig *config);
     
    3637static bool revertprocessedimfileMode(pxConfig *config);
    3738static bool updateprocessedimfileMode(pxConfig *config);
    38 
     39// exp
    3940static bool pendingexpMode(pxConfig *config);
    4041static bool addprocessedexpMode(pxConfig *config);
    4142static bool processedexpMode(pxConfig *config);
     43static bool revertprocessedexpMode(pxConfig *config);
    4244static bool updateprocessedexpMode(pxConfig *config);
    4345
     
    7072
    7173    switch (config->mode) {
     74        // imfile
    7275        MODECASE(REGTOOL_MODE_PENDINGIMFILE,         pendingimfileMode);
    7376        MODECASE(REGTOOL_MODE_ADDPROCESSEDIMFILE,    addprocessedimfileMode);
     
    7578        MODECASE(REGTOOL_MODE_REVERTPROCESSEDIMFILE, revertprocessedimfileMode);
    7679        MODECASE(REGTOOL_MODE_UPDATEPROCESSEDIMFILE, updateprocessedimfileMode);
     80        // exp
    7781        MODECASE(REGTOOL_MODE_PENDINGEXP,            pendingexpMode);
    7882        MODECASE(REGTOOL_MODE_ADDPROCESSEDEXP,       addprocessedexpMode);
    7983        MODECASE(REGTOOL_MODE_PROCESSEDEXP,          processedexpMode);
     84        MODECASE(REGTOOL_MODE_REVERTPROCESSEDEXP,    revertprocessedexpMode);
    8085        MODECASE(REGTOOL_MODE_UPDATEPROCESSEDEXP,    updateprocessedexpMode);
    8186        default:
     
    816821
    817822    psFree(output);
     823
     824    return true;
     825}
     826
     827static bool revertprocessedexpMode(pxConfig *config)
     828{
     829    PS_ASSERT_PTR_NON_NULL(config, false);
     830
     831    psString query = pxDataGet("regtool_revertprocessedexp.sql");
     832    if (!query) {
     833        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     834        return false;
     835    }
     836
     837    if (config->where) {
     838        psString whereClause = psDBGenerateWhereConditionSQL(config->where, "rawExp");
     839        psStringAppend(&query, " AND %s", whereClause);
     840        psFree(whereClause);
     841    }
     842
     843    if (!p_psDBRunQuery(config->dbh, query)) {
     844        psError(PS_ERR_UNKNOWN, false, "database error");
     845        psFree(query);
     846        return false;
     847    }
     848    psFree(query);
     849
     850    if (psDBAffectedRows(config->dbh) < 1) {
     851        psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
     852        return false;
     853    }
    818854
    819855    return true;
  • trunk/ippTools/src/regtool.h

    r14097 r14098  
    3333    REGTOOL_MODE_ADDPROCESSEDEXP,
    3434    REGTOOL_MODE_PROCESSEDEXP,
     35    REGTOOL_MODE_REVERTPROCESSEDEXP,
    3536    REGTOOL_MODE_UPDATEPROCESSEDEXP,
    3637} regtoolMode;
  • trunk/ippTools/src/regtoolConfig.c

    r14097 r14098  
    252252        "use the simple output format", false);
    253253
     254    // -revertprocessedimfile
     255    psMetadata *revertprocessedexpArgs = psMetadataAlloc();
     256    psMetadataAddStr(revertprocessedexpArgs, PS_LIST_TAIL, "-exp_id",  0,
     257            "search by exposure ID (required)", NULL);
     258    psMetadataAddS16(revertprocessedexpArgs, PS_LIST_TAIL, "-code",  0,
     259            "search by fault code", 0);
     260
    254261    // -updatedprocessedexp
    255262    psMetadata *updatedprocessedexpArgs = psMetadataAlloc();
     
    271278    PXTOOL_ADD_MODE("-addprocessedexp",         "",  REGTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
    272279    PXTOOL_ADD_MODE("-processedexp",            "",     REGTOOL_MODE_PROCESSEDEXP, processedexpArgs);
     280    PXTOOL_ADD_MODE("-revertprocessedexp",      "", REGTOOL_MODE_REVERTPROCESSEDEXP, revertprocessedexpArgs);
    273281    PXTOOL_ADD_MODE("-updateprocessedexp",      "",  REGTOOL_MODE_UPDATEPROCESSEDEXP,      updatedprocessedexpArgs);
    274282
     
    298306}
    299307
     308#define addWhereS16(name) \
     309{ \
     310    psS16 s16 = 0; \
     311    bool status = false; \
     312    if ((s16= psMetadataLookupS16(&status, config->args, "-" #name))) { \
     313        if (!psMetadataAddS16(config->where, PS_LIST_TAIL, #name, 0, "==", s16)) { \
     314            psError(PS_ERR_UNKNOWN, false, "failed to add item " #name); \
     315            psFree(config); \
     316            return NULL; \
     317        } \
     318    } \
     319}
     320
    300321    // generate SQL where clause
    301322    config->where = psMetadataAlloc();
     
    320341    addWhereStr(tmp_class_id);
    321342    addWhereStr(filter);
     343    addWhereS16(code);
    322344
    323345    if (config->where->list->n < 1) {
Note: See TracChangeset for help on using the changeset viewer.