Changeset 24043
- Timestamp:
- May 3, 2009, 2:52:09 PM (17 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 4 edited
-
share/warptool_finished_run_select.sql (modified) (1 diff)
-
src/warptool.c (modified) (3 diffs)
-
src/warptool.h (modified) (1 diff)
-
src/warptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/warptool_finished_run_select.sql
r23688 r24043 5 5 (SELECT DISTINCT 6 6 warpRun.warp_id, 7 warpRun.label as label, 7 8 warpSkyCellMap.warp_id as foo, 8 9 warpSkyfile.warp_id as bar, -
trunk/ippTools/src/warptool.c
r23921 r24043 41 41 static bool towarpedMode(pxConfig *config); 42 42 static bool addwarpedMode(pxConfig *config); 43 static bool advancerunMode(pxConfig *config); 43 44 static bool warpedMode(pxConfig *config); 44 45 static bool revertwarpedMode(pxConfig *config); … … 88 89 MODECASE(WARPTOOL_MODE_TOWARPED, towarpedMode); 89 90 MODECASE(WARPTOOL_MODE_ADDWARPED, addwarpedMode); 91 MODECASE(WARPTOOL_MODE_ADVANCERUN, advancerunMode); 90 92 MODECASE(WARPTOOL_MODE_WARPED, warpedMode); 91 93 MODECASE(WARPTOOL_MODE_REVERTWARPED, revertwarpedMode); … … 976 978 } 977 979 980 static bool advancerunMode(pxConfig *config) 981 { 982 PS_ASSERT_PTR_NON_NULL(config, false); 983 984 psMetadata *where = psMetadataAlloc(); 985 PXOPT_COPY_S64(config->args, where, "-warp_id", "warp_id", "=="); 986 pxAddLabelSearchArgs (config, where, "-label", "label", "=="); 987 988 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 989 990 psString query = pxDataGet("warptool_finished_run_select.sql"); 991 if (!query) { 992 psError(PXTOOLS_ERR_DATA, false, "failed to retrieve SQL statement"); 993 return false; 994 } 995 996 if (psListLength(where->list)) { 997 psString whereClause = psDBGenerateWhereSQL(where, "warpRun"); 998 psStringAppend(&query, " %s", whereClause); 999 psFree(whereClause); 1000 } 1001 psFree(where); 1002 1003 if (!p_psDBRunQuery(config->dbh, query)) { 1004 psError(PS_ERR_UNKNOWN, false, "database error"); 1005 psFree(query); 1006 return false; 1007 } 1008 psFree(query); 1009 1010 psArray *output = p_psDBFetchResult(config->dbh); 1011 if (!output) { 1012 psError(PS_ERR_UNKNOWN, false, "database error"); 1013 return false; 1014 } 1015 if (!psArrayLength(output)) { 1016 psTrace("warptool", PS_LOG_INFO, "no rows found"); 1017 psFree(output); 1018 return true; 1019 } 1020 1021 query = pxDataGet("warptool_finish_run.sql"); 1022 for (long i = 0; i < psArrayLength(output); i++) { 1023 psMetadata *row = output->data[i]; 1024 1025 bool status; 1026 psS64 warp_id = psMetadataLookupS64(&status, row, "warp_id"); 1027 if (!status) { 1028 psError(PS_ERR_UNKNOWN, false, "failed to look up value for warp_id"); 1029 psFree(output); 1030 psFree(query); 1031 return false; 1032 } 1033 psS32 magicked = psMetadataLookupS64(&status, row, "magicked"); 1034 if (!status) { 1035 psError(PS_ERR_UNKNOWN, false, "failed to look up value for magicked"); 1036 psFree(output); 1037 psFree(query); 1038 return false; 1039 } 1040 if (!p_psDBRunQueryF(config->dbh, query, magicked, warp_id)) { 1041 psError(PS_ERR_UNKNOWN, false, "database error"); 1042 psFree(output); 1043 psFree(query); 1044 return false; 1045 } 1046 1047 psS64 numUpdated = psDBAffectedRows(config->dbh); 1048 1049 if (numUpdated != 1) { 1050 psError(PS_ERR_UNKNOWN, false, "should have affected 1 row"); 1051 psFree(query); 1052 psFree(output); 1053 return false; 1054 } 1055 } 1056 psFree(output); 1057 psFree(query); 1058 1059 return true; 1060 } 1061 978 1062 bool warpCompletedRuns(pxConfig *config) 979 1063 { -
trunk/ippTools/src/warptool.h
r23310 r24043 37 37 WARPTOOL_MODE_TOWARPED, 38 38 WARPTOOL_MODE_ADDWARPED, 39 WARPTOOL_MODE_ADVANCERUN, 39 40 WARPTOOL_MODE_WARPED, 40 41 WARPTOOL_MODE_REVERTWARPED, -
trunk/ippTools/src/warptoolConfig.c
r23921 r24043 219 219 psMetadataAddBool(revertwarpedArgs, PS_LIST_TAIL, "-all", 0, "allow everything to be queued without search terms", false); 220 220 221 // -advancerun 222 psMetadata *advancerunArgs = psMetadataAlloc(); 223 psMetadataAddS64(advancerunArgs, PS_LIST_TAIL, "-warp_id", 0, "search by warp ID", 0); 224 psMetadataAddStr(advancerunArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by label ", NULL); 225 psMetadataAddU64(advancerunArgs, PS_LIST_TAIL, "-limit", 0, "limit exposures to advance to N items", 0); 226 221 227 // -block 222 228 psMetadata *blockArgs = psMetadataAlloc(); … … 297 303 PXOPT_ADD_MODE("-towarped", "", WARPTOOL_MODE_TOWARPED, towarpedArgs); 298 304 PXOPT_ADD_MODE("-addwarped", "", WARPTOOL_MODE_ADDWARPED, addwarpedArgs); 305 PXOPT_ADD_MODE("-advancerun", "", WARPTOOL_MODE_ADVANCERUN, advancerunArgs); 299 306 PXOPT_ADD_MODE("-warped", "", WARPTOOL_MODE_WARPED, warpedArgs); 300 307 PXOPT_ADD_MODE("-revertwarped", "", WARPTOOL_MODE_REVERTWARPED, revertwarpedArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
