- Timestamp:
- May 3, 2010, 8:50:52 AM (16 years ago)
- Location:
- branches/simtest_nebulous_branches
- Files:
-
- 3 edited
-
. (modified) (1 prop)
-
ippTools/src (modified) (1 prop)
-
ippTools/src/stacktool.c (modified) (30 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/simtest_nebulous_branches
- Property svn:mergeinfo changed
-
branches/simtest_nebulous_branches/ippTools/src
- Property svn:ignore
-
old new 1 *.la 2 *.lo 1 3 .deps 2 4 .gdb_history … … 4 6 Makefile 5 7 Makefile.in 8 addtool 9 caltool 10 camtool 11 chiptool 6 12 config.h 7 13 config.h.in 8 stamp-h1 9 *.la 10 *.lo 14 detselect 15 dettool 16 difftool 17 disttool 18 dqstatstool 19 faketool 20 flatcorr 21 guidetool 22 magicdstool 23 magictool 24 pstamptool 25 pubtool 26 pxadmin 27 pxdata.c 28 pxinject 11 29 pxtoolsErrorCodes.c 12 30 pxtoolsErrorCodes.h 13 pxadmin14 pxinject15 pztool16 31 pzgetexp 17 32 pzgetimfiles 33 pztool 34 receivetool 18 35 regtool 19 guidetool 20 chiptool 21 camtool 36 stacktool 37 stamp-h1 22 38 warptool 23 difftool24 stacktool25 faketool26 dettool27 detselect28 pxdata.c29 magictool30 magicdstool31 caltool32 flatcorr33 pstamptool34 disttool35 receivetool36 37 pubtool
-
- Property svn:ignore
-
branches/simtest_nebulous_branches/ippTools/src/stacktool.c
r24954 r27840 109 109 110 110 // 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); 115 121 116 122 psMetadata *where = psMetadataAlloc(); … … 118 124 119 125 // select based on properties of the raw exposures 126 PXOPT_COPY_STR(config->args, where, "-select_comment", "rawExp.comment", "LIKE"); 120 127 PXOPT_COPY_STR(config->args, where, "-select_inst", "rawExp.camera", "=="); 121 128 PXOPT_COPY_STR(config->args, where, "-select_telescope", "rawExp.telescope", "=="); … … 139 146 PXOPT_COPY_F32(config->args, where, "-select_fwhm_minor_min", "camProcessedExp.fwhm_minor", ">="); 140 147 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 141 154 PXOPT_COPY_STR(config->args, where, "-select_exp_type", "rawExp.exp_type", "=="); 142 155 PXOPT_COPY_F32(config->args, where, "-select_good_frac_min", "warpSkyfile.good_frac", ">="); 143 156 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 145 159 146 160 // these are used to build the HAVING restriction 147 161 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 } 148 170 149 171 // other options applied outside of the WHERE … … 154 176 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 155 177 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"); 160 181 psFree(where); 161 ps Error(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"); 166 187 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(""); 171 195 if (psListLength(where->list)) { 172 196 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 173 psStringAppend(& select, "AND %s", whereClause);197 psStringAppend(&where1, "\nAND %s", whereClause); 174 198 psFree(whereClause); 175 199 } 176 200 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 } 185 205 186 206 // Restriction on aggregated quantities using HAVING … … 214 234 psFree(having); 215 235 216 if (!p_psDBRunQuery (config->dbh, select)) {236 if (!p_psDBRunQueryF(config->dbh, select, where1, where2)) { 217 237 psError(PS_ERR_UNKNOWN, false, "database error"); 218 238 psFree(select); 219 psFree(where); 239 psFree(where1); 240 psFree(where2); 220 241 return false; 221 242 } 222 243 psFree(select); 244 psFree(where1); 245 psFree(where2); 223 246 224 247 psArray *output = p_psDBFetchResult(config->dbh); … … 262 285 } 263 286 if (!insert) { 264 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");287 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 265 288 psFree(where); 266 289 return false; … … 277 300 psString part2 = pxDataGet("stacktool_definebyquery_insert_random_part2.sql"); 278 301 if (!part2) { 279 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");302 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 280 303 psFree(insert); 281 304 return false; … … 339 362 workdir, 340 363 label, 364 data_group ? data_group : label, 365 dist_group, 341 366 reduction, 342 367 dvodb, … … 344 369 skycell_id, 345 370 tess_id, 346 filter); 371 filter, 372 note); 347 373 348 374 if (!stackRunInsertObject(config->dbh, run)) { … … 462 488 463 489 // required options 464 PXOPT_LOOKUP_STR(workdir, config->args, "- workdir", true, false);490 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", true, false); 465 491 PXOPT_LOOKUP_STR(skycell_id, config->args, "-skycell_id", true, false); 466 492 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", true, false); … … 469 495 // default 470 496 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); 472 498 473 499 // 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); 477 506 478 507 // we have to support multipe exp_ids … … 489 518 workdir, 490 519 label, 520 data_group ? data_group : label, 521 dist_group, 491 522 reduction, 492 523 dvodb, … … 494 525 skycell_id, 495 526 tess_id, 496 filter); 527 filter, 528 note); 497 529 498 530 if (!run) { … … 563 595 PS_ASSERT_PTR_NON_NULL(config, false); 564 596 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); 566 599 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)) { 569 626 // set detRun.state to state 570 627 return setstackRunState(config, stack_id, state); 571 628 } 572 629 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 574 637 } 575 638 … … 613 676 psString query = pxDataGet("stacktool_inputskyfile.sql"); 614 677 if (!query) { 615 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");678 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 616 679 return false; 617 680 } … … 619 682 if (psListLength(where->list)) { 620 683 psString whereClause = psDBGenerateWhereConditionSQL(where, "stackInputSkyfile"); 621 psStringAppend(&query, " AND%s", whereClause);684 psStringAppend(&query, " WHERE %s", whereClause); 622 685 psFree(whereClause); 623 686 } … … 687 750 psString query = pxDataGet("stacktool_tosum.sql"); 688 751 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 693 757 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); 697 761 } 698 762 psFree(where); … … 705 769 } 706 770 707 if (!p_psDBRunQuery (config->dbh, query)) {771 if (!p_psDBRunQueryF(config->dbh, query, whereClause)) { 708 772 psError(PS_ERR_UNKNOWN, false, "database error"); 709 773 psFree(query); … … 853 917 854 918 psMetadata *where = psMetadataAlloc(); 855 PXOPT_COPY_S64(config->args, where, "-warp_id", "warpRun.warp_id", "==");856 919 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", "==");859 920 PXOPT_COPY_STR(config->args, where, "-tess_id", "stackRun.tess_id", "=="); 860 921 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); 861 933 862 934 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 865 937 psString query = pxDataGet("stacktool_sumskyfile.sql"); 866 938 if (!query) { 867 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");939 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 868 940 return false; 869 941 } … … 873 945 psStringAppend(&query, " WHERE %s", whereClause); 874 946 psFree(whereClause); 875 } 947 } else if (!all) { 948 psError(PXTOOLS_ERR_CONFIG, true, "search parameters or -all are required"); 949 return false; 950 } 951 876 952 psFree(where); 877 953 … … 930 1006 psMetadata *where = psMetadataAlloc(); 931 1007 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", "=="); 933 1009 PXOPT_COPY_S16(config->args, where, "-fault", "stackSumSkyfile.fault", "=="); 934 1010 935 1011 if (!psListLength(where->list) && !psMetadataLookupBool(NULL, config->args, "-all")) { 936 1012 psFree(where); 937 psError(PXTOOLS_ERR_ DATA, false, "search parameters are required");1013 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 938 1014 return false; 939 1015 } … … 942 1018 psString delete = pxDataGet("stacktool_revertsumskyfile_delete.sql"); 943 1019 if (!delete) { 944 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1020 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 945 1021 return false; 946 1022 } … … 989 1065 } 990 1066 1067 #ifdef notdef 1068 static 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 991 1089 static bool pendingcleanuprunMode(pxConfig *config) 992 1090 { … … 1001 1099 psString query = pxDataGet("stacktool_pendingcleanuprun.sql"); 1002 1100 if (!query) { 1003 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1101 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1004 1102 return false; 1005 1103 } … … 1065 1163 psString query = pxDataGet("stacktool_pendingcleanupskyfile.sql"); 1066 1164 if (!query) { 1067 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1165 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1068 1166 return false; 1069 1167 } … … 1126 1224 psString query = pxDataGet("stacktool_donecleanup.sql"); 1127 1225 if (!query) { 1128 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1226 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1129 1227 return false; 1130 1228 } … … 1214 1312 } 1215 1313 1314 if (!pxExportVersion(config, f)) { 1315 psError(PS_ERR_UNKNOWN, false, "failed to write dbversion output file"); 1316 return false; 1317 } 1216 1318 psMetadata *where = psMetadataAlloc(); 1217 1319 PXOPT_COPY_S64(config->args, where, "-stack_id", "stack_id", "=="); … … 1226 1328 psString query = pxDataGet(tables[i].sqlFilename); 1227 1329 if (!query) { 1228 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");1330 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1229 1331 return false; 1230 1332 } … … 1300 1402 psMetadata *input = psMetadataConfigRead (NULL, &nFail, infile, false); 1301 1403 1302 fprintf (stdout, "---- input ----\n"); 1404 #ifdef notdef 1405 fprintf (stderr, "---- input ----\n"); 1303 1406 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 } 1305 1413 psMetadataItem *item = psMetadataLookup (input, "stackRun"); 1306 1414 psAssert (item, "entry not in input?");
Note:
See TracChangeset
for help on using the changeset viewer.
