IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 29, 2010, 3:55:49 PM (16 years ago)
Author:
eugene
Message:

update merges from trunk

Location:
branches/eam_branches/20100225
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/20100225

  • branches/eam_branches/20100225/ippTools/src/pxtools.c

    r26981 r27517  
    110110
    111111// shared code for updating the various strings for a Run
    112 bool pxUpdateRun(pxConfig *config, psMetadata *where, psString *pQuery, psString table, bool has_dist_group)
     112bool pxUpdateRun(pxConfig *config, psMetadata *where, psString *pQuery, psString runTable, psString idColumn, psString fileTable, bool has_dist_group)
    113113{
    114114    PS_ASSERT_PTR_NON_NULL(config, false);
     
    116116    PS_ASSERT_PTR_NON_NULL(pQuery, false);
    117117    PS_ASSERT_PTR_NON_NULL(*pQuery, false);
     118    PS_ASSERT_PTR_NON_NULL(runTable, false);
     119    PS_ASSERT_PTR_NON_NULL(idColumn, false);
     120    PS_ASSERT_PTR_NON_NULL(fileTable, false);
    118121
    119122    // make sure that -state is not the only selection parameter
     
    158161        } while (0)
    159162
    160     addColumn(table, state);
    161     addColumn(table, data_group);
     163    addColumn(runTable, state);
     164    addColumn(runTable, data_group);
    162165    if (has_dist_group) {
    163         addColumn(table, dist_group);
    164     }
    165     addColumn(table, note);
    166     addColumn(table, label);
     166        addColumn(runTable, dist_group);
     167    }
     168    addColumn(runTable, note);
     169    addColumn(runTable, label);
     170
     171    psString joinHook = psStringCopy("");
     172    psString fileWhere = NULL;
     173    if (state && !strcmp(state, "update")) {
     174        psStringAppend(&joinHook, "\n JOIN %s USING(%s)", fileTable, idColumn);
     175        psStringAppend(pQuery, ", %s.data_state = 'update'", fileTable);
     176        psStringAppend(&fileWhere, "AND %s.data_state = 'cleaned'", fileTable);
     177    }
    167178
    168179    psString whereClause =  psDBGenerateWhereSQL(where, NULL);
    169180    psStringAppend(pQuery, " %s", whereClause);
    170181    psFree(whereClause);
    171 
    172     if (!p_psDBRunQuery(config->dbh, *pQuery)) {
     182    if (fileWhere) {
     183        psStringAppend(pQuery, "%s", fileWhere);
     184    }
     185
     186    bool mdok;                          // Status of MD lookup
     187    if (psMetadataLookupBool(&mdok, config->args, "-pretend")) {
     188        psLogMsg("pxtools", PS_LOG_INFO, "Query to run: %s\n", *pQuery);
     189        return true;
     190    }
     191
     192    if (!p_psDBRunQueryF(config->dbh, *pQuery, joinHook)) {
    173193        psError(PS_ERR_UNKNOWN, false, "database error");
    174194        return false;
Note: See TracChangeset for help on using the changeset viewer.