Changeset 24043 for trunk/ippTools/src/warptool.c
- Timestamp:
- May 3, 2009, 2:52:09 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/warptool.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
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 {
Note:
See TracChangeset
for help on using the changeset viewer.
