IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 19621 for trunk/ippTools


Ignore:
Timestamp:
Sep 19, 2008, 2:11:37 PM (18 years ago)
Author:
eugene
Message:

changing detrend verify mode to behave just like master mode in terms of processing and residual generation; adding ref_det_id, ref_iter to detRun and detResidImfile, modifying the foreign constraint; adding a simtest suite to test the detrend verify mode

Location:
trunk/ippTools
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippTools/share/dettool_addprocessedexp.sql

    r19092 r19621  
    2121WHERE
    2222  detRun.state = 'run'
    23   AND detRun.mode = 'master'
     23  AND (detRun.mode = 'master' or detRun.mode = 'verify')
    2424  AND detProcessedExp.det_id IS NULL
    2525  AND detProcessedExp.exp_id IS NULL
  • trunk/ippTools/share/dettool_childlessrun.sql

    r18561 r19621  
    55 FROM detRun
    66 LEFT JOIN detRun as foo
    7    ON foo.parent = detRun.det_id
     7   ON foo.ref_det_id = detRun.det_id
     8-- XXX do we need to restrict to foo.ref_iter = detRun.iteration ?   
    89 WHERE
    910   detRun.state = 'stop'
  • trunk/ippTools/share/dettool_stop_completed_correct_runs.sql

    r15830 r19621  
    88    FROM detRun AS det1
    99    INNER JOIN detRun as det2
    10         ON det1.parent = det2.det_id
     10        ON det1.ref_det_run = det2.det_id
     11        -- do we need to restrict by iteration?  not clear this logic below is right or tested
    1112    JOIN detNormalizedImfile as imfile
    1213        ON det2.det_id = imfile.det_id
  • trunk/ippTools/share/dettool_tocorrectimfile.sql

    r15828 r19621  
     1-- select imfiles from detRun 1 (the reference detRun) that match the desired correction in detRun 2
    12SELECT
    23    det1.*,
     
    1415    imfile.fault
    1516FROM detRun AS det1
    16 INNER JOIN detRun as det2
    17     ON det1.parent = det2.det_id
     17JOIN detRun as det2
     18    ON det1.ref_det_id = det2.det_id
    1819JOIN detNormalizedImfile as imfile
    19     ON det2.det_id = imfile.det_id
    20     AND det2.iteration = imfile.iteration
     20    ON det1.ref_det_id = imfile.det_id
     21    AND det1.ref_iter = imfile.iteration
    2122LEFT JOIN detRegisteredImfile
    2223    ON det1.det_id = detRegisteredImfile.det_id
  • trunk/ippTools/share/dettool_toprocessedexp.sql

    r15769 r19621  
    4848    WHERE
    4949        detRun.state = 'run'
    50         AND detRun.mode = 'master'
     50        AND (detRun.mode = 'master' or detRun.mode = 'verify')
    5151        AND detProcessedExp.det_id IS NULL
    5252        AND detProcessedExp.exp_id IS NULL
  • trunk/ippTools/share/dettool_toprocessedimfile.sql

    r14045 r19621  
    1919WHERE
    2020    detRun.state = 'run'
    21     AND detRun.mode = 'master'
     21    AND (detRun.mode = 'master' or detRun.mode = 'verify')
    2222    AND detProcessedImfile.det_id IS NULL
    2323    AND detProcessedImfile.exp_id IS NULL
  • trunk/ippTools/share/dettool_toresidimfile.sql

    r18561 r19621  
    1414    detProcessedImfile.uri,
    1515    detNormalizedImfile.uri AS det_uri,
     16    detRun.det_id AS ref_det_id,
     17    detRun.iteration AS ref_iter,
    1618    rawExp.camera,
    1719    rawExp.exp_tag
     
    5355    detRun.workdir,
    5456    detRun.reduction,
    55     rawImfile.exp_id,
    56     rawImfile.class_id,
    57     rawImfile.uri,
    58     'NULL' AS det_uri,
     57    detProcessedImfile.exp_id,
     58    detProcessedImfile.class_id,
     59    detProcessedImfile.uri,
     60    detNormalizedImfile.uri AS det_uri,
     61    detRun.ref_det_id,
     62    detRun.ref_iter,
    5963    rawExp.camera,
    6064    rawExp.exp_tag
    6165FROM detRun
     66JOIN detRun AS detRunRef
     67  ON detRunRef.det_id = detRun.ref_det_id
    6268JOIN detInputExp
    63     USING(det_id, iteration)
     69  ON detInputExp.det_id    = detRun.det_id
     70 AND detInputExp.iteration = detRun.iteration
    6471JOIN rawExp
    65     ON detInputExp.exp_id = rawExp.exp_id
    66 JOIN rawImfile
    67     ON detInputExp.exp_id = rawImfile.exp_id
     72  ON rawExp.exp_id = detInputExp.exp_id
     73JOIN detProcessedImfile
     74  ON detProcessedImfile.det_id    = detRun.det_id
     75 AND detProcessedImfile.exp_id    = detInputExp.exp_id
     76JOIN detNormalizedImfile
     77  ON detNormalizedImfile.det_id    = detRun.ref_det_id
     78 AND detNormalizedImfile.iteration = detRun.ref_iter
     79 AND detNormalizedImfile.class_id  = detProcessedImfile.class_id
    6880LEFT JOIN detResidImfile
    69     ON detRun.det_id = detResidImfile.det_id
    70     AND detRun.iteration = detResidImfile.iteration
    71     AND rawImfile.exp_id = detResidImfile.exp_id
    72     AND rawImfile.class_id = detResidImfile.class_id
     81  ON detResidImfile.det_id    = detRun.det_id     
     82 AND detResidImfile.iteration = detRun.iteration   
     83 AND detResidImfile.exp_id    = detProcessedImfile.exp_id   
     84 AND detResidImfile.class_id  = detProcessedImfile.class_id
    7385WHERE
    74     detRun.state = 'run'
    75     AND detRun.mode = 'verify'
    76     -- AND detNormalizedImfile.fault = 0
    77     -- AND detNormalizedExp.fault = 0
    78     AND detResidImfile.det_id IS NULL
    79     AND detResidImfile.iteration IS NULL
    80     AND detResidImfile.exp_id IS NULL
    81     AND detResidImfile.class_id IS NULL
     86 detRun.state = 'run'
     87 AND detRun.mode = 'verify'
     88 AND detRunRef.state = 'stop'
     89 AND detNormalizedImfile.fault = 0
     90 AND detResidImfile.det_id IS NULL
     91 AND detResidImfile.iteration IS NULL
     92 AND detResidImfile.exp_id IS NULL
     93 AND detResidImfile.class_id IS NULL
    8294ORDER BY exp_id
  • trunk/ippTools/share/pxadmin_create_tables.sql

    r19558 r19621  
    444444    solang_max FLOAT,
    445445    label VARCHAR(64),
    446     parent INT,
     446    ref_det_id BIGINT,
     447    ref_iter INT,
     448    -- parent INT, :: dropping this
    447449    PRIMARY KEY(det_id),
    448450    KEY(det_id),
     
    452454    KEY(state),
    453455    KEY(label),
    454     KEY(parent),
     456    -- KEY(parent), :: dropping this
    455457    INDEX(det_id, iteration))
    456458ENGINE=innodb DEFAULT CHARSET=latin1;
     
    616618    det_id BIGINT,
    617619    iteration INT,
     620    ref_det_id BIGINT,
     621    ref_iter INT,
    618622    exp_id BIGINT,
    619623    class_id VARCHAR(64),
     
    647651    FOREIGN KEY (det_id, exp_id, class_id)
    648652    REFERENCES  detProcessedImfile(det_id, exp_id, class_id),
    649     FOREIGN KEY (det_id, iteration)
     653    FOREIGN KEY (ref_det_id, ref_iter)
    650654    REFERENCES  detNormalizedExp(det_id, iteration)
    651655) ENGINE=innodb DEFAULT CHARSET=latin1;
  • trunk/ippTools/src/dettool.c

    r19092 r19621  
    234234    // optional
    235235    PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
    236     PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);
     236
    237237    // check mode
    238     if (mode && !isValidMode(config, mode)) {
    239         psError(PS_ERR_UNKNOWN, false, "invalud mode");
    240         return false;
    241     }
     238    PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied
     239    if (!isValidMode(config, mode)) {
     240        psError(PS_ERR_UNKNOWN, false, "invalid mode");
     241        return false;
     242    }
     243
     244    // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise
     245    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false);
     246    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false);
     247    if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) {
     248        psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
     249        return false;
     250    }
     251    if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) {
     252        psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
     253        return false;
     254    }
     255       
    242256    PXOPT_LOOKUP_STR(camera, config->args, "-inst", false, false);
    243257    PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
     
    368382                 solang_max,
    369383                 label,
    370                  0       // parent
     384                 ref_det_id,
     385                 ref_iter
    371386        );
    372387    psS64 det_id = psDBLastInsertID(config->dbh);
     
    469484    PXOPT_LOOKUP_STR(camera, config->args, "-inst", true, false);
    470485
    471     // optional
    472     PXOPT_LOOKUP_STR(mode, config->args, "-mode", false, false);
    473486    // check mode
    474     if (mode && !isValidMode(config, mode)) {
     487    PXOPT_LOOKUP_STR(mode, config->args, "-mode", true, false); // default ('master') is supplied
     488    if (!isValidMode(config, mode)) {
    475489        psError(PS_ERR_UNKNOWN, false, "invalid mode");
    476490        return false;
    477491    }
     492
     493    // get -ref_det_id and -ref_iter : required for 'verify' mode / disallowed otherwise
     494    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false);
     495    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false);
     496    if (!strncmp(mode, "verify", 7) && ((ref_det_id == 0) || (ref_iter == -1))) {
     497        psError(PS_ERR_UNKNOWN, false, "verify mode requires both -ref_det_id and -ref_iter");
     498        return false;
     499    }
     500    if (strncmp(mode, "verify", 7) && ((ref_det_id != 0) || (ref_iter != -1))) {
     501        psError(PS_ERR_UNKNOWN, false, "master mode cannot have -ref_det_id or -ref_iter set");
     502        return false;
     503    }
     504
    478505    PXOPT_LOOKUP_STR(filelevel, config->args, "-filelevel", false, false);
    479506    PXOPT_LOOKUP_STR(telescope, config->args, "-telescope", false, false);
     
    623650                 solang_max,
    624651                 label,
    625                  0       // parent
     652                 ref_det_id,
     653                 ref_iter
    626654        );
    627655    psS64 det_id = psDBLastInsertID(config->dbh);
     
    692720{
    693721    PS_ASSERT_PTR_NON_NULL(config, false);
    694 
    695722   
     723    // XXX this mode is not well-tested: probably need to specify iteration here
     724    // XXX pass the supplied det_id and iteration as ref_det_id, or get from command line?
    696725    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
    697726    PXOPT_LOOKUP_STR(det_type, config->args, "-set_det_type", false, false); // optional
     
    745774
    746775    // pull the detRun object out the result array
     776    // XXX need to assign or re-assign the ref_det_id and ref_iter values
    747777    detRunRow *detRun = psMemIncrRefCounter(detRuns->data[0]);
    748778
     
    962992
    963993    PXOPT_COPY_STR(config->args, where, "-inst", "camera", "==");
     994    PXOPT_COPY_STR(config->args, where, "-mode", "mode", "==");
    964995    PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "==");
    965996    PXOPT_COPY_STR(config->args, where, "-filter", "filter", "==");
     
    15411572    PXOPT_LOOKUP_TIME(use_begin, config->args, "-use_begin", false, false);
    15421573    PXOPT_LOOKUP_TIME(use_end, config->args, "-use_end", false, false);
    1543     PXOPT_LOOKUP_S64(parent, config->args, "-parent", false, false);
     1574    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", false, false);
     1575    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", false, false);
    15441576    PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
    15451577    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     
    15781610                      solang_min,
    15791611                      solang_max,
    1580                       label,      // label
    1581                       parent
     1612                      label,
     1613                      ref_det_id,
     1614                      ref_iter
    15821615            )) {
    15831616        psError(PS_ERR_UNKNOWN, false, "database error");
     
    17511784
    17521785    // check that state is a valid string value
    1753     if (!(
    1754             (strncmp(mode, "master", 7) == 0)
    1755             || (strncmp(mode, "verify", 7) == 0)
    1756         )
    1757     ) {
    1758         psError(PS_ERR_UNKNOWN, false,
    1759                 "invalid detRun mode: %s", mode);
    1760         return false;
    1761     }
    1762 
    1763     return true;
     1786    if (!strncmp(mode, "master", 7)) return true;
     1787    if (!strncmp(mode, "verify", 7)) return true;
     1788
     1789    psError(PS_ERR_UNKNOWN, false, "invalid detRun mode: %s", mode);
     1790    return false;
    17641791}
    17651792
  • trunk/ippTools/src/dettoolConfig.c

    r19092 r19621  
    7878    psMetadataAddStr(definebytagArgs, PS_LIST_TAIL, "-label",  0,            "define detrun label", NULL);
    7979    psMetadataAddBool(definebytagArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     80
     81    psMetadataAddS64(definebytagArgs, PS_LIST_TAIL, "-ref_det_id", 0,           "define reference detrend (verify mode only)", 0);
     82    psMetadataAddS32(definebytagArgs, PS_LIST_TAIL, "-ref_iter", 0,           "define reference detrend (verify mode only)", -1);
    8083
    8184    // -definebyquery
     
    129132    psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-random_subset",  0,            "use a random subset of elements", false);
    130133    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-random_limit",  0,            "use this number of random elements", 20);
     134    psMetadataAddS64(definebyqueryArgs, PS_LIST_TAIL, "-ref_det_id", 0,           "define reference detrend (verify mode only)", 0);
     135    psMetadataAddS32(definebyqueryArgs, PS_LIST_TAIL, "-ref_iter", 0,           "define reference detrend (verify mode only)", -1);
    131136
    132137    // -definebydetrun
     
    163168    // -makecorrection
    164169    psMetadata *makecorrectionArgs = psMetadataAlloc();
    165     psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id",  0,            "det ID to be corrected (required)", 0);
     170    psMetadataAddS64(makecorrectionArgs, PS_LIST_TAIL, "-det_id",  0,     "detRun det_id to be corrected (required)", 0);
     171    psMetadataAddS32(makecorrectionArgs, PS_LIST_TAIL, "-iteration",  0,  "detRun iteration to be corrected (required)", -1);;
    166172    psMetadataAddBool(makecorrectionArgs, PS_LIST_TAIL, "-simple", 0,            "use the simple output format", false);
    167173
     
    203209    psMetadataAddF32(runsArgs, PS_LIST_TAIL, "-ccd_temp", 0,            "match ccd temp", NAN);
    204210    psMetadataAddF64(runsArgs, PS_LIST_TAIL, "-posang", 0,            "match posang", NAN);
     211    psMetadataAddStr(runsArgs, PS_LIST_TAIL, "-mode", 0,            "search for det run by mode", NULL);
    205212    psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
    206213    psMetadataAddBool(runsArgs, PS_LIST_TAIL, "-active",  0,            "only return active detRuns", false);
     
    216223    psMetadata *inputArgs = psMetadataAlloc();
    217224    psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-det_id", 0,            "search for detrend ID", 0);
    218     psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration",  0,            "define iteration number", 0);
     225    psMetadataAddS32(inputArgs, PS_LIST_TAIL, "-iteration",  0,            "search for iteration number (default 0)", 0);
    219226    psMetadataAddS64(inputArgs, PS_LIST_TAIL, "-exp_id",  0,            "search for exp ID", 0);
    220227    psMetadataAddBool(inputArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     
    591598
    592599    // -addresidimfile
     600    // XXX does a default value of 0 mean the entry is not instatiated? what about a supplied value of 0?
    593601    psMetadata *addresidimfileArgs = psMetadataAlloc();
    594602    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-det_id",  0,            "define detrend ID (required)", 0);
    595     psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration",  0,            "define iteration number", 0);
     603    psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-iteration",  0,         "define iteration number", 0);
     604    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-ref_det_id",  0,        "define reference detrend ID (required)", 0);
     605    psMetadataAddS32(addresidimfileArgs, PS_LIST_TAIL, "-ref_iter",  0,          "define reference iteration number (required)", -1);
    596606    psMetadataAddS64(addresidimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "define detrend ID (required)", 0);
    597     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "define class ID (required)", NULL);
    598     psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code", 0);
    599     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri",  0,            "define resid file URI", NULL);
    600     psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip",  0,            "define recipe", NULL);
    601     psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg",  0,            "define exposure background", NAN);
     607    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-class_id",  0,          "define class ID (required)", NULL);
     608    psMetadataAddS16(addresidimfileArgs, PS_LIST_TAIL, "-code",  0,              "set fault code", 0);
     609    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-uri",  0,               "define resid file URI", NULL);
     610    psMetadataAddStr(addresidimfileArgs, PS_LIST_TAIL, "-recip",  0,             "define recipe", NULL);
     611    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg",  0,                "define exposure background", NAN);
    602612    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_stdev",  0,            "define exposure background stdev", NAN);
    603613    psMetadataAddF64(addresidimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev",  0,            "define exposure background mean stdev", NAN);
     
    815825    psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_begin",  0,            "start of detrend run applicable period", NULL);
    816826    psMetadataAddTime(register_detrendArgs, PS_LIST_TAIL, "-use_end",  0,            "end of detrend run applicable period", NULL);
    817     psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-parent",  0,            "define parent det_id", 0);
     827    psMetadataAddS64(register_detrendArgs, PS_LIST_TAIL, "-ref_det_id",  0,            "define reference det_id", 0);
     828    psMetadataAddS32(register_detrendArgs, PS_LIST_TAIL, "-ref_iter",  0,            "define reference iteration", -1);
    818829    psMetadataAddStr(register_detrendArgs, PS_LIST_TAIL, "-label",  0,            "define detrun label", NULL);
    819830    psMetadataAddBool(register_detrendArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
  • trunk/ippTools/src/dettool_correction.c

    r19092 r19621  
    2424    PS_ASSERT_PTR_NON_NULL(config, false);
    2525
    26     PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
     26    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-det_id", true, false); // required
     27    PXOPT_LOOKUP_S32(ref_iter, config->args, "-iteration", true, false); // required
    2728    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); // optional
    2829
    2930    // build the needed where
    3031    psMetadata *where = psMetadataAlloc();
    31     psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", det_id);
     32    psMetadataAddS64(where, PS_LIST_TAIL, "det_id", 0, "==", ref_det_id);
     33    psMetadataAddS32(where, PS_LIST_TAIL, "iteration", 0, "==", ref_iter);
    3234    psArray *runs = detRunSelectRowObjects(config->dbh, where, 1);
    3335    psFree (where);
     
    7476         detRun->solang_max,
    7577         detRun->label,
    76          detRun->det_id // parent
     78         detRun->det_id, // ref_det_id
     79         detRun->iteration // ref_iter
    7780    );
    7881
  • trunk/ippTools/src/dettool_processedimfile.c

    r19092 r19621  
    165165    PS_ASSERT_PTR_NON_NULL(config, false);
    166166
    167     char *value = NULL;
     167    bool hasWhere = false;
    168168
    169169    PXOPT_LOOKUP_BOOL(included, config->args, "-included", false);
     
    173173
    174174    psMetadata *where = psMetadataAlloc();
    175     PXOPT_COPY_S64(config->args, where, "-det_id", "det_id", "==");
    176     PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "==");
    177     PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "==");
     175    PXOPT_COPY_S64(config->args, where, "-det_id", "detProcessedImfile.det_id", "==");
     176    PXOPT_COPY_S64(config->args, where, "-exp_id", "detProcessedImfile.exp_id", "==");
     177    PXOPT_COPY_STR(config->args, where, "-class_id", "detProcessedImfile.class_id", "==");
     178    PXOPT_COPY_STR(config->args, where, "-select_state", "detRun.state", "==");
     179    PXOPT_COPY_STR(config->args, where, "-select_mode", "detRun.mode", "==");
    178180
    179181    psString query = pxDataGet("dettool_processedimfile.sql");
     
    184186    }
    185187
    186     // add the two required restrictions: detRun.state and detRun.mode
    187     // NOTE the above query requires one of the following two WHERE statements
    188     {
    189         bool status;
    190         if ((value = psMetadataLookupStr(&status, config->args, "-select_state"))) {
    191             psStringAppend(&query, " WHERE detRun.state = '%s'", value);
    192         } else {
    193             psStringAppend(&query, " WHERE detRun.state = 'run'");
    194         }
    195         if ((value = psMetadataLookupStr(&status, config->args, "-select_mode"))) {
    196             psStringAppend(&query, " AND detRun.mode = '%s'", value);
    197         } else {
    198             psStringAppend(&query, " AND detRun.mode = 'master'");
    199         }
    200     }
    201 
    202188    if (psListLength(where->list)) {
    203         psString whereClause = psDBGenerateWhereConditionSQL(where, "detProcessedImfile");
    204         psStringAppend(&query, " AND %s", whereClause);
     189        psString whereClause = psDBGenerateWhereSQL(where, NULL);
     190        psStringAppend(&query, " %s", whereClause);
    205191        psFree(whereClause);
     192        hasWhere = true;
    206193    }
    207194    psFree (where);
     
    209196    // restrict search to included imfiles
    210197    if (included) {
    211         psStringAppend(&query, " AND detInputExp.include = 1");
     198        if (hasWhere) {
     199            psStringAppend(&query, " AND detInputExp.include = 1");
     200        } else {
     201            psStringAppend(&query, " WHERE detInputExp.include = 1");
     202        }
     203        hasWhere = true;
     204    }
     205
     206    if (hasWhere) {
     207        psStringAppend(&query, " AND");
     208    } else {
     209        psStringAppend(&query, " WHERE");
    212210    }
    213211
    214212    if (faulted) {
    215         // list only faulted rows
    216         psStringAppend(&query, " %s", "AND detProcessedImfile.fault != 0");
     213        psStringAppend(&query, " %s", " detProcessedImfile.fault != 0");
    217214    } else {
    218215        // don't list faulted rows
    219         psStringAppend(&query, " %s", "AND detProcessedImfile.fault = 0");
     216        psStringAppend(&query, " %s", " detProcessedImfile.fault = 0");
    220217    }
    221218
  • trunk/ippTools/src/dettool_residimfile.c

    r19092 r19621  
    7878    PXOPT_LOOKUP_S64(det_id, config->args, "-det_id", true, false); // required
    7979    PXOPT_LOOKUP_S32(iteration, config->args, "-iteration", false, false);
     80
     81    PXOPT_LOOKUP_S64(ref_det_id, config->args, "-ref_det_id", true, false); // required
     82    PXOPT_LOOKUP_S32(ref_iter, config->args, "-ref_iter", true, false);
     83
    8084    PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", true, false); // required
    8185    PXOPT_LOOKUP_STR(class_id, config->args, "-class_id", true, false); // required
     
    106110            det_id,
    107111            iteration,
     112            ref_det_id,
     113            ref_iter,
    108114            exp_id,
    109115            class_id,
Note: See TracChangeset for help on using the changeset viewer.