IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
May 3, 2010, 8:50:52 AM (16 years ago)
Author:
eugene
Message:

updates from trunk

Location:
branches/simtest_nebulous_branches
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/simtest_nebulous_branches

  • branches/simtest_nebulous_branches/ippTools/src

    • Property svn:ignore
      •  

        old new  
         1*.la
         2*.lo
        13.deps
        24.gdb_history
         
        46Makefile
        57Makefile.in
         8addtool
         9caltool
         10camtool
         11chiptool
        612config.h
        713config.h.in
        8 stamp-h1
        9 *.la
        10 *.lo
         14detselect
         15dettool
         16difftool
         17disttool
         18dqstatstool
         19faketool
         20flatcorr
         21guidetool
         22magicdstool
         23magictool
         24pstamptool
         25pubtool
         26pxadmin
         27pxdata.c
         28pxinject
        1129pxtoolsErrorCodes.c
        1230pxtoolsErrorCodes.h
        13 pxadmin
        14 pxinject
        15 pztool
        1631pzgetexp
        1732pzgetimfiles
         33pztool
         34receivetool
        1835regtool
        19 guidetool
        20 chiptool
        21 camtool
         36stacktool
         37stamp-h1
        2238warptool
        23 difftool
        24 stacktool
        25 faketool
        26 dettool
        27 detselect
        28 pxdata.c
        29 magictool
        30 magicdstool
        31 caltool
        32 flatcorr
        33 pstamptool
        34 disttool
        35 receivetool
        36 
        37 pubtool
  • branches/simtest_nebulous_branches/ippTools/src/stacktool.c

    r24954 r27840  
    109109
    110110    // required options
    111     PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false);
    112     PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
    113     PXOPT_LOOKUP_STR(reduction, config->args, "-reduction", false, false);
    114     PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false);
     111    PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false);
     112
     113    // optional
     114    PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
     115    PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false);
     116    PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false);
     117    PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false);
     118    PXOPT_LOOKUP_STR(dvodb, config->args, "-set_dvodb", false, false);
     119    PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
     120    PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false);
    115121
    116122    psMetadata *where = psMetadataAlloc();
     
    118124
    119125    // select based on properties of the raw exposures
     126    PXOPT_COPY_STR(config->args,  where, "-select_comment",            "rawExp.comment", "LIKE");
    120127    PXOPT_COPY_STR(config->args,  where, "-select_inst",               "rawExp.camera", "==");
    121128    PXOPT_COPY_STR(config->args,  where, "-select_telescope",          "rawExp.telescope", "==");
     
    139146    PXOPT_COPY_F32(config->args,  where, "-select_fwhm_minor_min",     "camProcessedExp.fwhm_minor", ">=");
    140147    PXOPT_COPY_F32(config->args,  where, "-select_fwhm_minor_max",     "camProcessedExp.fwhm_minor", "<=");
     148    PXOPT_COPY_F32(config->args,  where, "-select_iq_m2_max",          "camProcessedExp.iq_m2", "<=");
     149    PXOPT_COPY_F32(config->args,  where, "-select_iq_m2_min",          "camProcessedExp.iq_m2", ">=");
     150    PXOPT_COPY_F32(config->args,  where, "-select_iq_m3_max",          "camProcessedExp.iq_m3", "<=");
     151    PXOPT_COPY_F32(config->args,  where, "-select_iq_m4_min",          "camProcessedExp.iq_m4", ">=");
     152    PXOPT_COPY_F32(config->args,  where, "-select_iq_m4_max",          "camProcessedExp.iq_m4", "<=");
     153
    141154    PXOPT_COPY_STR(config->args,  where, "-select_exp_type",           "rawExp.exp_type", "==");
    142155    PXOPT_COPY_F32(config->args,  where, "-select_good_frac_min",      "warpSkyfile.good_frac", ">=");
    143156    PXOPT_COPY_STR(config->args,  where, "-select_skycell_id",         "warpSkyfile.skycell_id", "==");
    144     pxAddLabelSearchArgs (config, where, "-select_label",              "warpRun.label", "LIKE");
     157    PXOPT_COPY_STR(config->args,  where, "-select_data_group",         "warpRun.data_group", "==");
     158    pxAddLabelSearchArgs (config, where, "-select_label",              "warpRun.label", "LIKE"); // define using warp label
    145159
    146160    // these are used to build the HAVING restriction
    147161    PXOPT_COPY_S32(config->args, having, "-min_num", "num_warp", ">=");
     162    PXOPT_LOOKUP_S32(min_num,     config->args, "-min_num",  false, false);
     163    if (min_num < 2) {
     164        psError(PXTOOLS_ERR_CONFIG, true, "Require at least two inputs for a stack, but min_num = %d",
     165                min_num);
     166        psFree(where);
     167        psFree(having);
     168        return false;
     169    }
    148170
    149171    // other options applied outside of the WHERE
     
    154176    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    155177    PXOPT_LOOKUP_BOOL(pretend, config->args, "-pretend", false);
    156     PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false);
    157 
    158     if (!psListLength(where->list) &&
    159         !psMetadataLookupBool(NULL, config->args, "-all")) {
     178
     179    if (!psListLength(where->list)) {
     180        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    160181        psFree(where);
    161         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
    162         return false;
    163     }
    164 
    165     psString select = pxDataGet("stacktool_definebyquery_part1.sql");
     182        psFree(having);
     183        return false;
     184    }
     185
     186    psString select = pxDataGet("stacktool_definebyquery_select.sql");
    166187    if (!select) {
    167         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    168         return false;
    169     }
    170 
     188        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     189        psFree(where);
     190        psFree(having);
     191        return false;
     192    }
     193
     194    psString where1 = psStringCopy("");
    171195    if (psListLength(where->list)) {
    172196        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    173         psStringAppend(&select, " AND %s", whereClause);
     197        psStringAppend(&where1, "\nAND %s", whereClause);
    174198        psFree(whereClause);
    175199    }
    176200
    177     psString groupby = pxDataGet("stacktool_definebyquery_part2.sql");
    178     if (!groupby) {
    179         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    180         psFree(where);
    181         return false;
    182     }
    183     psStringAppend(&select, " %s", groupby);
    184     psFree(groupby);
     201    psString where2 = psStringCopy("");
     202    if (label) {
     203        psStringAppend(&where2, "\nWHERE stackRun.label = '%s'", label);
     204    }
    185205
    186206    // Restriction on aggregated quantities using HAVING
     
    214234    psFree(having);
    215235
    216     if (!p_psDBRunQuery(config->dbh, select)) {
     236    if (!p_psDBRunQueryF(config->dbh, select, where1, where2)) {
    217237        psError(PS_ERR_UNKNOWN, false, "database error");
    218238        psFree(select);
    219         psFree(where);
     239        psFree(where1);
     240        psFree(where2);
    220241        return false;
    221242    }
    222243    psFree(select);
     244    psFree(where1);
     245    psFree(where2);
    223246
    224247    psArray *output = p_psDBFetchResult(config->dbh);
     
    262285    }
    263286    if (!insert) {
    264         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     287        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    265288        psFree(where);
    266289        return false;
     
    277300        psString part2 = pxDataGet("stacktool_definebyquery_insert_random_part2.sql");
    278301        if (!part2) {
    279             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     302            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    280303            psFree(insert);
    281304            return false;
     
    339362            workdir,
    340363            label,
     364            data_group ? data_group : label,
     365            dist_group,
    341366            reduction,
    342367            dvodb,
     
    344369            skycell_id,
    345370            tess_id,
    346             filter);
     371            filter,
     372            note);
    347373
    348374        if (!stackRunInsertObject(config->dbh, run)) {
     
    462488
    463489    // required options
    464     PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", true, false);
     490    PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false);
    465491    PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false);
    466492    PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", true, false);
     
    469495    // default
    470496    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
    471     PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false);
     497    PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false);
    472498
    473499    // options
    474     PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
    475     PXOPT_LOOKUP_STR(reduction, config->args, "-reduction", false, false);
    476     PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false);
     500    PXOPT_LOOKUP_STR(label, config->args, "-set_label", false, false);
     501    PXOPT_LOOKUP_STR(data_group, config->args, "-set_data_group", false, false);
     502    PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false);
     503    PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
     504    PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false);
     505    PXOPT_LOOKUP_STR(dvodb, config->args, "-set_dvodb", false, false);
    477506
    478507    // we have to support multipe exp_ids
     
    489518        workdir,
    490519        label,
     520        data_group ? data_group : label,
     521        dist_group,
    491522        reduction,
    492523        dvodb,
     
    494525        skycell_id,
    495526        tess_id,
    496         filter);
     527        filter,
     528        note);
    497529
    498530    if (!run) {
     
    563595    PS_ASSERT_PTR_NON_NULL(config, false);
    564596
    565     PXOPT_LOOKUP_S64(stack_id, config->args, "-stack_id", true, false);
     597#ifdef notdef
     598    PXOPT_LOOKUP_S64(stack_id, config->args, "-stack_id", false, false);
    566599    PXOPT_LOOKUP_STR(state, config->args, "-state", true, false);
    567 
    568     if (state) {
     600    PXOPT_LOOKUP_STR(label, config->args, "-label", false, false);
     601#endif
     602    psMetadata *where = psMetadataAlloc();
     603    PXOPT_COPY_S64(config->args, where, "-stack_id",  "stack_id",   "==");
     604    PXOPT_COPY_STR(config->args, where, "-label",     "label",     "==");
     605    PXOPT_COPY_STR(config->args, where, "-state",     "state",     "==");
     606    if (!psListLength(where->list)) {
     607        psFree(where);
     608        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
     609        return false;
     610    }
     611
     612    psString query = psStringCopy("UPDATE stackRun");
     613
     614    // pxUpdateRun gets parameters from config->args and updates
     615    bool result = pxUpdateRun(config, where, &query, "stackRun", "stack_id", "stackSumSkyfile", true);
     616
     617    psFree(query);
     618    psFree(where);
     619
     620    return result;
     621
     622#ifdef notdef
     623    // Hack-y work around to make stacktool more like the other tools, without breaking other stuff (hopefully).
     624
     625    if ((state)&&(stack_id)) {
    569626        // set detRun.state to state
    570627        return setstackRunState(config, stack_id, state);
    571628    }
    572629
    573     return true;
     630    if ((state)&&(label)) {
     631      return setstackRunStateByLabel(config, label, state);
     632    }
     633
     634    psError(PS_ERR_UNKNOWN, false, "Required options not found.");
     635    return false;
     636#endif
    574637}
    575638
     
    613676    psString query = pxDataGet("stacktool_inputskyfile.sql");
    614677    if (!query) {
    615         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     678        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    616679        return false;
    617680    }
     
    619682    if (psListLength(where->list)) {
    620683        psString whereClause = psDBGenerateWhereConditionSQL(where, "stackInputSkyfile");
    621         psStringAppend(&query, " AND %s", whereClause);
     684        psStringAppend(&query, " WHERE %s", whereClause);
    622685        psFree(whereClause);
    623686    }
     
    687750    psString query = pxDataGet("stacktool_tosum.sql");
    688751    if (!query) {
    689         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    690         return false;
    691     }
    692 
     752        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     753        return false;
     754    }
     755
     756    psString whereClause = psStringCopy(""); // WHERE conditions to add
    693757    if (psListLength(where->list)) {
    694         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    695         psStringAppend(&query, " AND %s", whereClause);
    696         psFree(whereClause);
     758        psString new = psDBGenerateWhereConditionSQL(where, NULL);
     759        psStringAppend(&whereClause, "\nAND %s", new);
     760        psFree(new);
    697761    }
    698762    psFree(where);
     
    705769    }
    706770
    707     if (!p_psDBRunQuery(config->dbh, query)) {
     771    if (!p_psDBRunQueryF(config->dbh, query, whereClause)) {
    708772        psError(PS_ERR_UNKNOWN, false, "database error");
    709773        psFree(query);
     
    853917
    854918    psMetadata *where = psMetadataAlloc();
    855     PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "==");
    856919    PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "==");
    857     PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "==");
    858     PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
    859920    PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "==");
    860921    PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "==");
     922    PXOPT_COPY_STR(config->args, where, "-filter", "stackRun.filter", "LIKE");
     923    PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");
     924    PXOPT_COPY_STR(config->args, where, "-data_group", "stackRun.data_group", "LIKE");
     925    PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "==");
     926
     927//  The following three selectors are incompatible with the sql so omit them
     928//    PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "==");
     929//     PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "==");
     930//    PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "==");
     931
     932    PXOPT_LOOKUP_BOOL(all, config->args, "-all", false);
    861933
    862934    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     
    865937    psString query = pxDataGet("stacktool_sumskyfile.sql");
    866938    if (!query) {
    867         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     939        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    868940        return false;
    869941    }
     
    873945        psStringAppend(&query, " WHERE %s", whereClause);
    874946        psFree(whereClause);
    875     }
     947    } else if (!all) {
     948        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
     949        return false;
     950    }
     951
    876952    psFree(where);
    877953
     
    9301006    psMetadata *where = psMetadataAlloc();
    9311007    PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "==");
    932     PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");
     1008    pxAddLabelSearchArgs(config, where, "-label", "stackRun.label", "==");
    9331009    PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "==");
    9341010
    9351011    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
    9361012        psFree(where);
    937         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     1013        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    9381014        return false;
    9391015    }
     
    9421018    psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
    9431019    if (!delete) {
    944         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1020        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    9451021        return false;
    9461022    }
     
    9891065}
    9901066
     1067#ifdef notdef
     1068static bool setstackRunStateByLabel(pxConfig *config, const char *label, const char *state)
     1069{
     1070    PS_ASSERT_PTR_NON_NULL(state, false);
     1071
     1072    // check that state is a valid string value
     1073    if (!pxIsValidState(state)) {
     1074        psError(PS_ERR_UNKNOWN, false, "invalid stackRun state: %s", state);
     1075        return false;
     1076    }
     1077
     1078    char *query = "UPDATE stackRun SET state = '%s' WHERE label = '%s'";
     1079    if (!p_psDBRunQueryF(config->dbh, query, state, label)) {
     1080        psError(PS_ERR_UNKNOWN, false,
     1081                "failed to change state for label %s", label);
     1082        return false;
     1083    }
     1084
     1085    return true;
     1086}
     1087#endif
     1088
    9911089static bool pendingcleanuprunMode(pxConfig *config)
    9921090{
     
    10011099    psString query = pxDataGet("stacktool_pendingcleanuprun.sql");
    10021100    if (!query) {
    1003         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1101        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    10041102        return false;
    10051103    }
     
    10651163    psString query = pxDataGet("stacktool_pendingcleanupskyfile.sql");
    10661164    if (!query) {
    1067         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1165        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    10681166        return false;
    10691167    }
     
    11261224    psString query = pxDataGet("stacktool_donecleanup.sql");
    11271225    if (!query) {
    1128         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1226        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    11291227        return false;
    11301228    }
     
    12141312  }
    12151313
     1314  if (!pxExportVersion(config, f)) {
     1315    psError(PS_ERR_UNKNOWN, false, "failed to write dbversion output file");
     1316    return false;
     1317  }
    12161318  psMetadata *where = psMetadataAlloc();
    12171319  PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "==");
     
    12261328    psString query = pxDataGet(tables[i].sqlFilename);
    12271329    if (!query) {
    1228       psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1330      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    12291331      return false;
    12301332    }
     
    13001402  psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false);
    13011403
    1302   fprintf (stdout, "---- input ----\n");
     1404#ifdef notdef
     1405  fprintf (stderr, "---- input ----\n");
    13031406  psMetadataPrint (stderr, input, 1);
    1304 
     1407#endif
     1408
     1409  if (!pxCheckImportVersion(config, input)) {
     1410      psError(PS_ERR_UNKNOWN, false, "pxCheckImportVersion failed");
     1411      return false;
     1412  }
    13051413  psMetadataItem *item = psMetadataLookup (input, "stackRun");
    13061414  psAssert (item, "entry not in input?");
Note: See TracChangeset for help on using the changeset viewer.