Changeset 27149 for trunk/ippTools/src/regtool.c
- Timestamp:
- Mar 2, 2010, 6:29:45 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/regtool.c (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/regtool.c
r27132 r27149 37 37 static bool revertprocessedimfileMode(pxConfig *config); 38 38 static bool updateprocessedimfileMode(pxConfig *config); 39 static bool pendingcompressimfileMode(pxConfig *config); 39 40 // exp 40 41 static bool pendingexpMode(pxConfig *config); … … 44 45 static bool updateprocessedexpMode(pxConfig *config); 45 46 static bool cleardupexpMode(pxConfig *config); 47 static bool finishcompressexpMode(pxConfig *config); 48 49 static bool updatebyqueryMode(pxConfig *config); 50 46 51 static bool exportrunMode(pxConfig *config); 47 52 static bool importrunMode(pxConfig *config); … … 77 82 MODECASE(REGTOOL_MODE_REVERTPROCESSEDEXP, revertprocessedexpMode); 78 83 MODECASE(REGTOOL_MODE_UPDATEPROCESSEDEXP, updateprocessedexpMode); 84 MODECASE(REGTOOL_MODE_UPDATEBYQUERY, updatebyqueryMode); 85 MODECASE(REGTOOL_MODE_PENDINGCOMPRESSIMFILE, pendingcompressimfileMode); 86 MODECASE(REGTOOL_MODE_FINISHCOMPRESSEXP, finishcompressexpMode); 79 87 MODECASE(REGTOOL_MODE_CLEARDUPEXP, cleardupexpMode); 80 88 MODECASE(REGTOOL_MODE_EXPORTRUN, exportrunMode); … … 189 197 PXOPT_LOOKUP_STR(obs_mode, config->args, "-obs_mode", false, false); 190 198 PXOPT_LOOKUP_STR(obs_group, config->args, "-obs_group", false, false); 199 PXOPT_LOOKUP_STR(data_state, config->args, "-data_state", false, false); 191 200 192 201 PXOPT_LOOKUP_F32(airmass, config->args, "-airmass", false, false); … … 255 264 class_id, 256 265 uri, 266 data_state, 257 267 exp_type, 258 268 filelevel, … … 336 346 PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "=="); 337 347 PXOPT_COPY_STR(config->args, where, "-obs_mode", "obs_mode", "=="); 338 PXOPT_COPY_S 64(config->args, where, "-magicked", "magicked", "==");348 PXOPT_COPY_STR(config->args, where, "-data_state", "data_state", "=="); 339 349 340 350 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); … … 491 501 492 502 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 493 /* PXOPT_LOOKUP_F64(user_1, config->args, "-user_1", false, false); */494 503 PXOPT_LOOKUP_S16(burntool_state, config->args, "-burntool_state", false, false); 495 496 if ((fault == INT16_MAX) && !isfinite(burntool_state)) { 497 psError(PS_ERR_UNKNOWN, false, "one of -fault or -burntool_state must be selected"); 504 PXOPT_LOOKUP_S32(set_bytes, config->args, "-set_bytes", false, false); 505 PXOPT_LOOKUP_STR(set_md5sum, config->args, "-set_md5sum", false, false); 506 PXOPT_LOOKUP_STR(set_state, config->args, "-set_state", false, false); 507 508 if ((fault == INT16_MAX) && !isfinite(burntool_state) && !(set_state)) { 509 psError(PS_ERR_UNKNOWN, false, "one of -fault or -burntool_state or -set_state must be selected"); 498 510 return false; 499 511 } … … 514 526 return false; 515 527 } 516 } 517 518 if (isfinite(burntool_state)) { 519 psString query = pxDataGet("regtool_updateprocessedimfile.sql"); 520 if (!query) { 521 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 522 return false; 523 } 524 525 if (!p_psDBRunQueryF(config->dbh, query, burntool_state, exp_id, class_id)) { 526 psError(PS_ERR_UNKNOWN, false, "database error"); 527 psFree(query); 528 return false; 529 } 530 psFree(query); 528 psFree (where); 529 return(true); 531 530 } 532 531 psFree (where); 532 533 psString setvalues = NULL; 534 if (burntool_state != INT16_MAX) { 535 psStringAppend(&setvalues,"rawImfile.burntool_state = %d",burntool_state); 536 } 537 if (set_bytes != INT32_MAX) { 538 if (setvalues) { 539 psStringAppend(&setvalues,","); 540 } 541 psStringAppend(&setvalues,"rawImfile.bytes = %d",set_bytes); 542 } 543 if (set_md5sum) { 544 if (setvalues) { 545 psStringAppend(&setvalues,","); 546 } 547 psStringAppend(&setvalues,"rawImfile.md5sum = '%s'",set_md5sum); 548 } 549 if (set_state) { 550 if (setvalues) { 551 psStringAppend(&setvalues,","); 552 } 553 psStringAppend(&setvalues,"rawImfile.data_state = '%s'",set_state); 554 } 555 556 psString query = pxDataGet("regtool_updateprocessedimfile.sql"); 557 if (!query) { 558 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 559 return false; 560 } 561 562 // printf(query,setvalues,exp_id,class_id); 563 if (!p_psDBRunQueryF(config->dbh, query, setvalues, exp_id,class_id)) { 564 psError(PS_ERR_UNKNOWN, false, "database error"); 565 psFree(query); 566 psFree(setvalues); 567 return false; 568 } 569 psFree(setvalues); 570 psFree(query); 533 571 534 572 return true; 535 573 } 536 574 575 static bool pendingcompressimfileMode(pxConfig *config) { 576 PS_ASSERT_PTR_NON_NULL(config, false); 577 578 psMetadata *where = psMetadataAlloc(); 579 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 580 PXOPT_COPY_STR(config->args, where, "-class_id", "class_id", "=="); 581 582 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 583 if (whereClause) { 584 psStringPrepend(&whereClause, "\n AND "); 585 } 586 587 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 588 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 589 590 psString query = pxDataGet("regtool_pendingcompressimfile.sql"); 591 if (!query) { 592 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 593 return(false); 594 } 595 psString limitString = NULL; 596 if (limit) { 597 limitString = psDBGenerateLimitSQL(limit); 598 psStringPrepend(&limitString, "\n"); 599 } 600 // printf(query,whereClause,limitString); 601 if (!p_psDBRunQueryF(config->dbh, query, whereClause, limitString ? limitString : "")) { 602 psError(PXTOOLS_ERR_PROG, false, "database error"); 603 psFree(limitString); 604 psFree(query); 605 psFree(whereClause); 606 psFree(where); 607 return(false); 608 } 609 psFree(limitString); 610 psFree(query); 611 psFree(whereClause); 612 psFree(where); 613 614 psArray *output = p_psDBFetchResult(config->dbh); 615 if (!output) { 616 psErrorCode err = psErrorCodeLast(); 617 switch (err) { 618 case PS_ERR_DB_CLIENT: 619 psError(PXTOOLS_ERR_SYS, false, "database error"); 620 case PS_ERR_DB_SERVER: 621 psError(PXTOOLS_ERR_PROG, false, "database error"); 622 default: 623 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 624 } 625 626 return false; 627 } 628 if (!psArrayLength(output)) { 629 psTrace("regtool", PS_LOG_INFO, "no rows found"); 630 psFree(output); 631 return true; 632 } 633 634 // negate simple so the default is true 635 if (!ippdbPrintMetadatas(stdout, output, "regPendingCompressImfile", !simple)) { 636 psError(PXTOOLS_ERR_PROG, false, "failed to print array"); 637 psFree(output); 638 return false; 639 } 640 641 psFree(output); 642 643 return true; 644 } 645 537 646 538 647 static bool pendingexpMode(pxConfig *config) … … 626 735 PXOPT_LOOKUP_STR(exp_type, config->args, "-exp_type", false, false); 627 736 PXOPT_LOOKUP_STR(workdir, config->args, "-workdir", false, false); 737 PXOPT_LOOKUP_STR(state, config->args, "-state", false, false); 628 738 PXOPT_LOOKUP_STR(dvodb, config->args, "-dvodb", false, false); 629 739 PXOPT_LOOKUP_STR(tess_id, config->args, "-tess_id", false, false); … … 787 897 filelevel, 788 898 workdir, 899 state, 789 900 reduction, 790 901 dvodb, … … 930 1041 PXOPT_COPY_STR(config->args, where, "-inst", "camera", "=="); 931 1042 PXOPT_COPY_STR(config->args, where, "-telescope", "telescope", "=="); 932 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">="); 933 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<="); 1043 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "dateobs", ">="); 1044 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "dateobs", "<="); 1045 PXOPT_COPY_STR(config->args, where, "-state", "state", "=="); 934 1046 PXOPT_COPY_STR(config->args, where, "-exp_tag", "exp_tag", "=="); 935 1047 PXOPT_COPY_STR(config->args, where, "-exp_type", "exp_type", "=="); … … 964 1076 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "sun_angle", ">="); 965 1077 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "sun_angle", "<"); 966 1078 967 1079 psString where2 = NULL; 968 1080 if (!pxspaceAddWhere(config, &where2, "rawExp")) { … … 974 1086 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 975 1087 PXOPT_LOOKUP_BOOL(faulted, config->args, "-faulted", false); 976 1088 977 1089 if (psListLength(where->list)) { 978 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp");979 psStringAppend(&query, " AND %s", whereClause);980 psFree(whereClause);1090 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp"); 1091 psStringAppend(&query, " AND %s", whereClause); 1092 psFree(whereClause); 981 1093 } 982 1094 psFree(where); 983 1095 984 1096 if (where2) { 985 1097 psStringAppend(&query, " %s ", where2); … … 988 1100 989 1101 if (faulted) { 990 // list only faulted rows991 psStringAppend(&query, " %s", "AND rawExp.fault != 0");1102 // list only faulted rows 1103 psStringAppend(&query, " %s", "AND rawExp.fault != 0"); 992 1104 } else { 993 // don't list faulted rows994 psStringAppend(&query, " %s", "AND rawExp.fault = 0");995 } 996 1105 // don't list faulted rows 1106 psStringAppend(&query, " %s", "AND rawExp.fault = 0"); 1107 } 1108 997 1109 // treat limit == 0 as "no limit" 998 1110 if (limit) { 999 psString limitString = psDBGenerateLimitSQL(limit);1000 psStringAppend(&query, " %s", limitString);1001 psFree(limitString);1002 } 1003 1111 psString limitString = psDBGenerateLimitSQL(limit); 1112 psStringAppend(&query, " %s", limitString); 1113 psFree(limitString); 1114 } 1115 1004 1116 if (!p_psDBRunQuery(config->dbh, query)) { 1005 psError(PS_ERR_UNKNOWN, false, "database error");1006 return false;1117 psError(PS_ERR_UNKNOWN, false, "database error"); 1118 return false; 1007 1119 } 1008 1120 psFree(query); 1009 1121 1010 1122 psArray *output = p_psDBFetchResult(config->dbh); 1011 1123 if (!output) { 1012 psErrorCode err = psErrorCodeLast();1013 switch (err) {1014 case PS_ERR_DB_CLIENT:1015 psError(PXTOOLS_ERR_SYS, false, "database error");1016 case PS_ERR_DB_SERVER:1017 psError(PXTOOLS_ERR_PROG, false, "database error");1018 default:1019 psError(PXTOOLS_ERR_PROG, false, "unknown error");1020 }1021 1022 return false;1124 psErrorCode err = psErrorCodeLast(); 1125 switch (err) { 1126 case PS_ERR_DB_CLIENT: 1127 psError(PXTOOLS_ERR_SYS, false, "database error"); 1128 case PS_ERR_DB_SERVER: 1129 psError(PXTOOLS_ERR_PROG, false, "database error"); 1130 default: 1131 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 1132 } 1133 1134 return false; 1023 1135 } 1024 1136 if (!psArrayLength(output)) { 1025 psTrace("regtool", PS_LOG_INFO, "no rows found");1026 psFree(output);1027 return true;1028 } 1029 1137 psTrace("regtool", PS_LOG_INFO, "no rows found"); 1138 psFree(output); 1139 return true; 1140 } 1141 1030 1142 if (psArrayLength(output)) { 1031 // negative simple so the default is true1032 if (!ippdbPrintMetadatas(stdout, output, "rawExp", !simple)) {1033 psError(PS_ERR_UNKNOWN, false, "failed to print array");1034 psFree(output);1035 return false;1036 }1037 } 1038 1143 // negative simple so the default is true 1144 if (!ippdbPrintMetadatas(stdout, output, "rawExp", !simple)) { 1145 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 1146 psFree(output); 1147 return false; 1148 } 1149 } 1150 1039 1151 psFree(output); 1040 1152 1041 1153 return true; 1042 1154 } … … 1044 1156 static bool revertprocessedexpMode(pxConfig *config) 1045 1157 { 1046 PS_ASSERT_PTR_NON_NULL(config, false); 1047 1048 psMetadata *where = psMetadataAlloc(); 1049 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1050 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 1051 PXOPT_COPY_S64(config->args, where, "-exp_id_begin", "exp_id", ">="); 1052 PXOPT_COPY_S64(config->args, where, "-exp_id_end", "exp_id", "<="); 1053 1054 psString query = pxDataGet("regtool_revertprocessedexp.sql"); 1055 if (!query) { 1056 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1057 psFree(where); 1058 return false; 1059 } 1060 1061 if (psListLength(where->list)) { 1062 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp"); 1063 psStringAppend(&query, " AND %s", whereClause); 1064 psFree(whereClause); 1065 } else { 1066 psFree(where); 1067 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1068 return false; 1069 } 1158 PS_ASSERT_PTR_NON_NULL(config, false); 1159 1160 psMetadata *where = psMetadataAlloc(); 1161 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1162 PXOPT_COPY_S16(config->args, where, "-fault", "fault", "=="); 1163 PXOPT_COPY_S64(config->args, where, "-exp_id_begin", "exp_id", ">="); 1164 PXOPT_COPY_S64(config->args, where, "-exp_id_end", "exp_id", "<="); 1165 1166 psString query = pxDataGet("regtool_revertprocessedexp.sql"); 1167 if (!query) { 1168 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1070 1169 psFree(where); 1071 1072 if (!p_psDBRunQuery(config->dbh, query)) { 1073 psError(PS_ERR_UNKNOWN, false, "database error"); 1074 psFree(query); 1075 return false; 1076 } 1170 return false; 1171 } 1172 1173 if (psListLength(where->list)) { 1174 psString whereClause = psDBGenerateWhereConditionSQL(where, "rawExp"); 1175 psStringAppend(&query, " AND %s", whereClause); 1176 psFree(whereClause); 1177 } else { 1178 psFree(where); 1179 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 1180 return false; 1181 } 1182 psFree(where); 1183 1184 if (!p_psDBRunQuery(config->dbh, query)) { 1185 psError(PS_ERR_UNKNOWN, false, "database error"); 1077 1186 psFree(query); 1078 1079 int numUpdated = psDBAffectedRows(config->dbh); 1080 1081 psLogMsg("regtool", PS_LOG_INFO, "Updated %d rawExp", numUpdated); 1082 1083 return true; 1187 return false; 1188 } 1189 psFree(query); 1190 1191 int numUpdated = psDBAffectedRows(config->dbh); 1192 1193 psLogMsg("regtool", PS_LOG_INFO, "Updated %d rawExp", numUpdated); 1194 1195 return true; 1084 1196 } 1085 1197 … … 1087 1199 static bool updateprocessedexpMode(pxConfig *config) 1088 1200 { 1089 PS_ASSERT_PTR_NON_NULL(config, false); 1090 1091 psMetadata *where = psMetadataAlloc(); 1092 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1093 1094 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 1095 1096 if (!pxSetFaultCode(config->dbh, "rawExp", where, fault)) { 1097 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 1098 psFree(where); 1099 return false; 1100 } 1201 PS_ASSERT_PTR_NON_NULL(config, false); 1202 1203 psMetadata *where = psMetadataAlloc(); 1204 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1205 1206 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 1207 1208 if (!pxSetFaultCode(config->dbh, "rawExp", where, fault)) { 1209 psError(PS_ERR_UNKNOWN, false, "failed to set set fault flag"); 1101 1210 psFree(where); 1102 1103 return true; 1104 } 1105 1211 return false; 1212 } 1213 psFree(where); 1214 1215 return true; 1216 } 1217 1218 1219 static bool finishcompressexpMode(pxConfig *config) { 1220 1221 PS_ASSERT_PTR_NON_NULL(config, false); 1222 1223 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1224 1225 psMetadata *where = psMetadataAlloc(); 1226 PXOPT_COPY_S64(config->args, where, "-exp_id", "exp_id", "=="); 1227 1228 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1229 1230 psString query = pxDataGet("regtool_finishcompressexp.sql"); 1231 if (!query) { 1232 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1233 return(false); 1234 } 1235 if (where && psListLength(where->list)) { 1236 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1237 psStringAppend(&query, " %s ", whereClause); 1238 psFree(whereClause); 1239 } 1240 psFree(where); 1241 1242 if (limit) { 1243 psString limitString = psDBGenerateLimitSQL(limit); 1244 psStringAppend(&query, " %s ", limitString); 1245 psFree(limitString); 1246 } 1247 // printf(query); 1248 // return(false); 1249 if (!p_psDBRunQuery(config->dbh, query)) { 1250 psError(PS_ERR_UNKNOWN, false, "database error"); 1251 psFree(query); 1252 return(false); 1253 } 1254 psFree(query); 1255 1256 psArray *output = p_psDBFetchResult(config->dbh); 1257 if (!output) { 1258 psError(PS_ERR_UNKNOWN, false, "database error"); 1259 return(false); 1260 } 1261 if (!psArrayLength(output)) { 1262 psTrace("chiptool", PS_LOG_INFO, "no rows found"); 1263 psFree(output); 1264 return(true); 1265 } 1266 1267 for (long i = 0; i < psArrayLength(output); i++) { 1268 psMetadata *md = output->data[i]; 1269 1270 rawExpRow *row = rawExpObjectFromMetadata(md); 1271 if (!psDBTransaction(config->dbh)) { 1272 psError(PS_ERR_UNKNOWN, false, "database error"); 1273 return(false); 1274 } 1275 1276 if (strcmp(row->state,"goto_compressed") == 0) { 1277 if (!pxrawExpSetState(config,row->exp_id, "compressed")) { 1278 psError(PS_ERR_UNKNOWN, false, "failed to set rawExp.state for exp_id: %" PRId64, row->exp_id); 1279 psFree(row); 1280 psFree(output); 1281 return(false); 1282 } 1283 } 1284 else if (strcmp(row->state,"goto_lossy") == 0) { 1285 if (!pxrawExpSetState(config,row->exp_id, "lossy")) { 1286 psError(PS_ERR_UNKNOWN, false, "failed to set rawExp.state for exp_id: %" PRId64, row->exp_id); 1287 psFree(row); 1288 psFree(output); 1289 return(false); 1290 } 1291 } 1292 if (!psDBCommit(config->dbh)) { 1293 psError(PS_ERR_UNKNOWN, false, "database error"); 1294 return false; 1295 } 1296 psFree(row); 1297 } 1298 1299 psFree(output); 1300 return(true); 1301 } 1302 1303 static bool updatebyqueryMode(pxConfig *config) { 1304 PS_ASSERT_PTR_NON_NULL(config, false); 1305 1306 PXOPT_LOOKUP_STR(set_state, config->args, "-set_state", true, false); 1307 1308 // XX test this out; need to make this consistent with the list in regtoolConfig.c 1309 psMetadata *where = psMetadataAlloc(); 1310 PXOPT_COPY_S64(config->args, where, "-exp_id", "rawExp.exp_id", "=="); 1311 PXOPT_COPY_STR(config->args, where, "-exp_name", "rawExp.exp_name", "=="); 1312 PXOPT_COPY_STR(config->args, where, "-inst", "rawExp.camera", "=="); 1313 PXOPT_COPY_STR(config->args, where, "-telescope", "rawExp.telescope", "=="); 1314 PXOPT_COPY_TIME(config->args, where, "-dateobs_begin", "rawExp.dateobs", ">="); 1315 PXOPT_COPY_TIME(config->args, where, "-dateobs_end", "rawExp.dateobs", "<="); 1316 PXOPT_COPY_STR(config->args, where, "-exp_tag", "rawExp.exp_tag", "=="); 1317 PXOPT_COPY_STR(config->args, where, "-exp_type", "rawExp.exp_type", "=="); 1318 PXOPT_COPY_STR(config->args, where, "-filelevel", "rawExp.filelevel", "=="); 1319 PXOPT_COPY_STR(config->args, where, "-reduction", "rawExp.reduction", "=="); 1320 PXOPT_COPY_STR(config->args, where, "-filter", "rawExp.filter", "=="); 1321 PXOPT_COPY_F32(config->args, where, "-airmass_min", "rawExp.airmass", ">="); 1322 PXOPT_COPY_F32(config->args, where, "-airmass_max", "rawExp.airmass", "<"); 1323 PXOPT_COPY_RADEC(config->args, where, "-ra_min", "rawExp.ra", ">="); 1324 PXOPT_COPY_RADEC(config->args, where, "-ra_max", "rawExp.ra", "<"); 1325 PXOPT_COPY_RADEC(config->args, where, "-decl_min", "rawExp.decl", ">="); 1326 PXOPT_COPY_RADEC(config->args, where, "-decl_max", "rawExp.decl", "<"); 1327 PXOPT_COPY_F32(config->args, where, "-exp_time_min", "rawExp.exp_time", ">="); 1328 PXOPT_COPY_F32(config->args, where, "-exp_time_max", "rawExp.exp_time", "<"); 1329 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_min", "rawExp.sat_pixel_frac", ">="); 1330 PXOPT_COPY_F32(config->args, where, "-sat_pixel_frac_max", "rawExp.sat_pixel_frac", "<"); 1331 PXOPT_COPY_F64(config->args, where, "-bg_min", "rawExp.bg", ">="); 1332 PXOPT_COPY_F64(config->args, where, "-bg_max", "rawExp.bg", "<"); 1333 PXOPT_COPY_F64(config->args, where, "-bg_stdev_min", "rawExp.bg_stdev", ">="); 1334 PXOPT_COPY_F64(config->args, where, "-bg_stdev_max", "rawExp.bg_stdev", "<"); 1335 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_min", "rawExp.bg_mean_stdev", ">="); 1336 PXOPT_COPY_F64(config->args, where, "-bg_mean_stdev_max", "rawExp.bg_mean_stdev", "<"); 1337 PXOPT_COPY_F64(config->args, where, "-alt_min", "rawExp.alt", ">="); 1338 PXOPT_COPY_F64(config->args, where, "-alt_max", "rawExp.alt", "<"); 1339 PXOPT_COPY_F64(config->args, where, "-az_min", "rawExp.az", ">="); 1340 PXOPT_COPY_F64(config->args, where, "-az_max", "rawExp.az", "<"); 1341 PXOPT_COPY_F64(config->args, where, "-ccd_temp_min", "rawExp.ccd_temp", ">="); 1342 PXOPT_COPY_F64(config->args, where, "-ccd_temp_max", "rawExp.ccd_temp", "<"); 1343 PXOPT_COPY_F64(config->args, where, "-posang_min", "rawExp.posang", ">="); 1344 PXOPT_COPY_F64(config->args, where, "-posang_max", "rawExp.posang", "<"); 1345 PXOPT_COPY_F32(config->args, where, "-sun_angle_min", "rawExp.sun_angle", ">="); 1346 PXOPT_COPY_F32(config->args, where, "-sun_angle_max", "rawExp.sun_angle", "<"); 1347 PXOPT_COPY_STR(config->args, where, "-object", "rawExp.object", "=="); 1348 PXOPT_COPY_STR(config->args, where, "-comment", "rawExp.comment", "LIKE"); 1349 PXOPT_COPY_STR(config->args, where, "-obs_mode", "rawExp.obs_mode", "LIKE"); 1350 1351 1352 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 1353 psStringPrepend(&whereClause,"\n AND "); 1354 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 1355 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 1356 1357 psString query = pxDataGet("regtool_updatebyquery.sql"); 1358 if (!query) { 1359 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1360 return(false); 1361 } 1362 psString limitString = NULL; 1363 if (limit) { 1364 limitString = psDBGenerateLimitSQL(limit); 1365 psStringPrepend(&limitString, "\n"); 1366 } 1367 // printf(query,set_state,whereClause,limitString); 1368 if (!p_psDBRunQueryF(config->dbh, query, set_state, whereClause, limitString ? limitString : "")) { 1369 psError(PXTOOLS_ERR_PROG, false, "database error"); 1370 psFree(limitString); 1371 psFree(query); 1372 psFree(whereClause); 1373 psFree(where); 1374 return(false); 1375 } 1376 1377 psFree(query); 1378 // Now up date the imfiles. 1379 query = pxDataGet("regtool_updatebyqueryimfile.sql"); 1380 if (!query) { 1381 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 1382 return(false); 1383 } 1384 if (!p_psDBRunQueryF(config->dbh, query, set_state,whereClause, limitString ? limitString : "")) { 1385 psError(PXTOOLS_ERR_PROG, false, "database error"); 1386 psFree(limitString); 1387 psFree(query); 1388 psFree(whereClause); 1389 psFree(where); 1390 return(false); 1391 } 1392 1393 psFree(limitString); 1394 psFree(query); 1395 psFree(whereClause); 1396 psFree(where); 1397 1398 return true; 1399 } 1400 1401 1106 1402 1107 1403 static bool cleardupexpMode(pxConfig *config)
Note:
See TracChangeset
for help on using the changeset viewer.
