IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 24934


Ignore:
Timestamp:
Jul 28, 2009, 2:10:20 PM (17 years ago)
Author:
Paul Price
Message:

Don't update run (because the run now isn't updated to 'full' until it completes successfully) when reverting.

Location:
trunk/ippTools
Files:
1 deleted
1 edited

Legend:

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

    r24933 r24934  
    937937    }
    938938
    939     if (!psDBTransaction(config->dbh)) {
    940         psError(PS_ERR_UNKNOWN, false, "database error");
     939    // Delete product
     940    psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
     941    if (!delete) {
     942        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     943        return false;
     944    }
     945
     946    if (psListLength(where->list)) {
     947        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     948        psStringAppend(&delete, " AND %s", whereClause);
     949        psFree(whereClause);
     950    }
     951
     952    if (!p_psDBRunQuery(config->dbh, delete)) {
     953        psError(PS_ERR_UNKNOWN, false, "database error");
     954        psFree(delete);
    941955        psFree(where);
    942956        return false;
    943957    }
    944 
    945     int numStacks;                      // Number of stacks affected
    946 
    947     // Update state to 'new'
    948     {
    949         psString update = pxDataGet("stacktool_revertsumskyfile_update.sql");
    950         if (!update) {
    951             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    952             if (!psDBRollback(config->dbh)) {
    953                 psError(PS_ERR_UNKNOWN, false, "database error");
    954             }
    955             return false;
    956         }
    957 
    958         if (psListLength(where->list)) {
    959             psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    960             psStringAppend(&update, " AND %s", whereClause);
    961             psFree(whereClause);
    962         }
    963 
    964         if (!p_psDBRunQuery(config->dbh, update)) {
    965             psError(PS_ERR_UNKNOWN, false, "database error");
    966             psFree(update);
    967             psFree(where);
    968             if (!psDBRollback(config->dbh)) {
    969                 psError(PS_ERR_UNKNOWN, false, "database error");
    970             }
    971             return false;
    972         }
    973         psFree(update);
    974 
    975         numStacks = psDBAffectedRows(config->dbh);
    976 
    977         if (numStacks < 1) {
    978             psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row");
    979             if (!psDBRollback(config->dbh)) {
    980                 psError(PS_ERR_UNKNOWN, false, "database error");
    981             }
    982             return false;
    983         }
    984     }
    985 
    986     // Delete product
    987     {
    988         psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
    989         if (!delete) {
    990             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    991             if (!psDBRollback(config->dbh)) {
    992                 psError(PS_ERR_UNKNOWN, false, "database error");
    993             }
    994             return false;
    995         }
    996 
    997         if (psListLength(where->list)) {
    998             psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    999             psStringAppend(&delete, " AND %s", whereClause);
    1000             psFree(whereClause);
    1001         }
    1002 
    1003         if (!p_psDBRunQuery(config->dbh, delete)) {
    1004             psError(PS_ERR_UNKNOWN, false, "database error");
    1005             psFree(delete);
    1006             psFree(where);
    1007             if (!psDBRollback(config->dbh)) {
    1008                 psError(PS_ERR_UNKNOWN, false, "database error");
    1009             }
    1010             return false;
    1011         }
    1012         psFree(delete);
    1013 
    1014         if (psDBAffectedRows(config->dbh) != numStacks) {
    1015             psError(PS_ERR_UNKNOWN, true, "Updated and deleted different number of entries!");
    1016             psFree(where);
    1017             if (!psDBRollback(config->dbh)) {
    1018                 psError(PS_ERR_UNKNOWN, false, "database error");
    1019             }
    1020             return false;
    1021         }
    1022 
    1023     }
    1024 
    1025     if (!psDBCommit(config->dbh)) {
    1026         psError(PS_ERR_UNKNOWN, false, "database error");
    1027         return false;
    1028     }
     958    psFree(delete);
     959
     960    int numRows = psDBAffectedRows(config->dbh); // Number of row affected
     961    psLogMsg("stacktool", PS_LOG_INFO, "Deleted %d rows", numRows);
    1029962
    1030963    psFree(where);
Note: See TracChangeset for help on using the changeset viewer.