Changeset 31375 for trunk/ippTools/src/addtool.c
- Timestamp:
- Apr 25, 2011, 2:59:55 PM (15 years ago)
- Location:
- trunk/ippTools/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src
- Property svn:mergeinfo changed
/branches/haf_branches/haf_add2011/ippTools/src (added) merged: 31280
- Property svn:mergeinfo changed
-
trunk/ippTools/src/addtool.c
r30912 r31375 119 119 pxcamGetSearchArgs (config, where); 120 120 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 121 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackRun.stack_id", "=="); 122 PXOPT_COPY_S64(config->args, where, "-sky_id", "staticskyRun.sky_id", "=="); 123 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 124 if (strcmp(stage, "cam")== 0) { 125 121 126 pxAddLabelSearchArgs (config, where, "-label", "camRun.label", "=="); // define using camRun label 122 127 pxAddLabelSearchArgs (config, where, "-data_group","camRun.data_group", "=="); // define using camRun label 123 128 PXOPT_COPY_STR(config->args, where, "-reduction", "camRun.reduction", "=="); 124 125 129 } 130 if (strcmp(stage, "stack")== 0) { 131 132 pxAddLabelSearchArgs (config, where, "-label", "stackRun.label", "=="); // define using camRun label 133 pxAddLabelSearchArgs (config, where, "-data_group","stackRun.data_group", "=="); // define using camRun label 134 PXOPT_COPY_STR(config->args, where, "-reduction", "stackRun.reduction", "=="); 135 } 136 if (strcmp(stage, "staticsky")== 0) { 137 138 pxAddLabelSearchArgs (config, where, "-label", "staticskyRun.label", "=="); // define using camRun label 139 pxAddLabelSearchArgs (config, where, "-data_group","staticskyRun.data_group", "=="); // define using camRun label 140 PXOPT_COPY_STR(config->args, where, "-reduction", "staticskyyRun.reduction", "=="); 141 } 142 126 143 if (!psListLength(where->list)) { 127 144 psFree(where); … … 129 146 return false; 130 147 } 131 148 // PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 132 149 PXOPT_LOOKUP_STR(workdir, config->args, "-set_workdir", false, false); 133 150 PXOPT_LOOKUP_STR(dvodb, config->args, "-set_dvodb", false, false); … … 148 165 psString dvodb_string = NULL; 149 166 psString bare_query = NULL; 167 168 if (strcmp(stage,"cam") == 0 ) { 150 169 if (dvodb) { 151 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_cam_id_dvo.sql\n ", dvodb);170 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_cam_id_dvo.sql\n%s\n", dvodb,stage); 152 171 // find the cam_id of all the exposures that we want to queue up. 153 172 bare_query = pxDataGet("addtool_find_cam_id_dvo.sql"); … … 155 174 psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb); 156 175 } else { 157 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_cam_id.sql\n");176 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_cam_id.sql\n%s\n",stage); 158 177 // find the cam_id of all the exposures that we want to queue up. 159 178 bare_query = pxDataGet("addtool_find_cam_id.sql"); … … 161 180 psStringAppend(&dvodb_string, "(camRun.dvodb IS NOT NULL AND previous_dvodb = camRun.dvodb)"); 162 181 } 182 } 183 if (strcmp(stage,"stack") == 0) { 184 if (dvodb ) { 185 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_stack_id_dvo.sql\n%s\n", dvodb,stage); 186 // find the cam_id of all the exposures that we want to queue up. 187 bare_query = pxDataGet("addtool_find_stack_id_dvo.sql"); 188 // user supplied dvodb 189 psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb); 190 } else { 191 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_stack_id.sql\n%s\n",stage); 192 // find the cam_id of all the exposures that we want to queue up. 193 bare_query = pxDataGet("addtool_find_stack_id.sql"); 194 // inherit dvodb from camRun, avoid matching NULL 195 psStringAppend(&dvodb_string, "(stackRun.dvodb IS NOT NULL AND previous_dvodb = stackRun.dvodb)"); 196 } 197 } 198 if (strcmp(stage,"staticsky") == 0) { 199 if (dvodb ) { 200 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument found (%s) using addtool_find_sky_id_dvo.sql\n%s\n", dvodb,stage); 201 // find the cam_id of all the exposures that we want to queue up. 202 bare_query = pxDataGet("addtool_find_sky_id_dvo.sql"); 203 // user supplied dvodb 204 psStringAppend(&dvodb_string, "addRun.dvodb = '%s'", dvodb); 205 } else { 206 psTrace("addtool.c", PS_LOG_INFO, "dvodb argument not found using addtool_find_sky_id.sql\n%s\n",stage); 207 // find the cam_id of all the exposures that we want to queue up. 208 bare_query = pxDataGet("addtool_find_sky_id.sql"); 209 // inherit dvodb from camRun, avoid matching NULL 210 psStringAppend(&dvodb_string, "(staticskyRun.dvodb IS NOT NULL AND previous_dvodb = staticskyRun.dvodb)"); 211 } 212 } 213 214 215 163 216 if (!bare_query) { 164 217 psError(PXTOOLS_ERR_SYS, false, "failed to retrieve SQL statement"); … … 184 237 185 238 if (destreaked) { 239 if (strcmp(stage,"cam") == 0) { 186 240 psStringAppend(&query, " AND (camRun.magicked > 0)"); 187 } 241 } 242 if (strcmp(stage,"stack") == 0) { 243 psStringAppend(&query, " AND (stackRun.magicked > 0)"); 244 } 245 // staticSky has no magicked column. 246 } 247 248 psTrace("addtool.c", PS_LOG_INFO,"query: \n\n%s\n\n",query); 188 249 189 250 if (!p_psDBRunQuery(config->dbh, query)) { 190 psError(PS_ERR_UNKNOWN, false, "database error");251 psError(PS_ERR_UNKNOWN, false, "database error, \n%s\n", query); 191 252 psFree(query); 192 253 return false; … … 217 278 218 279 // loop over our list of camRun rows to check the supplied and selected dvodb and workdir values: 280 if (strcmp(stage,"cam") == 0) { 219 281 for (long i = 0; i < psArrayLength(output); i++) { 220 282 psMetadata *md = output->data[i]; 221 283 222 camRunRow *row = camRunObjectFromMetadata(md); 284 camRunRow *row = camRunObjectFromMetadata(md); 285 223 286 if (!row) { 224 287 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); … … 240 303 psFree(row); 241 304 } 305 } 306 if (strcmp(stage,"stack") == 0) { 307 for (long i = 0; i < psArrayLength(output); i++) { 308 psMetadata *md = output->data[i]; 309 310 stackRunRow *row = stackRunObjectFromMetadata(md); 311 312 if (!row) { 313 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 314 psFree(output); 315 return false; 316 } 317 318 if (!dvodb && !row->dvodb) { 319 psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined dvodb: label: %s, stack_id %" PRId64, row->label, row->stack_id); 320 psFree(output); 321 return false; 322 } 323 if (!workdir && !row->workdir) { 324 psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined workdir: label: %s, stack_id %" PRId64, row->label, row->stack_id); 325 psFree(output); 326 return false; 327 } 328 329 psFree(row); 330 } 331 } 332 if (strcmp(stage,"staticsky") == 0) { 333 for (long i = 0; i < psArrayLength(output); i++) { 334 psMetadata *md = output->data[i]; 335 336 staticskyRunRow *row = staticskyRunObjectFromMetadata(md); 337 338 if (!row) { 339 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 340 psFree(output); 341 return false; 342 } 343 344 if (!dvodb) { //there's no staticsky.dvodb 345 psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined dvodb: label: %s, sky_id %" PRId64, row->label, row->sky_id); 346 psFree(output); 347 return false; 348 } 349 if (!workdir && !row->workdir) { 350 psError(PS_ERR_UNKNOWN, false, "cannot queue addstar run without a defined workdir: label: %s, sky_id %" PRId64, row->label, row->sky_id); 351 psFree(output); 352 return false; 353 } 354 355 psFree(row); 356 } 357 } 242 358 243 359 // start a transaction so we don't end up with an exp without any associted … … 255 371 256 372 // loop over our list of camRun rows 373 if (strcmp(stage,"cam") == 0) { 257 374 for (long i = 0; i < psArrayLength(output); i++) { 258 375 psMetadata *md = output->data[i]; 259 260 camRunRow *row = camRunObjectFromMetadata(md); 376 psS64 stage_id =0; 377 378 camRunRow *row = camRunObjectFromMetadata(md); 379 stage_id = row->cam_id; 380 261 381 if (!row) { 262 382 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); … … 267 387 // queue the exp 268 388 if (!pxaddQueueByCamID(config, 269 row->cam_id, 389 stage, 390 stage_id, 270 391 workdir ? workdir : row->workdir, 271 392 reduction ? reduction : row->reduction, … … 283 404 } 284 405 psError(PS_ERR_UNKNOWN, false, 285 "failed to trying to queue chip_id: %" PRId64, row->cam_id);406 "failed to trying to queue stage %s %" PRId64,stage, stage_id); 286 407 psFree(row); 287 408 psFree(output); … … 290 411 psFree(row); 291 412 } 413 } 414 if (strcmp(stage,"stack") == 0) { 415 for (long i = 0; i < psArrayLength(output); i++) { 416 psMetadata *md = output->data[i]; 417 psS64 stage_id =0; 418 419 stackRunRow *row = stackRunObjectFromMetadata(md); 420 stage_id = row->stack_id; 421 422 if (!row) { 423 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 424 psFree(output); 425 return false; 426 } 427 428 // queue the exp 429 if (!pxaddQueueByCamID(config, 430 stage, 431 stage_id, 432 workdir ? workdir : row->workdir, 433 reduction ? reduction : row->reduction, 434 label ? label : row->label, 435 data_group ? data_group : (row->data_group ? row->data_group : (label ? label : row->label)), 436 dvodb ? dvodb : row->dvodb, 437 note ? note : NULL, 438 image_only, 439 minidvodb, 440 minidvodb_group, 441 minidvodb_name 442 )) { 443 if (!psDBRollback(config->dbh)) { 444 psError(PS_ERR_UNKNOWN, false, "database error sfg"); 445 } 446 psError(PS_ERR_UNKNOWN, false, 447 "failed to trying to queue stage %s %" PRId64,stage, stage_id); 448 psFree(row); 449 psFree(output); 450 return false; 451 } 452 psFree(row); 453 } 454 } 455 if (strcmp(stage,"staticsky") == 0) { 456 for (long i = 0; i < psArrayLength(output); i++) { 457 psMetadata *md = output->data[i]; 458 psS64 stage_id =0; 459 460 staticskyRunRow *row = staticskyRunObjectFromMetadata(md); 461 stage_id = row->sky_id; 462 463 if (!row) { 464 psError(PS_ERR_UNKNOWN, false, "failed to convert metadata into camRun"); 465 psFree(output); 466 return false; 467 } 468 469 // queue the exp 470 if (!pxaddQueueByCamID(config, 471 stage, 472 stage_id, 473 workdir ? workdir : row->workdir, 474 reduction ? reduction : row->reduction, 475 label ? label : row->label, 476 data_group ? data_group : (row->data_group ? row->data_group : (label ? label : row->label)), 477 dvodb ? dvodb : NULL, 478 note ? note : NULL, 479 image_only, 480 minidvodb, 481 minidvodb_group, 482 minidvodb_name 483 )) { 484 if (!psDBRollback(config->dbh)) { 485 psError(PS_ERR_UNKNOWN, false, "database error sfg"); 486 } 487 psError(PS_ERR_UNKNOWN, false, 488 "failed to trying to queue stage %s %" PRId64,stage, stage_id); 489 psFree(row); 490 psFree(output); 491 return false; 492 } 493 psFree(row); 494 } 495 } 496 292 497 psFree(output); 293 498 … … 308 513 PXOPT_COPY_S64(config->args, where, "-add_id", "addRun.add_id", "=="); 309 514 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 515 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackRun.stack_id", "=="); 516 PXOPT_COPY_S64(config->args, where, "-sky_id", "staticskyRun.sky_id", "=="); 517 518 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 310 519 pxcamGetSearchArgs (config, where); // most search arguments based on camera 311 520 PXOPT_COPY_STR(config->args, where, "-label", "addRun.label", "=="); … … 319 528 return false; 320 529 } 321 322 psString query = psStringCopy("UPDATE addRun JOIN camRun USING(cam_id) JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)"); 530 psString query = NULL; 531 if (strcmp(stage, "cam")==0) { 532 query = psStringCopy("UPDATE addRun JOIN camRun on cam_id = stage_id JOIN chipRun USING(chip_id) JOIN rawExp USING(exp_id)"); 533 } 534 if (strcmp(stage, "stack")==0) { 535 query = psStringCopy("UPDATE addRun JOIN stackRun on stack_id = stage_id"); 536 } 537 if (strcmp(stage, "staticsky")==0) { 538 query = psStringCopy("UPDATE addRun JOIN staticskyRun on sky_id = stage_id"); 539 } 323 540 324 541 // pxUpdateRun gets parameters from config->args and runs the update query … … 340 557 PXOPT_COPY_S64(config->args, where, "-add_id", "addRun.add_id", "=="); 341 558 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 559 PXOPT_COPY_S64(config->args, where, "-stack_id", "stackRun.stack_id", "=="); 560 PXOPT_COPY_S64(config->args, where, "-sky_id", "staticskyRun.sky_id", "=="); 561 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 342 562 pxcamGetSearchArgs (config, where); 343 563 pxAddLabelSearchArgs (config, where, "-label", "addRun.label", "=="); … … 345 565 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 346 566 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 347 348 psString query = pxDataGet("addtool_find_pendingexp.sql"); 567 568 psString query = NULL; 569 570 if (strcmp(stage, "cam")==0) { 571 query = pxDataGet("addtool_find_pendingexp_cam.sql"); 572 } 573 if (strcmp(stage, "stack")==0) { 574 query = pxDataGet("addtool_find_pendingexp_stack.sql"); 575 } 576 if (strcmp(stage, "staticsky")==0) { 577 query = pxDataGet("addtool_find_pendingexp_staticsky.sql"); 578 } 579 580 349 581 if (!query) { 350 582 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 359 591 } 360 592 psFree(where); 593 if (strcmp(stage, "stack") == 0) { 594 //this group by is needed to join against all the warps (to get camera) 595 psStringAppend(&query, " GROUP BY %s", "stack_id"); 596 } 597 if (strcmp(stage, "staticsky") == 0) { 598 //this group by is needed to join against all the warps (to get camera) 599 psStringAppend(&query, " GROUP BY %s", "sky_id"); 600 } 361 601 362 602 // treat limit == 0 as "no limit" … … 522 762 psMetadata *where = psMetadataAlloc(); 523 763 PXOPT_COPY_S64(config->args, where, "-add_id", "addRun.add_id", "=="); 524 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 764 PXOPT_COPY_S64(config->args, where, "-stage_id", "addRun.stage_id", "=="); 765 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 525 766 pxcamGetSearchArgs (config, where); 526 767 pxAddLabelSearchArgs (config, where, "-label", "addRun.label", "=="); … … 537 778 return false; 538 779 } 539 540 psString query = pxDataGet("addtool_find_processedexp.sql"); 780 psString query = NULL; 781 782 if (strcmp (stage,"cam") == 0) { 783 query = pxDataGet("addtool_find_processedexp_cam.sql"); 784 } 785 if (strcmp (stage,"stack") == 0) { 786 query = pxDataGet("addtool_find_processedexp_stack.sql"); 787 } 788 if (strcmp (stage,"staticsky") == 0) { 789 query = pxDataGet("addtool_find_processedexp_staticsky.sql"); 790 } 791 541 792 if (!query) { 542 793 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); … … 567 818 psStringAppend(&query, " %s", " WHERE addProcessedExp.fault = 0"); 568 819 } 820 psStringAppend(&query, " AND stage = '%s'", stage); 821 569 822 psFree(where); 570 823 … … 616 869 psMetadata *where = psMetadataAlloc(); 617 870 PXOPT_COPY_S64(config->args, where, "-add_id", "addRun.add_id", "=="); 618 PXOPT_COPY_S64(config->args, where, "-cam_id", "camRun.cam_id", "=="); 871 PXOPT_COPY_S64(config->args, where, "-stage_id", "addRun.stage_id", "=="); 872 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 619 873 pxcamGetSearchArgs (config, where); 620 874 pxAddLabelSearchArgs (config, where, "-label", "addRun.label", "=="); … … 634 888 635 889 { 636 psString query = pxDataGet("addtool_revertprocessedexp.sql"); 637 if (!query) { 890 psString query = NULL; 891 if (strcmp(stage, "cam") == 0) { 892 query = pxDataGet("addtool_revertprocessedexp_cam.sql"); 893 } 894 895 if (strcmp(stage, "stack") == 0) { 896 query = pxDataGet("addtool_revertprocessedexp_stack.sql"); 897 } 898 if (strcmp(stage, "staticsky") == 0) { 899 query = pxDataGet("addtool_revertprocessedexp_staticsky.sql"); 900 } 901 if (!query) { 638 902 // rollback 639 if (!psDBRollback(config->dbh)) {903 if (!psDBRollback(config->dbh)) { 640 904 psError(PS_ERR_UNKNOWN, false, "database error"); 641 905 } … … 681 945 psMetadata *where = psMetadataAlloc(); 682 946 PXOPT_COPY_S64(config->args, where, "-add_id", "add_id", "=="); 683 PXOPT_COPY_S64(config->args, where, "-cam_id", "cam_id", "=="); 947 PXOPT_COPY_S64(config->args, where, "-stage_id", "stage_id", "=="); 948 PXOPT_LOOKUP_STR(stage, config->args, "-stage", false, false); 684 949 PXOPT_LOOKUP_S16(fault, config->args, "-fault", true, false); 685 950
Note:
See TracChangeset
for help on using the changeset viewer.
