IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 25, 2006, 1:28:40 PM (20 years ago)
Author:
Paul Price
Message:

Was missing the second exp_id.

File:
1 edited

Legend:

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

    r8606 r8608  
    138138        psFree(query);
    139139        return false;
    140     } 
     140    }
    141141    psFree(query);
    142142
     
    187187        return false;
    188188    }
    189    
     189
    190190    // we have to support multipe exp_ids
    191191    psMetadataItem *item = psMetadataLookup(config->args, "-exp_id");
     
    340340
    341341static bool mapPositionToDetRun(psArray *mds)
    342 { 
     342{
    343343    PS_ASSERT_PTR_NON_NULL(mds, false);
    344344
     
    734734        " JOIN rawDetrendExp"
    735735        " USING(exp_id)"
    736         ); 
     736        );
    737737
    738738    if (config->where) {
     
    746746        psFree(query);
    747747        return false;
    748     } 
     748    }
    749749    psFree(query);
    750750
     
    806806            " AND detProcessedImfile.exp_id IS NULL"
    807807            " AND detProcessedImfile.class_id IS NULL"
    808         ); 
     808        );
    809809
    810810    if (config->where) {
     
    818818        psFree(query);
    819819        return false;
    820     } 
     820    }
    821821    psFree(query);
    822822
     
    861861    // select exp_ids from detInputExp matching det_idp
    862862    // where query should be pre-generated
    863     psArray *detInputExp = 
     863    psArray *detInputExp =
    864864        detInputExpSelectRowObjects(config->dbh, where, 0);
    865865    if (!detInputExp) {
     
    10051005        bg_stdev,
    10061006        bg_mean_stdev
    1007     );   
     1007    );
    10081008    psFree(rawImfiles);
    10091009
     
    10121012        psError(PS_ERR_UNKNOWN, false, "database error");
    10131013        psFree(detRow);
    1014         return false; 
     1014        return false;
    10151015    }
    10161016
     
    10331033    // compare to detProcessedImfiles by det_id/exp_id
    10341034    // found how many imfile there are in each class_id
    1035     // and: 
     1035    // and:
    10361036    // det_id is not in detStackedImfile;
    10371037    // iteration is not in detStackedImfile;
     
    10681068        " HAVING"
    10691069        "    COUNT(detProcessedImfile.class_id) = COUNT(rawImfile.class_id)"
    1070         ); 
     1070        );
    10711071
    10721072    // XXX does it make sens to accept any search params?
     
    10831083        psFree(query);
    10841084        return false;
    1085     } 
     1085    }
    10861086    psFree(query);
    10871087
     
    11401140            " JOIN detRun"
    11411141            "   ON detProcessedImfile.det_id = detRun.position"
    1142         ); 
     1142        );
    11431143    } else {
    11441144        // select detRun.det_type
     
    11731173            "       AND detInputExp.include = 1"
    11741174            "   ) as detProcessedImfile"
    1175         ); 
     1175        );
    11761176    }
    11771177
     
    11861186        psFree(query);
    11871187        return false;
    1188     } 
     1188    }
    11891189    psFree(query);
    11901190
     
    12141214
    12151215    psFree(output);
    1216    
     1216
    12171217    return true;
    12181218}
     
    12351235            }
    12361236        }
    1237         processedImfiles = 
     1237        processedImfiles =
    12381238            detProcessedImfileSelectRowObjects(config->dbh, prunedWhere, 0);
    12391239        psFree(prunedWhere);
    12401240    } else {
    1241         processedImfiles = 
     1241        processedImfiles =
    12421242            detProcessedImfileSelectRowObjects(config->dbh, NULL, 0);
    12431243    }
     
    13671367
    13681368        psFree(rawImfiles);
    1369        
     1369
    13701370#if 0
    13711371        {
     
    14281428                psError(PS_ERR_UNKNOWN, false,
    14291429                    "class_id %s count mismatch - processed: %u raw: %u ",
    1430                     key, *pcount, *rcount 
     1430                    key, *pcount, *rcount
    14311431                );
    14321432                // iterate through processedImfiles and remove *ALL* enteries
     
    15811581        }
    15821582        psFree(rawImfiles);
    1583     } 
    1584    
     1583    }
     1584
    15851585    if (!valid_class_id) {
    1586         psError(PS_ERR_UNKNOWN, true, 
     1586        psError(PS_ERR_UNKNOWN, true,
    15871587            "class_id can not be correlated with the input exposures");
    15881588        return false;
     
    16001600            bg_mean_stdev,
    16011601            normalize
    1602         );   
     1602        );
    16031603
    16041604    // insert the new row into the detProcessedImfile table
     
    16061606        psError(PS_ERR_UNKNOWN, false, "database error");
    16071607        psFree(stackedImfile);
    1608         return false; 
     1608        return false;
    16091609    }
    16101610
     
    16231623
    16241624    psString query = psStringCopy(
    1625         "SELECT" 
     1625        "SELECT"
    16261626        "   detStackedImfile.*"
    16271627        " FROM detStackedImfile"
     
    16291629        "   USING(det_id, iteration, class_id)"
    16301630        " WHERE"
    1631         "   detNormalizedImfile.det_id IS NULL" 
    1632         "   AND detNormalizedImfile.iteration IS NULL" 
    1633         "   AND detNormalizedImfile.class_id IS NULL" 
    1634         ); 
     1631        "   detNormalizedImfile.det_id IS NULL"
     1632        "   AND detNormalizedImfile.iteration IS NULL"
     1633        "   AND detNormalizedImfile.class_id IS NULL"
     1634        );
    16351635
    16361636    if (config->where) {
     
    16441644        psFree(query);
    16451645        return false;
    1646     } 
     1646    }
    16471647    psFree(query);
    16481648
     
    17051705    if (!valid_class_ids) {
    17061706        psError(PS_ERR_UNKNOWN, false, "no detInputExp imfile class_ids found");
    1707         return false; 
    1708     }
    1709    
     1707        return false;
     1708    }
     1709
    17101710    // check class_ids for validity
    17111711    for (long i = 0; i < psArrayLength(stackedImfiles); i++) {
     
    17641764
    17651765    psFree(stackedImfiles);
    1766  
     1766
    17671767    return true;
    17681768}
     
    17791779    // sort to detInputExp.imfiles to find the largest value per det_id/iter
    17801780    // compare imfiles to the number of detStackedImfiles by class_id
    1781     // and: 
     1781    // and:
    17821782    // ???
    17831783    // det_id is not in detStackedImfile;
     
    18031803        "     rawDetrendExp.exp_id"
    18041804        " HAVING MAX(rawDetrendExp.imfiles) = COUNT(detStackedImfile.class_id)"
    1805         ); 
     1805        );
    18061806
    18071807    // XXX does it make sens to accept any search params?
     
    18181818        psFree(query);
    18191819        return false;
    1820     } 
     1820    }
    18211821    psFree(query);
    18221822
     
    18641864        "   USING(det_id, iteration, class_id)"
    18651865        " WHERE"
    1866         "  detNormalizedStatImfile.det_id IS NULL" 
    1867         "  AND detNormalizedStatImfile.iteration IS NULL" 
    1868         "  AND detNormalizedStatImfile.class_id IS NULL" 
     1866        "  detNormalizedStatImfile.det_id IS NULL"
     1867        "  AND detNormalizedStatImfile.iteration IS NULL"
     1868        "  AND detNormalizedStatImfile.class_id IS NULL"
    18691869        );
    18701870
     
    18791879        psFree(query);
    18801880        return false;
    1881     } 
     1881    }
    18821882    psFree(query);
    18831883
     
    19331933}
    19341934
    1935 static detNormalizedStatImfileRow *detStackedToDetNormalizedStatImfile(pxConfig *config, detStackedImfileRow *stackedImfile) 
     1935static detNormalizedStatImfileRow *detStackedToDetNormalizedStatImfile(pxConfig *config, detStackedImfileRow *stackedImfile)
    19361936{
    19371937    PS_ASSERT_PTR_NON_NULL(config, NULL);
     
    19661966
    19671967    psString query = psStringCopy(
    1968         "SELECT" 
     1968        "SELECT"
    19691969        "   detNormalizedStatImfile.*"
    19701970        " FROM detNormalizedStatImfile"
     
    19721972        "   USING(det_id, iteration, class_id)"
    19731973        " WHERE"
    1974         "   detNormalizedImfile.det_id IS NULL" 
    1975         "   AND detNormalizedImfile.iteration IS NULL" 
    1976         "   AND detNormalizedImfile.class_id IS NULL" 
    1977         ); 
     1974        "   detNormalizedImfile.det_id IS NULL"
     1975        "   AND detNormalizedImfile.iteration IS NULL"
     1976        "   AND detNormalizedImfile.class_id IS NULL"
     1977        );
    19781978
    19791979    // XXX does it make sens to accept any search params?
     
    19901990        psFree(query);
    19911991        return false;
    1992     } 
     1992    }
    19931993    psFree(query);
    19941994
     
    20512051            );
    20522052        }
    2053         valid_class_ids = psHashToArray(hash); 
     2053        valid_class_ids = psHashToArray(hash);
    20542054        psFree(hash);
    20552055    }
     
    21132113{
    21142114    PS_ASSERT_PTR_NON_NULL(config, false);
    2115  
     2115
    21162116    // make sure that there is a respondoing entry in detNormalizedStatImfile
    21172117    // select * from detNormalizedStatImfile
     
    21252125        "   USING(det_id, iteration, class_id)"
    21262126        " WHERE"
    2127         "  detNormalizedImfile.det_id IS NULL" 
    2128         "  AND detNormalizedImfile.iteration IS NULL" 
    2129         "  AND detNormalizedImfile.class_id IS NULL" 
     2127        "  detNormalizedImfile.det_id IS NULL"
     2128        "  AND detNormalizedImfile.iteration IS NULL"
     2129        "  AND detNormalizedImfile.class_id IS NULL"
    21302130        );
    21312131
     
    21922192        psFree(query);
    21932193        return false;
    2194     } 
     2194    }
    21952195    psFree(query);
    21962196
     
    22832283
    22842284    psString query = psStringCopy(
    2285         "SELECT" 
     2285        "SELECT"
    22862286        "   detRun.iteration,"
    22872287        "   detRun.det_type,"
     
    23052305        "   AND detProcessedImfile.class_id = detResidImfile.class_id"
    23062306        " WHERE"
    2307         "   detResidImfile.det_id IS NULL" 
    2308         "   AND detResidImfile.iteration IS NULL" 
    2309         "   AND detResidImfile.exp_id IS NULL" 
    2310         "   AND detResidImfile.class_id IS NULL" 
     2307        "   detResidImfile.det_id IS NULL"
     2308        "   AND detResidImfile.iteration IS NULL"
     2309        "   AND detResidImfile.exp_id IS NULL"
     2310        "   AND detResidImfile.class_id IS NULL"
    23112311        " UNION"
    2312         " SELECT" 
     2312        " SELECT"
    23132313        "   detRun.iteration,"
    23142314        "   detRun.det_type,"
     
    23322332        "   AND detStackedImfile.class_id = detResidImfile.class_id"
    23332333        " WHERE"
    2334         "   detResidImfile.det_id IS NULL" 
    2335         "   AND detResidImfile.iteration IS NULL" 
    2336         "   AND detResidImfile.exp_id IS NULL" 
    2337         "   AND detResidImfile.class_id IS NULL" 
     2334        "   detResidImfile.det_id IS NULL"
     2335        "   AND detResidImfile.iteration IS NULL"
     2336        "   AND detResidImfile.exp_id IS NULL"
     2337        "   AND detResidImfile.class_id IS NULL"
    23382338        "   AND detStackedImfile.normalize = 0"
    2339         ); 
     2339        );
    23402340
    23412341    // XXX does it make sens to accept any search params?
     
    23522352        psFree(query);
    23532353        return false;
    2354     } 
     2354    }
    23552355    psFree(query);
    23562356
     
    23882388{
    23892389    PS_ASSERT_PTR_NON_NULL(config, false);
    2390    
     2390
    23912391    // det_id is required
    23922392    // psString det_id is unused in the first query... it is checked for to
     
    24682468{
    24692469    PS_ASSERT_PTR_NON_NULL(config, false);
    2470    
     2470
    24712471    // XXX det_id is requried as a simplification
    24722472    bool status = false;
     
    24932493    if (!valid_class_ids) {
    24942494        psError(PS_ERR_UNKNOWN, false, "no detInputExp imfile class_ids found");
    2495         return false; 
    2496     }
    2497  
     2495        return false;
     2496    }
     2497
    24982498    // check class_ids for validity
    24992499    for (long i = 0; i < psArrayLength(masterImfiles); i++) {
     
    25732573        "   AND detNormalizedImfile.class_id = detResidImfile.class_id"
    25742574        " WHERE"
    2575         "  detResidImfile.det_id IS NULL" 
    2576         "  AND detResidImfile.iteration IS NULL" 
    2577         "  AND detResidImfile.exp_id IS NULL" 
    2578         "  AND detResidImfile.class_id IS NULL" 
    2579         "  AND detInputExp.exp_id = '%s'" 
     2575        "  detResidImfile.det_id IS NULL"
     2576        "  AND detResidImfile.iteration IS NULL"
     2577        "  AND detResidImfile.exp_id IS NULL"
     2578        "  AND detResidImfile.class_id IS NULL"
     2579        "  AND detInputExp.exp_id = '%s'"
    25802580        " UNION"
    2581         " SELECT" 
     2581        " SELECT"
    25822582        "   detStackedImfile.det_id,"
    25832583        "   detStackedImfile.iteration,"
     
    25932593        "   AND detStackedImfile.class_id = detResidImfile.class_id"
    25942594        " WHERE"
    2595         "   detResidImfile.det_id IS NULL" 
    2596         "   AND detResidImfile.iteration IS NULL" 
    2597         "   AND detResidImfile.exp_id IS NULL" 
    2598         "   AND detResidImfile.class_id IS NULL" 
    2599         "   AND detInputExp.exp_id = '%s'" 
     2595        "   detResidImfile.det_id IS NULL"
     2596        "   AND detResidImfile.iteration IS NULL"
     2597        "   AND detResidImfile.exp_id IS NULL"
     2598        "   AND detResidImfile.class_id IS NULL"
     2599        "   AND detInputExp.exp_id = '%s'"
    26002600        "   AND detStackedImfile.normalize = 0"
    26012601        " ) as detNormStackedImfile"
     
    26752675    }
    26762676
    2677     if (!p_psDBRunQuery(config->dbh, query, exp_id)) {
     2677    if (!p_psDBRunQuery(config->dbh, query, exp_id, exp_id)) {
    26782678        psError(PS_ERR_UNKNOWN, false, "database error");
    26792679        psFree(query);
    26802680        return false;
    2681     } 
     2681    }
    26822682    psFree(query);
    26832683
     
    28302830
    28312831    psString query = psStringCopy(
    2832         "SELECT" 
     2832        "SELECT"
    28332833        "   detResidImfile.*"
    28342834        " FROM detResidImfile"
     
    28362836        "   USING(det_id, iteration, exp_id)"
    28372837        " WHERE"
    2838         "   detResidExp.det_id IS NULL" 
    2839         "   AND detResidExp.iteration IS NULL" 
    2840         "   AnD detResidExp.exp_id IS NULL" 
    2841         ); 
     2838        "   detResidExp.det_id IS NULL"
     2839        "   AND detResidExp.iteration IS NULL"
     2840        "   AnD detResidExp.exp_id IS NULL"
     2841        );
    28422842
    28432843    if (config->where) {
     
    28512851        psFree(query);
    28522852        return false;
    2853     } 
     2853    }
    28542854    psFree(query);
    28552855
     
    29052905    // find all exp_ids in the current det_id/iteration from detInputExp
    29062906    // compare to detInputExp.imfiles to derResidImfile by class_id
    2907     // and: 
     2907    // and:
    29082908    // detResidImfile.{det_id, iteration, exp_id} is not in detResidExp
    29092909
     
    29462946        "       rawDetrendExp.imfiles = COUNT(detResidImfile.class_id)"
    29472947        " ) AS toresidexp"
    2948         ); 
     2948        );
    29492949
    29502950    // XXX does it make sens to accept any search params?
     
    29612961        psFree(query);
    29622962        return false;
    2963     } 
     2963    }
    29642964    psFree(query);
    29652965
     
    30143014    // find all exp_ids in the current det_id/iteration from detInputExp
    30153015    // compare to detInputExp.imfiles to derResidImfile by class_id
    3016     // and: 
     3016    // and:
    30173017    // detResidImfile.{det_id, iteration, exp_id} is not in detResidExp
    30183018
     
    30543054        "       rawDetrendExp.imfiles = COUNT(detResidImfile.class_id)"
    30553055        " ) AS toresidexp"
    3056         ); 
     3056        );
    30573057
    30583058    {
     
    31183118        psFree(query);
    31193119        return false;
    3120     } 
     3120    }
    31213121    psFree(query);
    31223122
     
    32793279{
    32803280    PS_ASSERT_PTR_NON_NULL(config, false);
    3281  
     3281
    32823282    // no options are required... use the default where statement
    32833283    psArray *residExps = detResidExpSelectRowObjects(config->dbh,
     
    33193319     * detrend type) which have completed all residexps.
    33203320     */
    3321  
     3321
    33223322    // select detRun.position
    33233323    // select detRun.iteration
     
    33563356        "       COUNT(detResidExp.exp_id) = COUNT(detInputExp.exp_id)"
    33573357        " ) AS residdetrun"
    3358         ); 
     3358        );
    33593359
    33603360    // XXX does it make sens to accept any search params?
     
    33713371        psFree(query);
    33723372        return false;
    3373     } 
     3373    }
    33743374    psFree(query);
    33753375
     
    36123612        "       COUNT(detResidExp.exp_id) = COUNT(detInputExp.exp_id)"
    36133613        " ) AS residdetrun"
    3614         ); 
     3614        );
    36153615
    36163616    {
     
    36613661        psFree(query);
    36623662        return false;
    3663     } 
     3663    }
    36643664    psFree(query);
    36653665
     
    38183818    // else
    38193819    // -again
    3820  
     3820
    38213821    // select detRun.position
    38223822    // select detRun.iteration
     
    38523852        " HAVING"
    38533853        "   COUNT(detResidExp.exp_id) = COUNT(detInputExp.exp_id)"
    3854         ); 
     3854        );
    38553855
    38563856    if (!p_psDBRunQuery(config->dbh, query)) {
     
    38583858        psFree(query);
    38593859        return false;
    3860     } 
     3860    }
    38613861    psFree(query);
    38623862
     
    39123912            return false;
    39133913        }
    3914        
     3914
    39153915        // detResidExp.include is used to set detInputExp.include
    39163916        if (!detInputExpInsert(
     
    40674067{
    40684068    PS_ASSERT_PTR_NON_NULL(config, false);
    4069  
     4069
    40704070    // det_id is required
    40714071    bool status = false;
     
    41064106            }
    41074107
    4108             if (!psMetadataAddStr(where, PS_LIST_TAIL, "exp_id", 
     4108            if (!psMetadataAddStr(where, PS_LIST_TAIL, "exp_id",
    41094109                        PS_META_DUPLICATE_OK, "==", exp_id)) {
    41104110                psError(PS_ERR_UNKNOWN, false, "failed to add item exp_id");
     
    41804180    while ((mItem = psListGetAndIncrement(iter))) {
    41814181        detInputExpRow *inputExp = psHashLookup(valid_exp_ids,
    4182                 (char *)mItem->data.V); 
     4182                (char *)mItem->data.V);
    41834183        if (!inputExp) {
    41844184            // rollback
Note: See TracChangeset for help on using the changeset viewer.