Changeset 36680 for branches/eam_branches/ps2-tc3-20130727/ippTools/src
- Timestamp:
- Apr 21, 2014, 5:42:34 AM (12 years ago)
- Location:
- branches/eam_branches/ps2-tc3-20130727
- Files:
-
- 26 edited
- 6 copied
-
. (modified) (1 prop)
-
ippTools/src (modified) (2 props)
-
ippTools/src/Makefile.am (modified) (3 diffs)
-
ippTools/src/camtool.c (modified) (1 prop)
-
ippTools/src/camtoolConfig.c (modified) (1 prop)
-
ippTools/src/chiptool.c (modified) (2 diffs)
-
ippTools/src/detselect.c (modified) (3 diffs)
-
ippTools/src/detselect.h (modified) (1 diff)
-
ippTools/src/detselectConfig.c (modified) (2 diffs)
-
ippTools/src/difftool.c (modified) (4 diffs)
-
ippTools/src/disttool.c (modified) (4 diffs)
-
ippTools/src/disttoolConfig.c (modified) (1 diff)
-
ippTools/src/fftool.c (copied) (copied from trunk/ippTools/src/fftool.c )
-
ippTools/src/fftool.h (copied) (copied from trunk/ippTools/src/fftool.h )
-
ippTools/src/fftoolConfig.c (copied) (copied from trunk/ippTools/src/fftoolConfig.c )
-
ippTools/src/laptool.c (modified) (2 diffs)
-
ippTools/src/magictool.c (modified) (1 prop)
-
ippTools/src/pstamptool.c (modified) (1 diff)
-
ippTools/src/regtool.c (modified) (1 diff)
-
ippTools/src/regtoolConfig.c (modified) (1 diff)
-
ippTools/src/releasetool.c (modified) (12 diffs)
-
ippTools/src/releasetool.h (modified) (1 diff)
-
ippTools/src/releasetoolConfig.c (modified) (6 diffs)
-
ippTools/src/remotetool.c (copied) (copied from trunk/ippTools/src/remotetool.c )
-
ippTools/src/remotetool.h (copied) (copied from trunk/ippTools/src/remotetool.h )
-
ippTools/src/remotetoolConfig.c (copied) (copied from trunk/ippTools/src/remotetoolConfig.c )
-
ippTools/src/stacktool.c (modified) (4 diffs)
-
ippTools/src/stacktool.h (modified) (1 diff)
-
ippTools/src/stacktoolConfig.c (modified) (3 diffs)
-
ippTools/src/staticskytool.c (modified) (5 diffs)
-
ippTools/src/staticskytool.h (modified) (1 diff)
-
ippTools/src/staticskytoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/ps2-tc3-20130727
- Property svn:mergeinfo changed
-
branches/eam_branches/ps2-tc3-20130727/ippTools/src
- Property svn:ignore
-
old new 47 47 sctool 48 48 releasetool 49 fftool 50 remotetool 51
-
- Property svn:mergeinfo deleted
- Property svn:ignore
-
branches/eam_branches/ps2-tc3-20130727/ippTools/src/Makefile.am
r34913 r36680 33 33 vptool \ 34 34 sctool \ 35 releasetool 35 releasetool \ 36 fftool \ 37 remotetool 36 38 37 39 pkginclude_HEADERS = \ … … 87 89 vptool.h \ 88 90 sctool.h \ 89 releasetool.h 91 releasetool.h \ 92 fftool.h \ 93 remotetool.h 90 94 91 95 lib_LTLIBRARIES = libpxtools.la … … 332 336 releasetoolConfig.c 333 337 338 fftool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS) 339 fftool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la 340 fftool_SOURCES = \ 341 fftool.c \ 342 fftoolConfig.c 343 344 remotetool_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(IPPDB_CFLAGS) 345 remotetool_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(IPPDB_LIBS) libpxtools.la 346 remotetool_SOURCES = \ 347 remotetool.c \ 348 remotetoolConfig.c 349 334 350 clean-local: 335 351 -rm -f TAGS -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/camtool.c
- Property svn:mergeinfo deleted
-
branches/eam_branches/ps2-tc3-20130727/ippTools/src/camtoolConfig.c
- Property svn:mergeinfo deleted
-
branches/eam_branches/ps2-tc3-20130727/ippTools/src/chiptool.c
r35860 r36680 1255 1255 1256 1256 psMetadata *where = psMetadataAlloc(); 1257 pxAddLabelSearchArgs (config, where, "-label", " label", "==");1257 pxAddLabelSearchArgs (config, where, "-label", "chipRun.label", "=="); 1258 1258 1259 1259 psString query = pxDataGet("chiptool_pendingcleanuprun.sql"); … … 1269 1269 } 1270 1270 psFree(where); 1271 1272 psStringAppend(&query, "\nORDER BY priority DESC, chip_id"); 1271 1273 1272 1274 // treat limit == 0 as "no limit" -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/detselect.c
r31058 r36680 29 29 static bool searchMode(pxConfig *config); 30 30 static bool selectMode(pxConfig *config); 31 static bool showMode(pxConfig *config); 32 31 33 32 34 # define MODECASE(caseName, func) \ … … 50 52 MODECASE(DETSELECT_MODE_SEARCH, searchMode); 51 53 MODECASE(DETSELECT_MODE_SELECT, selectMode); 54 MODECASE(DETSELECT_MODE_SHOW, showMode); 52 55 default: 53 56 psAbort("invalid option (this should not happen)"); … … 241 244 return true; 242 245 } 246 247 static bool showMode(pxConfig *config) 248 { 249 PS_ASSERT_PTR_NON_NULL(config, false); 250 251 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 252 253 psMetadata *where = psMetadataAlloc(); 254 255 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 256 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 257 PXOPT_COPY_STR(config->args, where, "-det_type", "det_type", "=="); 258 PXOPT_COPY_STR(config->args, where, "-type", "det_type", "=="); 259 260 psString query = pxDataGet("detselect_show.sql"); 261 if (!query) { 262 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 263 return false; 264 } 265 266 // use psDBGenerateWhereConditionalSQL with AND ... because the SQL ends in a WHERE 267 if (where && psListLength(where->list)) { 268 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 269 psStringAppend(&query, " AND %s", whereClause); 270 psFree(whereClause); 271 } 272 psFree(where); 273 274 // we choose the single detrend image which matches all criteria and has 275 // the latest insertion date 276 277 psStringAppend(&query, " ORDER BY registered DESC, iteration DESC"); 278 279 if (!p_psDBRunQuery(config->dbh, query)) { 280 psError(PS_ERR_UNKNOWN, false, "database error"); 281 psFree(query); 282 return false; 283 } 284 psFree(query); 285 286 psArray *output = p_psDBFetchResult(config->dbh); 287 if (!output) { 288 psError(PS_ERR_UNKNOWN, false, "database error"); 289 return false; 290 } 291 if (!psArrayLength(output)) { 292 // XXX check psError here 293 psError(PS_ERR_UNKNOWN, false, "no detRun rows found"); 294 psFree(output); 295 return true; 296 } 297 298 // negative simple so the default is true 299 if (!ippdbPrintMetadatas(stdout, output, "detRun", !simple)) { 300 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 301 psFree(output); 302 return false; 303 } 304 305 psFree(output); 306 return(true); 307 } -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/detselect.h
r18561 r36680 27 27 DETSELECT_MODE_SEARCH, 28 28 DETSELECT_MODE_SELECT, 29 DETSELECT_MODE_SHOW 29 30 } detselectMode; 30 31 -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/detselectConfig.c
r18561 r36680 65 65 psMetadataAddStr(selectArgs, PS_LIST_TAIL, "-class_id", 0, "search by class ID", NULL); 66 66 psMetadataAddBool(selectArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 67 68 // -show 69 psMetadata *showArgs = psMetadataAlloc(); 70 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-inst", 0, "search by camera", NULL); 71 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-telescope", 0, "search by telescope", NULL); 72 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-det_type", 0, "search by detrend type", NULL); 73 psMetadataAddStr(showArgs, PS_LIST_TAIL, "-type", 0, "search by detrend type (alias for -det_type)", NULL); 74 psMetadataAddBool(showArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 67 75 68 76 psMetadata *argSets = psMetadataAlloc(); … … 71 79 PXOPT_ADD_MODE("-search", "search for an appropriate detrend", DETSELECT_MODE_SEARCH, searchArgs); 72 80 PXOPT_ADD_MODE("-select", "retreive detrend information", DETSELECT_MODE_SELECT, selectArgs); 81 PXOPT_ADD_MODE("-show", "show all active detrends of this type with constraints", DETSELECT_MODE_SHOW, showArgs); 73 82 74 83 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) { -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/difftool.c
r35558 r36680 1253 1253 PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false); 1254 1254 PXOPT_LOOKUP_TIME(registered, config->args, "-set_registered", false, false); 1255 PXOPT_LOOKUP_STR(warp_data_group, config->args, "-data_group", false, false); 1255 1256 1256 1257 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); … … 1260 1261 1261 1262 1263 if (!data_group) { 1264 if (warp_data_group) { 1265 data_group = warp_data_group; 1266 } 1267 } 1268 1262 1269 // Get query file 1263 1270 psString query = pxDataGet("difftool_definewarpstack.sql"); … … 1342 1349 if (!mdok) { 1343 1350 psError(PXTOOLS_ERR_PROG, false, "exp_id not found"); 1351 if (!psDBRollback(config->dbh)) { 1352 psError(PS_ERR_UNKNOWN, false, "database error"); 1353 } 1354 return false; 1355 } 1356 psString warpDataGroup = psMetadataLookupStr(&mdok, row, "warpDataGroup"); 1357 if (!mdok) { 1358 psError(PXTOOLS_ERR_PROG, false, "warpDataGroup not found"); 1344 1359 if (!psDBRollback(config->dbh)) { 1345 1360 psError(PS_ERR_UNKNOWN, false, "database error"); … … 1384 1399 workdir, 1385 1400 label, 1386 data_group ? data_group : label,1401 data_group ? data_group : warpDataGroup, 1387 1402 dist_group, 1388 1403 reduction, -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/disttool.c
r35193 r36680 375 375 } 376 376 if (dist_group) { 377 psStringAppend(&query, " AND (st icskyRun.dist_group = '%s')", dist_group);377 psStringAppend(&query, " AND (staticskyRun.dist_group = '%s')", dist_group); 378 378 } 379 379 // (static)sky stage doesn't require magic 380 magic = false; 381 } else if (!strcmp(stage, "skycal")) { 382 query = pxDataGet("disttool_definebyquery_skycal.sql"); 383 if (!query) { 384 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 385 psFree(where); 386 return false; 387 } 388 389 if (label) { 390 psStringAppend(&query, " AND (skycalRun.label = '%s')", label); 391 } 392 if (dist_group) { 393 psStringAppend(&query, " AND (skycalRun.dist_group = '%s')", dist_group); 394 } 395 // skycal stage doesn't require magic 380 396 magic = false; 381 397 } else if (!strcmp(stage, "SSdiff")) { … … 394 410 if (dist_group) { 395 411 psStringAppend(&query, " AND (diffRun.dist_group = '%s') ", dist_group); 412 } 413 414 magic = false; 415 } else if (!strcmp(stage, "ff")) { 416 runJoinStr = "fullForceRun.ff_id"; 417 query = pxDataGet("disttool_definebyquery_ff.sql"); 418 if (!query) { 419 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); 420 psFree(where); 421 return(false); 422 } 423 424 if (label) { 425 psStringAppend(&query, " AND (fullForceRun.label = '%s') ", label); 426 } 427 if (dist_group) { 428 psStringAppend(&query, " AND (fullForceRun.dist_group = '%s') ", dist_group); 396 429 } 397 430 … … 661 694 PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "=="); 662 695 PXOPT_COPY_STR(config->args, where, "-label", "label", "=="); 663 PXOPT_COPY_STR(config->args, where, "-data_group", "d ata_group", "==");696 PXOPT_COPY_STR(config->args, where, "-data_group", "distRun.data_group", "LIKE"); 664 697 665 698 // require data_group or dist_id to be supplied … … 743 776 744 777 query = "DELETE FROM distComponent where dist_id = %" PRId64; 745 char *query2 = "DELETE from rcDSFileset using distRun, rcDSFileset WHERE distRun.dist_id = rcDSFileset.dist_id AND rcDSFileset.state ='cleaned' AND dist_id = %" PRId64;778 char *query2 = "DELETE from rcDSFileset using distRun, rcDSFileset WHERE distRun.dist_id = rcDSFileset.dist_id AND rcDSFileset.state ='cleaned' AND rcDSFileset.dist_id = %" PRId64; 746 779 747 780 for (long i=0; i < psArrayLength(output); i++) { -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/disttoolConfig.c
r35193 r36680 91 91 // -startover 92 92 psMetadata *startoverArgs = psMetadataAlloc(); 93 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-data_group", 0, "define data_group ", NULL);93 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-data_group", 0, "define data_group (LIKE comparison)", NULL); 94 94 psMetadataAddS64(startoverArgs, PS_LIST_TAIL, "-dist_id", 0, "search by dist_id", 0); 95 95 psMetadataAddStr(startoverArgs, PS_LIST_TAIL, "-stage", 0, "search by stage", NULL); -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/laptool.c
r35568 r36680 1170 1170 // we only want projection cells which do not already of an entry 1171 1171 psStringAppend(&query, "\nWHERE lapGroup.projection_cell IS NULL\n"); 1172 psStringAppend(&query, "\nORDER by projection_cell\n"); 1172 // Projection cell's don't have a convienient order. Queue runs in the order of lap_id 1173 // psStringAppend(&query, "\nORDER by projection_cell\n"); 1174 psStringAppend(&query, "\nORDER by lap_id_0\n"); 1173 1175 1174 1176 if (limit) { … … 1289 1291 psFree(whereClause); 1290 1292 } 1293 psStringAppend(&query, "\nGROUP by projection_cell ORDER by MIN(lap_id)"); 1291 1294 if (limit) { 1292 1295 psString limitString = psDBGenerateLimitSQL(limit); -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/magictool.c
- Property svn:mergeinfo deleted
-
branches/eam_branches/ps2-tc3-20130727/ippTools/src/pstamptool.c
r35673 r36680 1428 1428 psFree(where); 1429 1429 1430 psStringAppend(&query, " ORDER BY priority DESC, req_id, dep_id");1430 psStringAppend(&query, " GROUP BY dep_id ORDER BY priority DESC, MIN(req_id), dep_id"); 1431 1431 1432 1432 // treat limit == 0 as "no limit" -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/regtool.c
r34081 r36680 310 310 } 311 311 312 313 // CZW: 2013-12-11 A bad exposure caused this code to fail to return any rows. 314 // I don't clearly see any logic flaws, and so I fixed the issue by 315 // retricting dateobs_begin to exclude this exposure. Problem for 316 // another day. 312 317 static bool pendingburntoolimfileMode(pxConfig *config) 313 318 { -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/regtoolConfig.c
r32593 r36680 292 292 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-state", 0, "search by exposure state", NULL); 293 293 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-exp_tag", 0, "search by exp_tag", NULL); 294 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", "object");294 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-exp_type", 0, "search by exp_type", NULL); 295 295 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-filelevel", 0, "search by filelevel", NULL); 296 296 psMetadataAddStr(processedexpArgs, PS_LIST_TAIL, "-reduction", 0, "search by reduction class", NULL); -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/releasetool.c
r35795 r36680 47 47 static bool updaterelstackMode(pxConfig *config); 48 48 static bool listrelstackMode(pxConfig *config); 49 static bool summaryMode(pxConfig *config); 49 50 static bool definerelgroupMode(pxConfig *config); 50 51 static bool pendingrelgroupMode(pxConfig *config); … … 84 85 MODECASE(RELEASETOOL_MODE_UPDATERELSTACK, updaterelstackMode); 85 86 MODECASE(RELEASETOOL_MODE_LISTRELSTACK, listrelstackMode); 87 MODECASE(RELEASETOOL_MODE_SUMMARY, summaryMode); 86 88 87 89 MODECASE(RELEASETOOL_MODE_DEFINERELGROUP, definerelgroupMode); … … 180 182 PS_ASSERT_PTR_NON_NULL(config, false); 181 183 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); 184 186 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); 187 191 188 192 if (!ippReleaseInsert(config->dbh, … … 192 196 release_state, 193 197 dataRelease, 194 priority 198 priority, 199 dvodb, 200 ubercal_file 195 201 )) { 196 202 psError(PS_ERR_UNKNOWN, false, "failed to insert ippRelease"); … … 215 221 PXOPT_LOOKUP_S32(priority, config->args, "-set_priority", false, false); 216 222 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"); 219 227 return false; 220 228 } … … 238 246 if (dataRelease != -1) { 239 247 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); 240 256 sep = comma; 241 257 } … … 366 382 PXOPT_LOOKUP_F32(user_zpt_obs, config->args, "-set_zpt_obs", false, false); 367 383 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); 368 386 PXOPT_LOOKUP_STR(path_base, config->args, "-set_path_base", false, false); 369 387 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); … … 456 474 zpt_obs, 457 475 zpt_stdev, 476 mcal, 477 ubercal_dist, 458 478 path_base, 459 479 fault, … … 496 516 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 497 517 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); 499 519 PXOPT_LOOKUP_F32(zpt_obs, config->args, "-set_zpt_obs", false, false); 500 520 PXOPT_LOOKUP_F32(zpt_stdev,config->args, "-set_zpt_stdev", false, false); 521 PXOPT_LOOKUP_F32(mcal, config->args, "-set_mcal", false, false); 501 522 PXOPT_LOOKUP_S16(fault, config->args, "-set_fault", false, false); 523 PXOPT_LOOKUP_S32(ubercal_dist, config->args, "-set_ubercal_dist", false, false); 502 524 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) { 504 527 psError(PXTOOLS_ERR_CONFIG, true, "must set at least one column\n"); 505 528 return false; … … 557 580 sep = comma; 558 581 } 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 } 559 590 560 591 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); … … 569 600 570 601 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); 572 603 573 604 … … 1049 1080 1050 1081 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 } 1120 static 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"); 1052 1176 } 1053 1177 -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/releasetool.h
r35213 r36680 38 38 RELEASETOOL_MODE_TOCALIBSTACK, 39 39 RELEASETOOL_MODE_LISTRELSTACK, 40 RELEASETOOL_MODE_SUMMARY, 40 41 RELEASETOOL_MODE_DEFINERELGROUP, 41 42 RELEASETOOL_MODE_PENDINGRELGROUP, -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/releasetoolConfig.c
r35795 r36680 64 64 psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_release_state", 0, "define release state", NULL); 65 65 psMetadataAddS32(definereleaseArgs, PS_LIST_TAIL, "-set_priority", 0, "define release priority", 0); 66 psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_dvodb", 0, "define dvo db name", NULL); 67 psMetadataAddStr(definereleaseArgs, PS_LIST_TAIL, "-set_ubercal_file", 0, "define ubercal file name", NULL); 66 68 67 69 // -uptdaterelease … … 75 77 psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_priority", 0, "define new release priority", 0); 76 78 psMetadataAddS32(updatereleaseArgs, PS_LIST_TAIL, "-set_dataRelease", 0, "define data release", -1); 79 psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_dvodb", 0, "define new dvo db name", NULL); 80 psMetadataAddStr(updatereleaseArgs, PS_LIST_TAIL, "-set_ubercal_file", 0, "define new ubercal file name", NULL); 77 81 78 82 … … 108 112 psMetadataAddF32(definerelexpArgs, PS_LIST_TAIL, "-set_zpt_obs", 0, "define zero point", NAN); 109 113 psMetadataAddF32(definerelexpArgs, PS_LIST_TAIL, "-set_zpt_stdev", 0, "define zero point stdev", NAN); 114 psMetadataAddF32(definerelexpArgs, PS_LIST_TAIL, "-set_mcal", 0, "define mcal", NAN); 115 psMetadataAddS32(definerelexpArgs, PS_LIST_TAIL, "-set_ubercal_dist", 0, "define ubercal dist", 0); 110 116 psMetadataAddStr(definerelexpArgs, PS_LIST_TAIL, "-set_path_base", 0, "define state", NULL); 111 117 psMetadataAddS16(definerelexpArgs, PS_LIST_TAIL, "-set_fault", 0, "define fault", 0); … … 126 132 psMetadataAddF32(updaterelexpArgs, PS_LIST_TAIL, "-set_zpt_obs", 0, "define new zero point", NAN); 127 133 psMetadataAddF32(updaterelexpArgs, PS_LIST_TAIL, "-set_zpt_stdev", 0, "define new zero point stdev", NAN); 134 psMetadataAddF32(updaterelexpArgs, PS_LIST_TAIL, "-set_mcal", 0, "define mcal", NAN); 135 psMetadataAddS32(updaterelexpArgs, PS_LIST_TAIL, "-set_ubercal_dist", 0, "define new ubercal dist", 0); 128 136 psMetadataAddStr(updaterelexpArgs, PS_LIST_TAIL, "-set_path_base", 0, "define path_base", NULL); 129 137 psMetadataAddS16(updaterelexpArgs, PS_LIST_TAIL, "-set_fault", 0, "define new fault", 0); … … 240 248 psMetadataAddBool(listrelstackArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 241 249 250 // -summary 251 psMetadata *summaryArgs = psMetadataAlloc(); 252 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-sass_id", 0, "select by released SASS ID", 0); 253 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-relstack_id", 0, "select by released exposure ID", 0); 254 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-stack_id", 0, "select by stack ID", 0); 255 // psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-skycal_id", 0, "select by skycal ID", 0); 256 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-release_name", 0, "select by release name (LIKE comparision)", NULL); 257 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-release_state", PS_META_DUPLICATE_OK, "select by release state", NULL); 258 // psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-state", 0, "select by released stack state", NULL); 259 260 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-filter", 0, "select by filter name (LIKE comparison)", NULL); 261 262 pxskycellAddArguments(summaryArgs); 263 264 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-tess_id", 0, "select by tess_id", NULL); 265 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-skycell_id", 0, "select by skycell_id (LIKE comparision)", NULL); 266 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-projection_cell", 0, "select by projection_cell (LIKE comparision)", NULL); 267 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-stack_type", PS_META_DUPLICATE_OK, "select by stack_type", NULL); 268 269 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-stack_data_group", 0, "select by stackRun.data_group (LIKE comparison)", NULL); 270 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-data_group", 0, "select by stackAsociation.data_group (LIKE comparison)", NULL); 271 272 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-surveyName", 0, "select by survey name (LIKE comparision)", NULL); 273 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-rel_id", 0, "select by release ID", 0); 274 275 psMetadataAddBool(summaryArgs, PS_LIST_TAIL, "-priority_order", 0, "order by release priority", false); 276 277 psMetadataAddU64(summaryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 278 psMetadataAddBool(summaryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 242 279 243 280 // -definerelgroup … … 314 351 PXOPT_ADD_MODE("-definerelstack", "define a released stack", RELEASETOOL_MODE_DEFINERELSTACK, definerelstackArgs); 315 352 PXOPT_ADD_MODE("-listrelstack", "list released stacks", RELEASETOOL_MODE_LISTRELSTACK, listrelstackArgs); 353 PXOPT_ADD_MODE("-summary", "list stackSummaryes for released stacks", RELEASETOOL_MODE_SUMMARY, summaryArgs); 316 354 317 355 PXOPT_ADD_MODE("-definerelgroup", "define a group of exposures", RELEASETOOL_MODE_DEFINERELGROUP, definerelgroupArgs); -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/stacktool.c
r35856 r36680 44 44 static bool tosummaryMode(pxConfig *config); 45 45 static bool addsummaryMode(pxConfig *config); 46 static bool revertsummaryMode(pxConfig *config); 47 static bool summaryMode(pxConfig *config); 46 48 static bool pendingcleanuprunMode(pxConfig *config); 47 49 static bool pendingcleanupskyfileMode(pxConfig *config); … … 84 86 MODECASE(STACKTOOL_MODE_TOSUMMARY, tosummaryMode); 85 87 MODECASE(STACKTOOL_MODE_ADDSUMMARY, addsummaryMode); 88 MODECASE(STACKTOOL_MODE_REVERTSUMMARY, revertsummaryMode); 89 MODECASE(STACKTOOL_MODE_SUMMARY, summaryMode); 86 90 MODECASE(STACKTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunMode); 87 91 MODECASE(STACKTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileMode); … … 748 752 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackRun.stack_id", "=="); 749 753 PXOPT_COPY_STR(config->args, where, "-label", "stackRun.label", "=="); 754 PXOPT_COPY_STR(config->args, where, "-data_group", "stackRun.data_group", "=="); 750 755 PXOPT_COPY_STR(config->args, where, "-state", "stackRun.state", "=="); 751 756 PXOPT_COPY_S64(config->args, where, "-sass_id", "stackAssociationMap.sass_id", "=="); … … 1567 1572 } 1568 1573 1574 static bool revertsummaryMode(pxConfig *config) { 1575 PS_ASSERT_PTR_NON_NULL(config, NULL); 1576 PXOPT_LOOKUP_S64(sass_id, config->args, "-sass_id", true, false); 1577 1578 psString query = pxDataGet("stacktool_revertsummary.sql"); 1579 if (!query) { 1580 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1581 return(false); 1582 } 1583 if (!p_psDBRunQueryF(config->dbh, query, sass_id)) { 1584 psError(PS_ERR_UNKNOWN, false, "database error"); 1585 psFree(query); 1586 return(false); 1587 } 1588 psS64 numUpdated = psDBAffectedRows(config->dbh); 1589 1590 if (numUpdated != 1) { 1591 psError(PS_ERR_UNKNOWN, false, "should have affected 1 row"); 1592 psFree(query); 1593 return(false); 1594 } 1595 psLogMsg("stacktool", PS_LOG_INFO, "Deleted %ld rows", numUpdated); 1596 1597 psFree(query); 1598 1599 return(true); 1600 } 1601 1602 static bool summaryMode(pxConfig *config) 1603 { 1604 PS_ASSERT_PTR_NON_NULL(config, false); 1605 1606 psMetadata *where = psMetadataAlloc(); 1607 PXOPT_COPY_S64(config->args, where, "-sass_id", "stackSummary.sass_id", "=="); 1608 PXOPT_COPY_STR(config->args, where, "-projection_cell", "stackAssociation.projection_cell", "=="); 1609 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackAssociation.tess_id", "LIKE"); 1610 PXOPT_COPY_STR(config->args, where, "-filter", "stackAssociation.filter", "LIKE"); 1611 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackSumSkyfile.stack_id", "=="); 1612 pxAddLabelSearchArgs(config, where, "-data_group", "stackAssociation.data_group", "LIKE"); 1613 PXOPT_COPY_STR(config->args, where, "-skycell_id", "stackRun.skycell_id", "LIKE"); 1614 // PXOPT_COPY_STR(config->args, where, "-state", "stackRun.state", "=="); 1615 pxAddLabelSearchArgs(config, where, "-label", "stackRun.label", "LIKE"); 1616 // PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "=="); 1617 // PXOPT_COPY_F64(config->args, where, "-mjd_obs_begin", "stackSumSkyfile.mjd_obs", ">="); 1618 // PXOPT_COPY_F64(config->args, where, "-mjd_obs_end", "stackSumSkyfile.mjd_obs", "<="); 1619 // PXOPT_COPY_S16(config->args, where, "-background_model","stackSumSkyfile.background_model", "=="); 1620 1621 // PXOPT_LOOKUP_BOOL(all, config->args, "-all", false); 1622 1623 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1624 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1625 1626 psString query = pxDataGet("stacktool_summary.sql"); 1627 if (!query) { 1628 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1629 return false; 1630 } 1631 1632 if (psListLength(where->list)) { 1633 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1634 psStringAppend(&query, " WHERE %s", whereClause); 1635 psFree(whereClause); 1636 } else { 1637 psError(PXTOOLS_ERR_CONFIG, true, "search parameters are required"); 1638 return false; 1639 } 1640 1641 psFree(where); 1642 1643 // treat limit == 0 as "no limit" 1644 if (limit) { 1645 psString limitString = psDBGenerateLimitSQL(limit); 1646 psStringAppend(&query, " %s", limitString); 1647 psFree(limitString); 1648 } 1649 1650 if (!p_psDBRunQuery(config->dbh, query)) { 1651 psError(PS_ERR_UNKNOWN, false, "database error"); 1652 psFree(query); 1653 return false; 1654 } 1655 psFree(query); 1656 1657 psArray *output = p_psDBFetchResult(config->dbh); 1658 if (!output) { 1659 psErrorCode err = psErrorCodeLast(); 1660 switch (err) { 1661 case PS_ERR_DB_CLIENT: 1662 psError(PXTOOLS_ERR_SYS, false, "database error"); 1663 case PS_ERR_DB_SERVER: 1664 psError(PXTOOLS_ERR_PROG, false, "database error"); 1665 default: 1666 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1667 } 1668 1669 return false; 1670 } 1671 if (!psArrayLength(output)) { 1672 psTrace("stacktool", PS_LOG_INFO, "no rows found"); 1673 psFree(output); 1674 return true; 1675 } 1676 1677 if (psArrayLength(output)) { 1678 if (!ippdbPrintMetadatas(stdout, output, "stackSummary", !simple)) { 1679 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1680 psFree(output); 1681 return false; 1682 } 1683 } 1684 1685 psFree(output); 1686 1687 return true; 1688 } 1689 1569 1690 static bool pendingcleanuprunMode(pxConfig *config) 1570 1691 { -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/stacktool.h
r34800 r36680 38 38 STACKTOOL_MODE_TOSUMMARY, 39 39 STACKTOOL_MODE_ADDSUMMARY, 40 STACKTOOL_MODE_REVERTSUMMARY, 41 STACKTOOL_MODE_SUMMARY, 40 42 STACKTOOL_MODE_PENDINGCLEANUPRUN, 41 43 STACKTOOL_MODE_PENDINGCLEANUPSKYFILE, -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/stacktoolConfig.c
r35122 r36680 121 121 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 122 122 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0, "search by label", 0); 123 psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-data_group", 0, "search by data_group", 0); 123 124 psMetadataAddS16(updaterunArgs, PS_LIST_TAIL, "-fault", 0, "search by fault code", 0); 124 125 psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-sass_id", 0, "search by stack association ID", 0); … … 264 265 psMetadataAddStr(addsummaryArgs, PS_LIST_TAIL, "-path_base", 0, "set summary path base", NULL); 265 266 267 // -revertsummary 268 psMetadata *revertsummaryArgs = psMetadataAlloc(); 269 psMetadataAddS64(revertsummaryArgs, PS_LIST_TAIL, "-sass_id", 0, "search by stack association ID", 0); 270 271 // -summary 272 psMetadata *summaryArgs = psMetadataAlloc(); 273 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-sass_id", 0, "search by stack association ID", 0); 274 psMetadataAddS64(summaryArgs, PS_LIST_TAIL, "-stack_id", 0, "search by stack ID", 0); 275 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-tess_id", 0, "search by tessellation ID", NULL); 276 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-projection_cell", 0, "search by projection cell ID", NULL); 277 // psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-state", 0, "search by state", NULL); 278 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-filter", 0, "search by filter (LIKE comparison)", NULL); 279 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by stackRun label (LIKE comparison)", NULL); 280 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-data_group", PS_META_DUPLICATE_OK, "search by stackAssociation data_group (LIKE comparison)", NULL); 281 psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-skycell_id", 0, "search by skycell ID", NULL); 282 // psMetadataAddStr(summaryArgs, PS_LIST_TAIL, "-dist_group", PS_META_DUPLICATE_OK, "search by stackRun dist_group (LIKE comparison)", NULL); 283 284 // psMetadataAddBool(summaryArgs, PS_LIST_TAIL, "-all", 0, "search without arguments", false); 285 psMetadataAddU64(summaryArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 286 psMetadataAddBool(summaryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 287 266 288 // -pendingcleanuprun 267 289 psMetadata *pendingcleanuprunArgs = psMetadataAlloc(); … … 317 339 PXOPT_ADD_MODE("-addsumskyfile", "", STACKTOOL_MODE_ADDSUMSKYFILE, addsumskyfileArgs); 318 340 PXOPT_ADD_MODE("-sumskyfile", "list results of stackRun", STACKTOOL_MODE_SUMSKYFILE, sumskyfileArgs); 319 PXOPT_ADD_MODE("-sassskyfile", "list results of stackAssociation", STACKTOOL_MODE_SASSSKYFILE, sassskyfileArgs); 341 320 342 PXOPT_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE, revertsumskyfileArgs); 343 PXOPT_ADD_MODE("-updatesumskyfile", "update fault code for sumskyfile", STACKTOOL_MODE_UPDATESUMSKYFILE, updatesumskyfileArgs); 344 321 345 PXOPT_ADD_MODE("-pendingcleanuprun", "show runs that need to be cleaned up", STACKTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunArgs); 322 346 PXOPT_ADD_MODE("-pendingcleanupskyfile", "show runs that need to be cleaned up", STACKTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileArgs); 323 347 PXOPT_ADD_MODE("-donecleanup", "show runs that have been cleaned", STACKTOOL_MODE_DONECLEANUP, donecleanupArgs); 324 PXOPT_ADD_MODE("-updatesumskyfile", "update fault code for sumskyfile", STACKTOOL_MODE_UPDATESUMSKYFILE, updatesumskyfileArgs); 348 349 PXOPT_ADD_MODE("-sassskyfile", "list results of stackAssociation", STACKTOOL_MODE_SASSSKYFILE, sassskyfileArgs); 325 350 PXOPT_ADD_MODE("-tosummary", "show runs that can be summarized", STACKTOOL_MODE_TOSUMMARY, tosummaryArgs); 351 PXOPT_ADD_MODE("-summary", "show runs that have been summarized", STACKTOOL_MODE_SUMMARY, summaryArgs); 326 352 PXOPT_ADD_MODE("-addsummary", "add entry to the summary table", STACKTOOL_MODE_ADDSUMMARY, addsummaryArgs); 353 PXOPT_ADD_MODE("-revertsummary", "revert entry in the summary table", STACKTOOL_MODE_REVERTSUMMARY, revertsummaryArgs); 354 327 355 PXOPT_ADD_MODE("-exportrun", "export run for import on other database", STACKTOOL_MODE_EXPORTRUN, exportrunArgs); 328 356 PXOPT_ADD_MODE("-importrun", "import run from metadata file", STACKTOOL_MODE_IMPORTRUN, importrunArgs); -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/staticskytool.c
r35194 r36680 50 50 static bool revertskycalresultMode(pxConfig *config); 51 51 static bool updateskycalresultMode(pxConfig *config); 52 static bool exportskycalrunMode(pxConfig *config); 53 static bool importskycalrunMode(pxConfig *config); 52 54 53 55 static bool setstaticskyRunState(pxConfig *config, psS64 sky_id, const char *state); … … 88 90 MODECASE(STATICSKYTOOL_MODE_REVERTSKYCALRESULT,revertskycalresultMode); 89 91 MODECASE(STATICSKYTOOL_MODE_SKYCALRESULT, skycalresultMode); 92 MODECASE(STATICSKYTOOL_MODE_EXPORTSKYCALRUN, exportskycalrunMode); 93 MODECASE(STATICSKYTOOL_MODE_IMPORTSKYCALRUN, importskycalrunMode); 90 94 default: 91 95 psAbort("invalid option (this should not happen)"); … … 895 899 bool importrunMode(pxConfig *config) 896 900 { 897 # if (0) 898 unsigned int nFail; 899 900 int numImportTables = 2; 901 902 char tables[2] [80] = {"stackInputSkyfile", "stackSumSkyfile"}; 901 return false; 902 } 903 904 bool exportskycalrunMode(pxConfig *config) 905 { 906 typedef struct ExportTable { 907 char tableName[80]; 908 char sqlFilename[80]; 909 } ExportTable; 910 911 int numExportTables = 2; 903 912 904 913 PS_ASSERT_PTR_NON_NULL(config, NULL); 905 914 906 PXOPT_LOOKUP_STR(infile, config->args, "-infile", true, false); 907 908 psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false); 909 910 #ifdef notdef 911 fprintf (stderr, "---- input ----\n"); 912 psMetadataPrint (stderr, input, 1); 913 #endif 914 915 if (!pxCheckImportVersion(config, input)) { 916 psError(PS_ERR_UNKNOWN, false, "pxCheckImportVersion failed"); 915 // XXX unused PXOPT_LOOKUP_S64(det_id, config->args, "-sky_id", true, false); 916 PXOPT_LOOKUP_STR(outfile, config->args, "-outfile", true, false); 917 PXOPT_LOOKUP_BOOL(clean, config->args, "-clean", false); 918 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 919 920 FILE *f = fopen (outfile, "w"); 921 if (f == NULL) { 922 psError(PS_ERR_UNKNOWN, false, "failed to open output file"); 917 923 return false; 918 924 } 919 psMetadataItem *item = psMetadataLookup (input, "stackRun"); 920 psAssert (item, "entry not in input?"); 921 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 922 923 psMetadataItem *entry = psListGet (item->data.list, 0); 924 assert (entry); 925 assert (entry->type == PS_DATA_METADATA); 926 stackRunRow *stackRun = stackRunObjectFromMetadata (entry->data.md); 927 stackRunInsertObject (config->dbh, stackRun); 928 929 // fprintf (stdout, "---- stack run ----\n"); 930 // psMetadataPrint (stderr, entry->data.md, 1); 931 932 for (int i = 0; i < numImportTables; i++) { 933 psMetadataItem *item = psMetadataLookup (input, tables[i]); 934 psAssert (item, "entry not in input?"); 935 psAssert (item->type == PS_DATA_METADATA_MULTI, "entry not multi?"); 936 937 switch (i) { 938 case 0: 939 for (int i = 0; i < item->data.list->n; i++) { 940 entry = psListGet (item->data.list, i); 941 assert (entry); 942 assert (entry->type == PS_DATA_METADATA); 943 stackInputSkyfileRow *stackInputSkyfile = stackInputSkyfileObjectFromMetadata (entry->data.md); 944 stackInputSkyfileInsertObject (config->dbh, stackInputSkyfile); 945 946 // fprintf (stdout, "---- row %d ----\n", i); 947 // psMetadataPrint (stderr, entry->data.md, 1); 948 } 949 break; 950 951 case 1: 952 for (int i = 0; i < item->data.list->n; i++) { 953 entry = psListGet (item->data.list, i); 954 assert (entry); 955 assert (entry->type == PS_DATA_METADATA); 956 stackSumSkyfileRow *stackSumSkyfile = stackSumSkyfileObjectFromMetadata (entry->data.md); 957 stackSumSkyfileInsertObject (config->dbh, stackSumSkyfile); 958 959 // fprintf (stdout, "---- row %d ----\n", i); 960 // psMetadataPrint (stderr, entry->data.md, 1); 961 } 962 break; 963 } 925 926 if (!pxExportVersion(config, f)) { 927 psError(PS_ERR_UNKNOWN, false, "failed to write dbversion output file"); 928 return false; 964 929 } 965 966 # endif 967 return true; 930 psMetadata *where = psMetadataAlloc(); 931 PXOPT_COPY_S64(config->args, where, "-skycal_id", "skycal_id", "=="); 932 933 ExportTable tables [] = { 934 {"skycalRun", "staticskytool_export_skycalrun.sql"}, 935 {"skycalResult", "staticskytool_export_skycalresult.sql"}, 936 }; 937 938 for (int i=0; i < numExportTables; i++) { 939 psString query = pxDataGet(tables[i].sqlFilename); 940 if (!query) { 941 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 942 return false; 943 } 944 945 if (where && psListLength(where->list)) { 946 psString whereClause = psDBGenerateWhereSQL(where, NULL); 947 psStringAppend(&query, " %s", whereClause); 948 psFree(whereClause); 949 } 950 951 // treat limit == 0 as "no limit" 952 if (limit) { 953 psString limitString = psDBGenerateLimitSQL(limit); 954 psStringAppend(&query, " %s", limitString); 955 psFree(limitString); 956 } 957 958 if (!p_psDBRunQuery(config->dbh, query)) { 959 psError(PS_ERR_UNKNOWN, false, "database error"); 960 psFree(query); 961 return false; 962 } 963 psFree(query); 964 965 psArray *output = p_psDBFetchResult(config->dbh); 966 if (!output) { 967 psError(PS_ERR_UNKNOWN, false, "database error"); 968 return false; 969 } 970 if (!psArrayLength(output)) { 971 psError(PS_ERR_UNKNOWN, true, "no rows found"); 972 psFree(output); 973 return false; 974 } 975 976 if (clean) { 977 if (!strcmp(tables[i].tableName, "skycalRun")) { 978 if (!pxSetStateCleaned("skycalRun", "state", output)) { 979 psFree(output); 980 psError(PS_ERR_UNKNOWN, false, "pxSetStateClean failed for table %s", tables[i].tableName); 981 return false; 982 } 983 } 984 } 985 986 // we must write the export table in non-simple (true) format 987 if (!ippdbPrintMetadatas(f, output, tables[i].tableName, true)) { 988 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 989 psFree(output); 990 return false; 991 } 992 993 psFree(output); 994 } 995 996 fclose (f); 997 998 return true; 999 } 1000 1001 bool importskycalrunMode(pxConfig *config) 1002 { 1003 return false; 968 1004 } 969 1005 … … 986 1022 987 1023 } 988 989 # if (0)990 // now we need to loop over all requested filters and check that each is found991 // XXX is this needed? haven't we required that we only match the requested filters992 // and that N unique filters are found?993 994 psVector *found = psVectorAlloc(inputs->n, PS_TYPE_U8);995 psVectorInit (found, 0);996 997 psMetadataItem *filter = NULL;998 psListIterator *iter = psListIteratorAlloc (filters->data.list, PS_LIST_HEAD, false);999 while ((filter = psListGetAndIncrement(iter))) {1000 1001 bool foundOne = false;1002 1003 psAssert (filter->type == PS_DATA_STR, "filter is not a string?");1004 for (int j = 0; !foundOne && (j < inputs->n); j++) {1005 if (found->data.U8[j]) continue;1006 psMetadata *inputRow = inputs->data[j]; // Row from select1007 1008 // pull out the skycell_id, tess_id, filter1009 psString inFilter = psMetadataLookupStr(&status, row, "filter");1010 psAssert (status);1011 1012 found->data.U8[j] = true;1013 foundOne = true;1014 }1015 if (!foundOne) {1016 // this required filter was not found in the inputs, skip the entry1017 skip();1018 }1019 }1020 # endif1021 1024 1022 1025 static bool defineskycalrunMode(pxConfig *config) … … 1042 1045 PXOPT_COPY_STR(config->args, whereMD, "-select_skycell_id", "stackRun.skycell_id", "=="); 1043 1046 PXOPT_COPY_STR(config->args, whereMD, "-select_tess_id", "stackRun.tess_id", "=="); 1047 pxAddLabelSearchArgs(config, whereMD, "-select_filter", "stackRun.filter", "LIKE"); 1044 1048 PXOPT_COPY_F32(config->args, whereMD, "-select_good_frac_min", "stackSumSkyfile.good_frac", ">="); 1045 1049 pxAddLabelSearchArgs(config, whereMD, "-select_label", "staticskyRun.label", "LIKE"); 1046 1050 pxAddLabelSearchArgs(config, whereMD, "-select_data_group", "staticskyRun.data_group", "LIKE"); 1047 pxAddLabelSearchArgs(config, whereMD, "-select_filter", "stackRun.filter", "LIKE");1048 1051 if (!pxskycellAddWhere(config, whereMD)) { 1049 1052 psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments"); -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/staticskytool.h
r32960 r36680 43 43 STATICSKYTOOL_MODE_SKYCALRESULT, 44 44 STATICSKYTOOL_MODE_REVERTSKYCALRESULT, 45 STATICSKYTOOL_MODE_EXPORTSKYCALRUN, 46 STATICSKYTOOL_MODE_IMPORTSKYCALRUN, 45 47 } staticskytoolMode; 46 48 -
branches/eam_branches/ps2-tc3-20130727/ippTools/src/staticskytoolConfig.c
r35197 r36680 269 269 psMetadataAddBool(skycalresultArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false); 270 270 271 // -exportskycalrun 272 psMetadata *exportskycalrunArgs = psMetadataAlloc(); 273 psMetadataAddS64(exportskycalrunArgs, PS_LIST_TAIL, "-skycal_id", 0, "export this skycal ID (required)", 0); 274 psMetadataAddStr(exportskycalrunArgs, PS_LIST_TAIL, "-outfile", 0, "export to this file (required)", NULL); 275 psMetadataAddU64(exportskycalrunArgs, PS_LIST_TAIL, "-limit", 0, "limit result set to N items", 0); 276 psMetadataAddBool(exportskycalrunArgs, PS_LIST_TAIL, "-clean", 0, "mark tables as cleaned", false); 277 278 // -importrun 279 psMetadata *importskycalrunArgs = psMetadataAlloc(); 280 psMetadataAddStr(importskycalrunArgs, PS_LIST_TAIL, "-infile", 0, "import from this file (required)", NULL); 281 282 271 283 psFree(now); 272 284 … … 291 303 PXOPT_ADD_MODE("-updateskycal", "revert faulted skycal run", STATICSKYTOOL_MODE_UPDATESKYCALRESULT, updateskycalresultArgs); 292 304 PXOPT_ADD_MODE("-skycalresult", "Get result of skycal run", STATICSKYTOOL_MODE_SKYCALRESULT, skycalresultArgs); 305 PXOPT_ADD_MODE("-exportskycalrun", "Export skycal run", STATICSKYTOOL_MODE_EXPORTSKYCALRUN, exportskycalrunArgs); 306 PXOPT_ADD_MODE("-importskycalrun", "Import skycal run", STATICSKYTOOL_MODE_IMPORTSKYCALRUN, importskycalrunArgs); 293 307 294 308 if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Note:
See TracChangeset
for help on using the changeset viewer.
