IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 24426


Ignore:
Timestamp:
Jun 15, 2009, 4:51:42 PM (17 years ago)
Author:
bills
Message:

Add warptool -revertoverlap

Location:
trunk/ippTools/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/src/warptool.c

    r24335 r24426  
    3838static bool tooverlapMode(pxConfig *config);
    3939static bool addoverlapMode(pxConfig *config);
     40static bool revertoverlapMode(pxConfig *config);
    4041static bool scmapMode(pxConfig *config);
    4142static bool towarpedMode(pxConfig *config);
     
    8687        MODECASE(WARPTOOL_MODE_TOOVERLAP,          tooverlapMode);
    8788        MODECASE(WARPTOOL_MODE_ADDOVERLAP,         addoverlapMode);
     89        MODECASE(WARPTOOL_MODE_REVERTOVERLAP,      revertoverlapMode);
    8890        MODECASE(WARPTOOL_MODE_SCMAP,              scmapMode);
    8991        MODECASE(WARPTOOL_MODE_TOWARPED,           towarpedMode);
     
    650652        warpSkyCellMapInsert(config->dbh,
    651653            warp_id,
    652             NULL,   // skycell_id
    653             NULL,   // tess_id
    654             NULL,   // class_id
     654            "faulted",   // skycell_id
     655            "faulted",   // tess_id
     656            "faulted",   // class_id
    655657            fault    // fault
    656658        );
     
    665667    return true;
    666668}
     669
     670static bool revertoverlapMode(pxConfig *config)
     671{
     672    PS_ASSERT_PTR_NON_NULL(config, false);
     673
     674    psMetadata *where = psMetadataAlloc();
     675    PXOPT_COPY_S64(config->args, where, "-warp_id",    "warpSkyCellMap.warp_id", "==");
     676    PXOPT_COPY_STR(config->args, where, "-skycell_id", "warpSkyCellMap.skycell_id", "==");
     677    PXOPT_COPY_STR(config->args, where, "-tess_id",    "warpSkyCellMap.tess_id", "==");
     678    PXOPT_COPY_STR(config->args, where, "-label",      "warpRun.label", "==");
     679    PXOPT_COPY_S16(config->args, where, "-fault",      "warpSkyCellMap.fault", "==");
     680
     681    if (!psListLength(where->list)
     682        && !psMetadataLookupBool(NULL, config->args, "-all")) {
     683        psFree(where);
     684        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     685        return false;
     686    }
     687
     688    int numDeleted;                     // Number deleted
     689    {
     690        psString query = pxDataGet("warptool_revertoverlap.sql");
     691        if (!query) {
     692            psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     693            if (!psDBRollback(config->dbh)) {
     694                psError(PS_ERR_UNKNOWN, false, "database error");
     695            }
     696            return false;
     697        }
     698
     699        if (psListLength(where->list)) {
     700            psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     701            psStringAppend(&query, " AND %s", whereClause);
     702            psFree(whereClause);
     703        }
     704
     705        if (!p_psDBRunQuery(config->dbh, query)) {
     706            psError(PS_ERR_UNKNOWN, false, "database error");
     707            psFree(query);
     708            if (!psDBRollback(config->dbh)) {
     709                psError(PS_ERR_UNKNOWN, false, "database error");
     710            }
     711            return false;
     712        }
     713        psFree(query);
     714
     715        numDeleted = psDBAffectedRows(config->dbh);
     716    }
     717
     718    psLogMsg("warptool", PS_LOG_INFO, "Deleted %d warpSkycellMap", numDeleted);
     719
     720    psFree(where);
     721
     722    return true;
     723}
     724
    667725
    668726
     
    12231281    }
    12241282
    1225 
    1226 #ifdef notdef
    1227     int numUpdated = 0;                     // Number updated
    1228     {
    1229     // Update state to 'new'
    1230         // This query is no longer necessary because we do not set warpRun's to full statte
    1231         // if they have faulted skyfiles.
    1232         // We do have runs in the DB that follow the old convention so we leave this in for
    1233         // now
    1234         psString query = pxDataGet("warptool_revertwarped_update.sql");
    1235         if (!query) {
    1236             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    1237             if (!psDBRollback(config->dbh)) {
    1238                 psError(PS_ERR_UNKNOWN, false, "database error");
    1239             }
    1240             return false;
    1241         }
    1242 
    1243         if (psListLength(where->list)) {
    1244             psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    1245             psStringAppend(&query, " AND %s", whereClause);
    1246             psFree(whereClause);
    1247         }
    1248 
    1249         if (!p_psDBRunQuery(config->dbh, query)) {
    1250             psError(PS_ERR_UNKNOWN, false, "database error");
    1251             psFree(query);
    1252             if (!psDBRollback(config->dbh)) {
    1253                 psError(PS_ERR_UNKNOWN, false, "database error");
    1254             }
    1255             return false;
    1256         }
    1257         psFree(query);
    1258 
    1259         numUpdated = psDBAffectedRows(config->dbh);
    1260 
    1261 #ifdef notdef
    1262         // new warpRuns won't get changed (they're already new) so don't require an update
    1263         if (numUpdated < 1) {
    1264             psError(PS_ERR_UNKNOWN, false, "should have affected at least 1 row");
    1265             if (!psDBRollback(config->dbh)) {
    1266                 psError(PS_ERR_UNKNOWN, false, "database error");
    1267             }
    1268             return false;
    1269         }
    1270 #endif
    1271     }
    1272 
    1273     psLogMsg("warptool", PS_LOG_INFO, "Updated %d warp runs", numUpdated);
    1274 
    1275 #endif // notdef
    1276 
    12771283    // Delete product
    12781284    int numDeleted;                     // Number deleted
  • trunk/ippTools/src/warptool.h

    r24043 r24426  
    3434    WARPTOOL_MODE_TOOVERLAP,
    3535    WARPTOOL_MODE_ADDOVERLAP,
     36    WARPTOOL_MODE_REVERTOVERLAP,
    3637    WARPTOOL_MODE_SCMAP,
    3738    WARPTOOL_MODE_TOWARPED,
  • trunk/ippTools/src/warptoolConfig.c

    r24043 r24426  
    157157    psMetadataAddS16(addoverlapArgs, PS_LIST_TAIL, "-fault",  0,            "set fault code", 0);
    158158
     159    // -revertoverlap
     160    psMetadata *revertoverlapArgs = psMetadataAlloc();
     161    psMetadataAddS64(revertoverlapArgs, PS_LIST_TAIL, "-warp_id", 0,            "search by warptool ID", 0);
     162    psMetadataAddStr(revertoverlapArgs, PS_LIST_TAIL, "-skycell_id",  0,            "search by skycell ID", NULL);
     163    psMetadataAddStr(revertoverlapArgs, PS_LIST_TAIL, "-tess_id",  0,            "search by tessellation ID", NULL);
     164    psMetadataAddStr(revertoverlapArgs, PS_LIST_TAIL, "-label",  0,            "search by warpRun label", NULL);
     165    psMetadataAddS16(revertoverlapArgs, PS_LIST_TAIL, "-fault",  0,            "search by fault code", 0);
     166    psMetadataAddBool(revertoverlapArgs, PS_LIST_TAIL, "-all",  0,            "allow everything to be queued without search terms", false);
     167
     168
    159169    // -scmap
    160170    psMetadata *scmapArgs = psMetadataAlloc();
     
    300310    PXOPT_ADD_MODE("-tooverlap",       "", WARPTOOL_MODE_TOOVERLAP,      tooverlapArgs);
    301311    PXOPT_ADD_MODE("-addoverlap",      "", WARPTOOL_MODE_ADDOVERLAP,     addoverlapArgs);
     312    PXOPT_ADD_MODE("-revertoverlap",   "", WARPTOOL_MODE_REVERTOVERLAP,  revertoverlapArgs);
    302313    PXOPT_ADD_MODE("-scmap",           "", WARPTOOL_MODE_SCMAP,          scmapArgs);
    303314    PXOPT_ADD_MODE("-towarped",        "", WARPTOOL_MODE_TOWARPED,       towarpedArgs);
Note: See TracChangeset for help on using the changeset viewer.