IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 30, 2013, 4:48:58 PM (13 years ago)
Author:
eugene
Message:

updates from trunk

Location:
branches/eam_branches/ipp-20130711/ippTools/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/eam_branches/ipp-20130711/ippTools/src

  • branches/eam_branches/ipp-20130711/ippTools/src/releasetool.c

    r35795 r36071  
    4747static bool updaterelstackMode(pxConfig *config);
    4848static bool listrelstackMode(pxConfig *config);
     49static bool summaryMode(pxConfig *config);
    4950static bool definerelgroupMode(pxConfig *config);
    5051static bool pendingrelgroupMode(pxConfig *config);
     
    8485        MODECASE(RELEASETOOL_MODE_UPDATERELSTACK,   updaterelstackMode);
    8586        MODECASE(RELEASETOOL_MODE_LISTRELSTACK,     listrelstackMode);
     87        MODECASE(RELEASETOOL_MODE_SUMMARY,          summaryMode);
    8688
    8789        MODECASE(RELEASETOOL_MODE_DEFINERELGROUP,   definerelgroupMode);
     
    180182    PS_ASSERT_PTR_NON_NULL(config, false);
    181183
    182     PXOPT_LOOKUP_S32(surveyID,    config->args, "-set_surveyID", true, false);
    183     PXOPT_LOOKUP_STR(release_name, config->args, "-set_release_name", true, false);
     184    PXOPT_LOOKUP_S32(surveyID,    config->args,   "-set_surveyID", true, false);
     185    PXOPT_LOOKUP_STR(release_name, config->args,  "-set_release_name", true, false);
    184186    PXOPT_LOOKUP_STR(release_state, config->args, "-set_release_state",  true, false);
    185     PXOPT_LOOKUP_S32(dataRelease, config->args, "-set_dataRelease", false, false);
    186     PXOPT_LOOKUP_S32(priority,    config->args, "-set_priority", false, false);
     187    PXOPT_LOOKUP_S32(dataRelease, config->args,   "-set_dataRelease", false, false);
     188    PXOPT_LOOKUP_S32(priority,    config->args,   "-set_priority", false, false);
     189    PXOPT_LOOKUP_STR(dvodb, config->args,         "-set_dvodb",  false, false);
     190    PXOPT_LOOKUP_STR(ubercal_file, config->args,  "-set_ubercal_file",  false, false);
    187191
    188192    if (!ippReleaseInsert(config->dbh,
     
    192196        release_state,
    193197        dataRelease,
    194         priority
     198        priority,
     199        dvodb,
     200        ubercal_file
    195201    )) {
    196202        psError(PS_ERR_UNKNOWN, false, "failed to insert ippRelease");
     
    215221    PXOPT_LOOKUP_S32(priority,         config->args, "-set_priority",  false, false);
    216222    PXOPT_LOOKUP_S32(dataRelease,      config->args, "-set_dataRelease",  false, false);
    217     if (!release_state && priority == 0 && dataRelease == -1) {
    218         psError(PXTOOLS_ERR_CONFIG, true, "at least one of -set_release_state -set_priority and -set_dataRelease is required\n");
     223    PXOPT_LOOKUP_STR(dvodb, config->args, "-set_dvodb",  false, false);
     224    PXOPT_LOOKUP_STR(ubercal_file, config->args, "-set_ubercal_file",  false, false);
     225    if (!release_state && priority == 0 && dataRelease == -1 && !dvodb && !ubercal_file) {
     226        psError(PXTOOLS_ERR_CONFIG, true, "at least one of -set_release_state -set_priority -set_dvodb -set_ubercal_file and -set_dataRelease is required\n");
    219227        return false;
    220228    }
     
    238246    if (dataRelease != -1) {
    239247        psStringAppend(&query, "%s dataRelease = %d", sep, dataRelease);
     248        sep = comma;
     249    }
     250    if (dvodb) {
     251        psStringAppend(&query, "%s dvodb = '%s'", sep, dvodb);
     252        sep = comma;
     253    }
     254    if (ubercal_file) {
     255        psStringAppend(&query, "%s ubercal_file = '%s'", sep, ubercal_file);
    240256        sep = comma;
    241257    }
     
    366382    PXOPT_LOOKUP_F32(user_zpt_obs, config->args,   "-set_zpt_obs", false, false);
    367383    PXOPT_LOOKUP_F32(user_zpt_stdev, config->args, "-set_zpt_stdev", false, false);
     384    PXOPT_LOOKUP_F32(mcal,     config->args, "-set_mcal",  false, false);
     385    PXOPT_LOOKUP_S32(ubercal_dist, config->args, "-set_ubercal_dist", false, false);
    368386    PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
    369387    PXOPT_LOOKUP_S16(fault, config->args,     "-set_fault", false, false);
     
    456474            zpt_obs,
    457475            zpt_stdev,
     476            mcal,
     477            ubercal_dist,
    458478            path_base,
    459479            fault,
     
    496516    PXOPT_LOOKUP_STR(state,    config->args, "-set_state",  false, false);
    497517    PXOPT_LOOKUP_U32(flags,    config->args, "-set_flags",  false, false);
    498     PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false);
     518    PXOPT_LOOKUP_STR(path_base,config->args, "-set_path_base", false, false);
    499519    PXOPT_LOOKUP_F32(zpt_obs,  config->args, "-set_zpt_obs",  false, false);
    500520    PXOPT_LOOKUP_F32(zpt_stdev,config->args, "-set_zpt_stdev",  false, false);
     521    PXOPT_LOOKUP_F32(mcal,     config->args, "-set_mcal",  false, false);
    501522    PXOPT_LOOKUP_S16(fault,    config->args, "-set_fault",  false, false);
     523    PXOPT_LOOKUP_S32(ubercal_dist, config->args, "-set_ubercal_dist", false, false);
    502524    PXOPT_LOOKUP_BOOL(clearfault, config->args, "-clearfault",  false);
    503     if (!state && !flags && !path_base && !isfinite(zpt_obs) && !isfinite(zpt_stdev) && !fault && !clearfault) {
     525    if (!state && !flags && !path_base && !isfinite(zpt_obs) && !isfinite(zpt_stdev) &&!isfinite(mcal)
     526        && !fault && !clearfault && !ubercal_dist) {
    504527        psError(PXTOOLS_ERR_CONFIG, true, "must set at least one column\n");
    505528        return false;
     
    557580        sep = comma;
    558581    }
     582    if (isfinite(mcal)) {
     583        psStringAppend(&query, "%s relExp.mcal = %f", sep, mcal);
     584        sep = comma;
     585    }
     586    if (ubercal_dist) {
     587        psStringAppend(&query, "%s relExp.ubercal_dist = %d", sep, ubercal_dist);
     588        sep = comma;
     589    }
    559590
    560591    psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     
    569600
    570601    psU64 affected = psDBAffectedRows(config->dbh);
    571     psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " ippReleases", affected);
     602    psLogMsg("releasetool", PS_LOG_INFO, "Updated %" PRIu64 " relExp rows", affected);
    572603
    573604
     
    10491080
    10501081    if (priority_order) {
    1051         psStringAppend(&query, "\nAND priority > 0 order by stack_id, priority DESC");
     1082        psStringAppend(&query, "\nAND priority > 0 order by priority DESC, stack_id");
     1083    }
     1084
     1085    if (limit) {
     1086        psString limitString = psDBGenerateLimitSQL(limit);
     1087        psStringAppend(&query, " %s", limitString);
     1088        psFree(limitString);
     1089    }
     1090
     1091    if (!p_psDBRunQuery(config->dbh, query)) {
     1092        psError(PS_ERR_UNKNOWN, false, "database error");
     1093        psFree(query);
     1094        return false;
     1095    }
     1096    psFree(query);
     1097
     1098    psArray *output = p_psDBFetchResult(config->dbh);
     1099    if (!output) {
     1100        psError(PS_ERR_UNKNOWN, false, "database error");
     1101        return false;
     1102    }
     1103
     1104    if (!psArrayLength(output)) {
     1105        psTrace("releasetool", PS_LOG_INFO, "no rows found");
     1106        psFree(output);
     1107        return true;
     1108    }
     1109
     1110    if (!ippdbPrintMetadatas(stdout, output, "relStack", !simple)) {
     1111        psError(PS_ERR_UNKNOWN, false, "failed to print array");
     1112        psFree(output);
     1113        return false;
     1114    }
     1115
     1116    psFree(output);
     1117
     1118    return true;
     1119}
     1120static bool summaryMode(pxConfig *config)
     1121{
     1122    PS_ASSERT_PTR_NON_NULL(config, NULL);
     1123
     1124    psMetadata *where = psMetadataAlloc();
     1125
     1126    PXOPT_COPY_S64(config->args, where, "-sass_id",     "stackAssociation.sass_id", "==");
     1127    PXOPT_COPY_S64(config->args, where, "-relstack_id", "relStack.relstack_id", "==");
     1128    PXOPT_COPY_S64(config->args, where, "-stack_id",    "relStack.stack_id", "==");
     1129//    PXOPT_COPY_S64(config->args, where, "-skycal_id",   "relStack.skycal_id", "==");
     1130    PXOPT_COPY_S64(config->args, where, "-relstack_id", "relStack.relstack_id", "==");
     1131    PXOPT_COPY_STR(config->args, where, "-release_name", "ippRelease.release_name", "LIKE");
     1132    pxAddLabelSearchArgs(config, where, "-release_state","ippRelease.state", "==");
     1133//    PXOPT_COPY_STR(config->args, where, "-state",       "relStack.state", "==");
     1134    PXOPT_COPY_STR(config->args, where, "-filter",      "relStack.filter", "LIKE");
     1135//    PXOPT_COPY_F32(config->args, where, "-mjd_min",    "stackSumSkyfile.mjd_obs", ">=");
     1136//    PXOPT_COPY_F32(config->args, where, "-mjd_max",    "stackSumSkyfile.mjd_obs", "<=");
     1137    PXOPT_COPY_STR(config->args, where, "-tess_id",     "relStack.tess_id", "==");
     1138    PXOPT_COPY_STR(config->args, where, "-skycell_id",  "relStack.skycell_id", "LIKE");
     1139    PXOPT_COPY_STR(config->args, where, "-projection_cell",  "stackAssociation.projection_cell", "LIKE");
     1140    PXOPT_COPY_STR(config->args, where, "-stack_data_group",  "stackRun.data_group", "LIKE");
     1141    PXOPT_COPY_STR(config->args, where, "-data_group",  "stackAssociation.data_group", "LIKE");
     1142//    PXOPT_COPY_STR(config->args, where, "-skycal_data_group", "skycalRun.data_group", "LIKE");
     1143
     1144    PXOPT_COPY_STR(config->args, where, "-surveyName",  "survey.surveyName", "LIKE");
     1145    PXOPT_COPY_S32(config->args, where, "-rel_id",      "relExp.rel_id", "==");
     1146    pxskycellAddWhere(config, where);
     1147
     1148//    PXOPT_COPY_F32(config->args, where, "-fwhm_min",    "IFNULL(skycalResult.fwhm_major, 999)", ">=");
     1149//    PXOPT_COPY_F32(config->args, where, "-fwhm_max",    "IFNULL(skycalResult.fwhm_major, 0)", "<=");
     1150
     1151    PXOPT_LOOKUP_BOOL(priority_order, config->args, "-priority_order", false);
     1152
     1153    PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false);
     1154    PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false);
     1155
     1156    pxAddLabelSearchArgs (config, where, "-stack_type", "relStack.stack_type", "==");
     1157
     1158    psString query = pxDataGet("releasetool_summary.sql");
     1159    if (!query) {
     1160        psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement");
     1161        return false;
     1162    }
     1163
     1164    if (psListLength(where->list)) {
     1165        psString whereClause = psDBGenerateWhereConditionSQL(where, NULL);
     1166        psStringAppend(&query, "\nWHERE %s", whereClause);
     1167        psFree(whereClause);
     1168    } else {
     1169        psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required\n");
     1170        psFree(where);
     1171        return false;
     1172    }
     1173
     1174    if (priority_order) {
     1175        psStringAppend(&query, "\nAND priority > 0 order by priority DESC, stack_id");
    10521176    }
    10531177
Note: See TracChangeset for help on using the changeset viewer.