IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jul 21, 2008, 7:16:14 PM (18 years ago)
Author:
Paul Price
Message:

Using expanded SQL in difftool_definebyquery.sql to generate list of diffs to generate.

File:
1 edited

Legend:

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

    r18618 r18657  
    820820    psMetadata *where = psMetadataAlloc();
    821821
    822     PXOPT_COPY_S64(config->args, where,  "-diff_id", "diff_id", "==");
    823822    PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "==");
    824823    PXOPT_COPY_STR(config->args, where, "-skycell_id", "skycell_id", "==");
    825     PXOPT_COPY_STR(config->args, where,  "-tess_id", "tess_id", "==");
     824    PXOPT_COPY_STR(config->args, where, "-tess_id", "tess_id", "==");
     825    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
    826826    PXOPT_COPY_STR(config->args, where,  "-kind", "kind", "==");
    827827    PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false); // required options
    828828    PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false);
    829     PXOPT_LOOKUP_BOOL(template, config->args, "-template", false);
    830829    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     830    PXOPT_LOOKUP_BOOL(newTemplates, config->args, "-new-templates", false);
    831831
    832832    // find all things to queue
    833     psString query = pxDataGet("difftool_queue.sql");
     833    psString query = pxDataGet("difftool_definebyquery.sql");
    834834    if (!query) {
    835835        psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     
    837837    }
    838838
    839     if (template) {
    840         // list only faulted rows
    841         psStringAppend(&query, " %s", " AND diffInputSkyfile.template != 0");
     839    if (newTemplates) {
     840        // Warps that haven't been diffed OR warps that can take a newer template in the diff
     841        psStringAppend(&query, " WHERE (diff_id IS NULL OR best_stack_id > current_stack_id)");
    842842    } else {
    843         // don't list faulted rows
    844         psStringAppend(&query, " %s",
    845                        " AND (diffInputSkyfile.template = 0 OR diffInputSkyfile.template IS NULL)");
     843        // Only warps that haven't been diffed
     844        psStringAppend(&query, " WHERE diff_id IS NULL");
    846845    }
    847846
    848847    if (psListLength(where->list)) {
    849         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     848        psString whereClause = psDBGenerateWhereConditionSQL(where, "warpsToDiff");
    850849        psStringAppend(&query, " AND %s", whereClause);
    851850        psFree(whereClause);
     
    896895            continue;
    897896        }
    898         psS64 stack_id = psMetadataLookupS64(&mdok, row, "stack_id");
     897        psS64 stack_id = psMetadataLookupS64(&mdok, row, "best_stack_id");
    899898        if (!mdok) {
    900899            psWarning("stack_id not found --- ignoring row %ld", i);
Note: See TracChangeset for help on using the changeset viewer.