IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

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

updates from trunk

Location:
branches/tap_branches
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/tap_branches

  • branches/tap_branches/ippTools/src

    • Property svn:ignore
      •  

        old new  
        1616difftool
        1717disttool
         18dqstatstool
        1819faketool
        1920flatcorr
  • branches/tap_branches/ippTools/src/stacktool.c

    r25851 r27838  
    124124
    125125    // select based on properties of the raw exposures
     126    PXOPT_COPY_STR(config->args,  where, "-select_comment",            "rawExp.comment", "LIKE");
    126127    PXOPT_COPY_STR(config->args,  where, "-select_inst",               "rawExp.camera", "==");
    127128    PXOPT_COPY_STR(config->args,  where, "-select_telescope",          "rawExp.telescope", "==");
     
    145146    PXOPT_COPY_F32(config->args,  where, "-select_fwhm_minor_min",     "camProcessedExp.fwhm_minor", ">=");
    146147    PXOPT_COPY_F32(config->args,  where, "-select_fwhm_minor_max",     "camProcessedExp.fwhm_minor", "<=");
    147     PXOPT_COPY_F32(config->args,  where, "-select_iq_m2_max",     "camProcessedExp.iq_m2", "<=");
    148     PXOPT_COPY_F32(config->args,  where, "-select_iq_m2_min",     "camProcessedExp.iq_m2", ">=");
    149     PXOPT_COPY_F32(config->args,  where, "-select_iq_m3_max",     "camProcessedExp.iq_m3", "<=");
    150     PXOPT_COPY_F32(config->args,  where, "-select_iq_m4_min",     "camProcessedExp.iq_m4", ">=");
    151     PXOPT_COPY_F32(config->args,  where, "-select_iq_m4_max",     "camProcessedExp.iq_m4", "<=");
    152    
     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
    153154    PXOPT_COPY_STR(config->args,  where, "-select_exp_type",           "rawExp.exp_type", "==");
    154155    PXOPT_COPY_F32(config->args,  where, "-select_good_frac_min",      "warpSkyfile.good_frac", ">=");
    155156    PXOPT_COPY_STR(config->args,  where, "-select_skycell_id",         "warpSkyfile.skycell_id", "==");
    156     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
    157159
    158160    // these are used to build the HAVING restriction
    159161    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    }
    160170
    161171    // other options applied outside of the WHERE
     
    168178
    169179    if (!psListLength(where->list)) {
     180        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    170181        psFree(where);
    171         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
    172         return false;
    173     }
    174 
    175     psString select = pxDataGet("stacktool_definebyquery_part1.sql");
     182        psFree(having);
     183        return false;
     184    }
     185
     186    psString select = pxDataGet("stacktool_definebyquery_select.sql");
    176187    if (!select) {
    177         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    178         return false;
    179     }
    180 
     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("");
    181195    if (psListLength(where->list)) {
    182196        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    183         psStringAppend(&select, " AND %s", whereClause);
     197        psStringAppend(&where1, "\nAND %s", whereClause);
    184198        psFree(whereClause);
    185199    }
    186200
    187     psString groupby = pxDataGet("stacktool_definebyquery_part2.sql");
    188     if (!groupby) {
    189         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    190         psFree(where);
    191         return false;
    192     }
    193     psStringAppend(&select, " %s", groupby);
    194     psFree(groupby);
     201    psString where2 = psStringCopy("");
     202    if (label) {
     203        psStringAppend(&where2, "\nWHERE stackRun.label = '%s'", label);
     204    }
    195205
    196206    // Restriction on aggregated quantities using HAVING
     
    224234    psFree(having);
    225235
    226     if (!p_psDBRunQuery(config->dbh, select)) {
     236    if (!p_psDBRunQueryF(config->dbh, select, where1, where2)) {
    227237        psError(PS_ERR_UNKNOWN, false, "database error");
    228238        psFree(select);
    229         psFree(where);
     239        psFree(where1);
     240        psFree(where2);
    230241        return false;
    231242    }
    232243    psFree(select);
     244    psFree(where1);
     245    psFree(where2);
    233246
    234247    psArray *output = p_psDBFetchResult(config->dbh);
     
    272285    }
    273286    if (!insert) {
    274         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     287        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    275288        psFree(where);
    276289        return false;
     
    287300        psString part2 = pxDataGet("stacktool_definebyquery_insert_random_part2.sql");
    288301        if (!part2) {
    289             psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     302            psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    290303            psFree(insert);
    291304            return false;
     
    593606    if (!psListLength(where->list)) {
    594607        psFree(where);
    595         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     608        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    596609        return false;
    597610    }
     
    600613
    601614    // pxUpdateRun gets parameters from config->args and updates
    602     bool result = pxUpdateRun(config, where, &query, "stackRun", true);
     615    bool result = pxUpdateRun(config, where, &query, "stackRun", "stack_id", "stackSumSkyfile", true);
    603616
    604617    psFree(query);
     
    663676    psString query = pxDataGet("stacktool_inputskyfile.sql");
    664677    if (!query) {
    665         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     678        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    666679        return false;
    667680    }
     
    669682    if (psListLength(where->list)) {
    670683        psString whereClause = psDBGenerateWhereConditionSQL(where, "stackInputSkyfile");
    671         psStringAppend(&query, " AND %s", whereClause);
     684        psStringAppend(&query, " WHERE %s", whereClause);
    672685        psFree(whereClause);
    673686    }
     
    737750    psString query = pxDataGet("stacktool_tosum.sql");
    738751    if (!query) {
    739         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
    740         return false;
    741     }
    742 
     752        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     753        return false;
     754    }
     755
     756    psString whereClause = psStringCopy(""); // WHERE conditions to add
    743757    if (psListLength(where->list)) {
    744         psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
    745         psStringAppend(&query, " AND %s", whereClause);
    746         psFree(whereClause);
     758        psString new = psDBGenerateWhereConditionSQL(where, NULL);
     759        psStringAppend(&whereClause, "\nAND %s", new);
     760        psFree(new);
    747761    }
    748762    psFree(where);
     
    755769    }
    756770
    757     if (!p_psDBRunQuery(config->dbh, query)) {
     771    if (!p_psDBRunQueryF(config->dbh, query, whereClause)) {
    758772        psError(PS_ERR_UNKNOWN, false, "database error");
    759773        psFree(query);
     
    908922    PXOPT_COPY_STR(config->args, where, "-filter", "stackRun.filter", "LIKE");
    909923    PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");
     924    PXOPT_COPY_STR(config->args, where, "-data_group", "stackRun.data_group", "LIKE");
    910925    PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "==");
    911926
     
    922937    psString query = pxDataGet("stacktool_sumskyfile.sql");
    923938    if (!query) {
    924         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     939        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    925940        return false;
    926941    }
     
    931946        psFree(whereClause);
    932947    } else if (!all) {
    933         psError(PXTOOLS_ERR_DATA, true, "search parameters or -all are required");
     948        psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required");
    934949        return false;
    935950    }
     
    9911006    psMetadata *where = psMetadataAlloc();
    9921007    PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "==");
    993     PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "==");
     1008    pxAddLabelSearchArgs(config, where, "-label", "stackRun.label", "==");
    9941009    PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "==");
    9951010
    9961011    if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) {
    9971012        psFree(where);
    998         psError(PXTOOLS_ERR_DATA, false, "search parameters are required");
     1013        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required");
    9991014        return false;
    10001015    }
     
    10031018    psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql");
    10041019    if (!delete) {
    1005         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1020        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    10061021        return false;
    10071022    }
     
    10841099    psString query = pxDataGet("stacktool_pendingcleanuprun.sql");
    10851100    if (!query) {
    1086         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1101        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    10871102        return false;
    10881103    }
     
    11481163    psString query = pxDataGet("stacktool_pendingcleanupskyfile.sql");
    11491164    if (!query) {
    1150         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1165        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    11511166        return false;
    11521167    }
     
    12091224    psString query = pxDataGet("stacktool_donecleanup.sql");
    12101225    if (!query) {
    1211         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1226        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    12121227        return false;
    12131228    }
     
    13131328    psString query = pxDataGet(tables[i].sqlFilename);
    13141329    if (!query) {
    1315       psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
     1330      psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
    13161331      return false;
    13171332    }
Note: See TracChangeset for help on using the changeset viewer.