Changeset 26981 for trunk/ippTools/src/dqstatstool.c
- Timestamp:
- Feb 17, 2010, 4:40:03 PM (16 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/dqstatstool.c (modified) (26 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/dqstatstool.c
r26378 r26981 71 71 PXOPT_LOOKUP_BOOL(force, config->args, "-force", false); 72 72 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, 0); 73 73 74 74 // properties of the raw exposures 75 75 psMetadata *where = psMetadataAlloc(); … … 79 79 psString query = pxDataGet("dqstatstool_definebyquery.sql"); 80 80 if (!query) { 81 psError(PXTOOLS_ERR_ DATA, false, "failed to retreive SQL statement");81 psError(PXTOOLS_ERR_SYS, false, "failed to retreive SQL statement"); 82 82 psFree(where); 83 83 return(false); … … 96 96 psStringAppend(&query, " OR invalid = 0"); 97 97 } 98 98 99 99 psFree(where); 100 100 if (limit) { … … 103 103 psFree(limitString); 104 104 } 105 105 106 106 if (!p_psDBRunQuery(config->dbh, query)) { 107 107 psError(PS_ERR_UNKNOWN, false, "database error"); … … 140 140 return false; 141 141 } 142 142 143 143 // Create the run entry and grab the dqstats_id 144 144 dqstatsRunRow *run = dqstatsRunRowAlloc( 145 0, // ID146 "new", // state147 registered,148 set_label,149 0 // fault150 );151 145 0, // ID 146 "new", // state 147 registered, 148 set_label, 149 0 // fault 150 ); 151 152 152 if (!dqstatsRunInsertObject(config->dbh, run)) { 153 153 if (!psDBRollback(config->dbh)) { … … 182 182 183 183 if (!dqstatsContentInsert(config->dbh, 184 dqstats_id,185 exp_id,186 chip_id,187 cam_id,188 warp_id,189 0 // do not create automatically invalid contents190 )) {184 dqstats_id, 185 exp_id, 186 chip_id, 187 cam_id, 188 warp_id, 189 0 // do not create automatically invalid contents 190 )) { 191 191 psError(PS_ERR_UNKNOWN, false, "database error"); 192 192 psFree(output); 193 193 if (!psDBRollback(config->dbh)) { 194 psError(PS_ERR_UNKNOWN, false, "database error");194 psError(PS_ERR_UNKNOWN, false, "database error"); 195 195 } 196 196 return(false); … … 210 210 static bool pendingbundleMode(pxConfig *config) { 211 211 PS_ASSERT_PTR_NON_NULL(config,false); 212 212 213 213 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 214 214 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 215 216 215 216 217 217 psMetadata *where = psMetadataAlloc(); 218 // pxdqstatsGetSearchArgs (config, where); 218 // pxdqstatsGetSearchArgs (config, where); 219 219 PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstatsRun.dqstats_id", "=="); 220 220 PXOPT_COPY_STR(config->args, where, "-label", "dqstatsRun.label", "=="); 221 221 222 222 psString query = pxDataGet("dqstatstool_get_run.sql"); // query 223 223 if (!query) { 224 psError(PXTOOLS_ERR_ DATA, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");224 psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)"); 225 225 return(false); 226 226 } … … 239 239 psFree(limitString); 240 240 } 241 241 242 242 if (!p_psDBRunQuery(config->dbh, query)) { 243 243 psError(PS_ERR_UNKNOWN, false, "database error"); … … 246 246 } 247 247 psFree(query); // where whereClause 248 248 249 249 psArray *output = p_psDBFetchResult(config->dbh); // where whereClause output 250 250 if (!output) { … … 284 284 psString runQuery = pxDataGet("dqstatstool_get_run.sql"); 285 285 if (!runQuery) { 286 psError(PXTOOLS_ERR_ DATA, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)");286 psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_run.sql)"); 287 287 return(false); 288 288 } … … 292 292 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); // Save for content query 293 293 psStringAppend(&runQuery, " AND %s", whereClause); 294 psFree(where); 294 psFree(where); 295 295 296 296 if (!p_psDBRunQuery(config->dbh, runQuery)) { … … 301 301 } 302 302 psFree(runQuery); 303 303 304 304 psArray *output = p_psDBFetchResult(config->dbh); 305 305 if (!output) { … … 333 333 return(false); 334 334 } 335 335 336 336 psMetadataIterator *iter = psMetadataIteratorAlloc(columns, PS_LIST_HEAD,NULL); 337 337 … … 348 348 psStringAppend(&columnlist, ", "); 349 349 } 350 350 351 351 psStringAppend(&columnlist, "%s.%s", 352 psMetadataLookupStr(&status,coldef,"TABLE"),353 psMetadataLookupStr(&status,coldef,"ENTRY"));352 psMetadataLookupStr(&status,coldef,"TABLE"), 353 psMetadataLookupStr(&status,coldef,"ENTRY")); 354 354 355 355 psMetadataAddStr(colNames,PS_LIST_TAIL, 356 psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",357 psMetadataLookupStr(&status,coldef,"COLNAME"));356 psMetadataLookupStr(&status,coldef,"ENTRY"),0,"", 357 psMetadataLookupStr(&status,coldef,"COLNAME")); 358 358 psMetadataAddStr(colTypes,PS_LIST_TAIL, 359 psMetadataLookupStr(&status,coldef,"ENTRY"),0,"",360 psMetadataLookupStr(&status,coldef,"DATATYPE"));359 psMetadataLookupStr(&status,coldef,"ENTRY"),0,"", 360 psMetadataLookupStr(&status,coldef,"DATATYPE")); 361 361 } 362 362 psFree(iter); 363 363 364 364 if (!columnlist) { 365 365 psError(PS_ERR_UNKNOWN, false, "Failed to find a columnlist"); … … 369 369 return(false); 370 370 } 371 371 372 372 // Find the contents that comprise this run 373 373 psString contentQuery = pxDataGet("dqstatstool_get_contents.sql"); 374 374 if (!contentQuery) { 375 psError(PXTOOLS_ERR_ DATA, false, "Failed to retrieve sql statement (dqstatstool_get_contents.sql)");375 psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement (dqstatstool_get_contents.sql)"); 376 376 psFree(whereClause); 377 377 psFree(colNames); … … 414 414 psString query = pxDataGet("dqstatstool_createbundle.sql"); 415 415 if (!query) { 416 psError(PXTOOLS_ERR_ DATA, false, "Failed to retrieve sql statement");416 psError(PXTOOLS_ERR_SYS, false, "Failed to retrieve sql statement"); 417 417 psFree(colNames); 418 418 psFree(colTypes); … … 448 448 psMetadataAddS64(where,PS_LIST_TAIL, "warpRun.warp_id", 0, "==", psMetadataLookupS64(&status,row,"warp_id")); 449 449 } 450 450 451 451 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 452 psStringAppend(&MYquery, " WHERE %s", whereClause); 452 psStringAppend(&MYquery, " WHERE %s", whereClause); 453 453 psFree(whereClause); 454 454 psFree(where); … … 466 466 } 467 467 psFree(MYquery); 468 468 469 469 psArray *statsoutput = p_psDBFetchResult(config->dbh); 470 470 if (!statsoutput) { … … 501 501 psString colType = psMetadataLookupStr(&status,colTypes,rowItem->name); 502 502 if (!colType) { 503 psError(PS_ERR_UNKNOWN,false, "Could not find type for %s",rowItem->name);504 return(false);503 psError(PS_ERR_UNKNOWN,false, "Could not find type for %s",rowItem->name); 504 return(false); 505 505 } 506 506 psString colName = psMetadataLookupStr(&status,colNames,rowItem->name); 507 507 if (!colName) { 508 psError(PS_ERR_UNKNOWN,false, "Could not find name for %s",rowItem->name);509 return(false);508 psError(PS_ERR_UNKNOWN,false, "Could not find name for %s",rowItem->name); 509 return(false); 510 510 } 511 511 512 512 if (!strcmp(colType,"PS_DATA_BOOL")) { 513 success = psMetadataAddBool(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.B);513 success = psMetadataAddBool(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.B); 514 514 } 515 515 else if (!strcmp(colType,"PS_DATA_S8")) { 516 success = psMetadataAddS8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S8);516 success = psMetadataAddS8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S8); 517 517 } 518 518 else if (!strcmp(colType,"PS_DATA_S16")) { 519 success = psMetadataAddS16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S16);519 success = psMetadataAddS16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S16); 520 520 } 521 521 else if (!strcmp(colType,"PS_DATA_S32")) { 522 success = psMetadataAddS32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S32);522 success = psMetadataAddS32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S32); 523 523 } 524 524 else if (!strcmp(colType,"PS_DATA_S64")) { 525 success = psMetadataAddS64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S64);525 success = psMetadataAddS64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.S64); 526 526 } 527 527 else if (!strcmp(colType,"PS_DATA_U8")) { 528 success = psMetadataAddU8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U8);528 success = psMetadataAddU8(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U8); 529 529 } 530 530 else if (!strcmp(colType,"PS_DATA_U16")) { 531 success = psMetadataAddU16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U16);531 success = psMetadataAddU16(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U16); 532 532 } 533 533 else if (!strcmp(colType,"PS_DATA_U32")) { 534 success = psMetadataAddU32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U32);534 success = psMetadataAddU32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U32); 535 535 } 536 536 else if (!strcmp(colType,"PS_DATA_U64")) { 537 success = psMetadataAddU64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U64);537 success = psMetadataAddU64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.U64); 538 538 } 539 539 else if (!strcmp(colType,"PS_DATA_F32")) { 540 success = psMetadataAddF32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F32);540 success = psMetadataAddF32(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F32); 541 541 } 542 542 else if (!strcmp(colType,"PS_DATA_F64")) { 543 success = psMetadataAddF64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F64);543 success = psMetadataAddF64(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.F64); 544 544 } 545 545 else if (!strcmp(colType,"PS_DATA_STRING")) { 546 success = psMetadataAddStr(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.str);547 } 548 546 success = psMetadataAddStr(tableRow,PS_LIST_TAIL,colName,0,"",rowItem->data.str); 547 } 548 549 549 if (!success) { 550 psError(PS_ERR_UNKNOWN,false, "Error constructing fits table row.");551 psFree(colNames);552 psFree(colTypes);553 psFree(contents);554 psFree(query);555 psFree(outTable);556 psFree(statsoutput);557 psFree(statIter);558 psFree(tableRow);559 psFree(colType);560 psFree(colName);561 return(false);550 psError(PS_ERR_UNKNOWN,false, "Error constructing fits table row."); 551 psFree(colNames); 552 psFree(colTypes); 553 psFree(contents); 554 psFree(query); 555 psFree(outTable); 556 psFree(statsoutput); 557 psFree(statIter); 558 psFree(tableRow); 559 psFree(colType); 560 psFree(colName); 561 return(false); 562 562 } 563 563 } … … 571 571 psFree(query); 572 572 // Define the fits table here. 573 573 574 574 psFits *Table = psFitsOpen(bundleUri,"w"); 575 575 if (!Table) { … … 577 577 psFree(outTable); 578 578 return(false); 579 } 579 } 580 580 581 581 psMetadata *header = psMetadataAlloc(); 582 582 psMetadataAddS64(header, PS_LIST_TAIL, "DQSTATS_ID", 0, "ID number of DQSTATS run", dqstats_id); 583 583 584 584 if (!psFitsWriteTable(Table,header,outTable,"DQSTATS")) { 585 585 psError(PS_ERR_UNKNOWN, false, "Unable to write table to fits file."); … … 594 594 // Tear down, cleanup. 595 595 psFitsClose(Table); 596 return(true); 596 return(true); 597 597 } 598 598 599 599 600 600 static bool updaterunMode(pxConfig *config) { … … 603 603 PXOPT_LOOKUP_STR(state, config->args, "-set_state", "state", "=="); 604 604 PXOPT_LOOKUP_S16(fault, config->args, "-fault", "fault", "=="); 605 605 606 606 if (state && ! pxIsValidState(state)) { 607 psError(PXTOOLS_ERR_ DATA, false, "pxIsValidState failed");608 return(false); 609 } 610 607 psError(PXTOOLS_ERR_CONFIG, false, "pxIsValidState failed"); 608 return(false); 609 } 610 611 611 psMetadata *where = psMetadataAlloc(); 612 612 PXOPT_COPY_S64(config->args, where, "-dqstats_id", "dqstats_id", "=="); 613 613 PXOPT_COPY_S64(config->args, where, "-state", "state", "=="); 614 614 615 615 if (!psListLength(where->list)) { 616 616 psFree(where); 617 psError(PXTOOLS_ERR_ DATA, false, "search parameters are required");618 return(false); 619 } 620 617 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 618 return(false); 619 } 620 621 621 psString query = psStringCopy("UPDATE dqstatsRun "); 622 622 psStringAppend(&query," SET state = '%s' ", state); … … 626 626 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 627 627 psStringAppend(&query," WHERE %s ",whereClause); 628 628 629 629 if (!p_psDBRunQuery(config->dbh, query)) { 630 630 psError(PS_ERR_UNKNOWN, false, "database error"); 631 631 return(false); 632 632 } 633 633 634 634 psFree(query); 635 635 psFree(where); 636 636 psFree(whereClause); 637 637 638 638 return(true); 639 639 } … … 648 648 if (!psListLength(where->list)) { 649 649 psFree(where); 650 psError(PXTOOLS_ERR_ DATA, false, "search parameters are required");650 psError(PXTOOLS_ERR_CONFIG, false, "search parameters are required"); 651 651 return(false); 652 652 } … … 667 667 return(true); 668 668 } 669 670 671 672 673 674 675 669 670 671 672 673 674 675
Note:
See TracChangeset
for help on using the changeset viewer.
