IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 7, 2009, 12:45:24 PM (17 years ago)
Author:
eugene
Message:

update from mainline

Location:
branches/eam_branches/20090715
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20090715

  • branches/eam_branches/20090715/ippTools/src/stacktool.c

    r24736 r25022  
    133133    PXOPT_COPY_F32(config->args,  where, "-select_posang_min",         "rawExp.posang", ">=");
    134134    PXOPT_COPY_F32(config->args,  where, "-select_posang_max",         "rawExp.posang", "<=");
    135     PXOPT_COPY_F32(config->args,  where, "-select_solang_min",         "rawExp.solang", ">=");
    136     PXOPT_COPY_F32(config->args,  where, "-select_solang_max",         "rawExp.solang", "<=");
     135    PXOPT_COPY_F32(config->args,  where, "-select_sun_angle_min",      "rawExp.sun_angle", ">=");
     136    PXOPT_COPY_F32(config->args,  where, "-select_sun_angle_max",      "rawExp.sun_angle", "<=");
    137137    PXOPT_COPY_F32(config->args,  where, "-select_fwhm_major_min",     "camProcessedExp.fwhm_major", ">=");
    138138    PXOPT_COPY_F32(config->args,  where, "-select_fwhm_major_max",     "camProcessedExp.fwhm_major", "<=");
     
    857857    PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "==");
    858858    PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
     859    PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "==");
     860    PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
    859861
    860862    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     
    931933    PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "==");
    932934
    933     if (!psDBTransaction(config->dbh)) {
    934         psError(PS_ERR_UNKNOWN, false, "database error");
     935    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
    935936        psFree(where);
    936         return false;
    937     }
    938 
    939     int numStacks;                      // Number of stacks affected
    940 
    941     // Update state to 'new'
    942     {
    943         psString update = pxDataGet("stacktool_revertsumskyfile_update.sql");
    944         if (!update) {
    945             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    946             if (!psDBRollback(config->dbh)) {
    947                 psError(PS_ERR_UNKNOWN, false, "database error");
    948             }
    949             return false;
    950         }
    951 
    952         if (psListLength(where->list)) {
    953             psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    954             psStringAppend(&update, " AND %s", whereClause);
    955             psFree(whereClause);
    956         }
    957 
    958         if (!p_psDBRunQuery(config->dbh, update)) {
    959             psError(PS_ERR_UNKNOWN, false, "database error");
    960             psFree(update);
    961             psFree(where);
    962             if (!psDBRollback(config->dbh)) {
    963                 psError(PS_ERR_UNKNOWN, false, "database error");
    964             }
    965             return false;
    966         }
    967         psFree(update);
    968 
    969         numStacks = psDBAffectedRows(config->dbh);
    970 
    971         if (numStacks < 1) {
    972             psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
    973             if (!psDBRollback(config->dbh)) {
    974                 psError(PS_ERR_UNKNOWN, false, "database error");
    975             }
    976             return false;
    977         }
     937        psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     938        return false;
    978939    }
    979940
    980941    // Delete product
    981     {
    982         psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
    983         if (!delete) {
    984             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    985             if (!psDBRollback(config->dbh)) {
    986                 psError(PS_ERR_UNKNOWN, false, "database error");
    987             }
    988             return false;
    989         }
    990 
    991         if (psListLength(where->list)) {
    992             psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    993             psStringAppend(&delete, " AND %s", whereClause);
    994             psFree(whereClause);
    995         }
    996 
    997         if (!p_psDBRunQuery(config->dbh, delete)) {
    998             psError(PS_ERR_UNKNOWN, false, "database error");
    999             psFree(delete);
    1000             psFree(where);
    1001             if (!psDBRollback(config->dbh)) {
    1002                 psError(PS_ERR_UNKNOWN, false, "database error");
    1003             }
    1004             return false;
    1005         }
     942    psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
     943    if (!delete) {
     944        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     945        return false;
     946    }
     947
     948    if (psListLength(where->list)) {
     949        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     950        psStringAppend(&delete, " AND %s", whereClause);
     951        psFree(whereClause);
     952    }
     953
     954    if (!p_psDBRunQuery(config->dbh, delete)) {
     955        psError(PS_ERR_UNKNOWN, false, "database error");
    1006956        psFree(delete);
    1007 
    1008         if (psDBAffectedRows(config->dbh) != numStacks) {
    1009             psError(PS_ERR_UNKNOWN, true, "Updated and deleted different number of entries!");
    1010             psFree(where);
    1011             if (!psDBRollback(config->dbh)) {
    1012                 psError(PS_ERR_UNKNOWN, false, "database error");
    1013             }
    1014             return false;
    1015         }
    1016 
    1017     }
    1018 
    1019     if (!psDBCommit(config->dbh)) {
    1020         psError(PS_ERR_UNKNOWN, false, "database error");
    1021         return false;
    1022     }
     957        psFree(where);
     958        return false;
     959    }
     960    psFree(delete);
     961
     962    int numRows = psDBAffectedRows(config->dbh); // Number of row affected
     963    psLogMsg("stacktool", PS_LOG_INFO, "Deleted %d rows", numRows);
    1023964
    1024965    psFree(where);
Note: See TracChangeset for help on using the changeset viewer.