Changeset 15504 for trunk/ippTools/src/magictool.c
- Timestamp:
- Nov 7, 2007, 6:23:18 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/ippTools/src/magictool.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/src/magictool.c
r15501 r15504 431 431 { 432 432 PS_ASSERT_PTR_NON_NULL(config, false); 433 434 bool status = false; 435 psU64 limit = psMetadataLookupU64(&status, config->args, "-limit"); 436 if (!status) { 437 psError(PXTOOLS_ERR_PROG, false, "failed to lookup value for -limit"); 438 return false; 439 } 440 441 // find all rawImfiles matching the default query 442 psString query = pxDataGet("magictool_inputskyfile.sql"); 443 if (!query) { 444 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 445 return false; 446 } 447 448 if (config->where) { 449 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "magicInputSkyfile"); 450 psStringAppend(&query, " AND %s", whereClause); 451 psFree(whereClause); 452 } 453 454 // treat limit == 0 as "no limit" 455 if (limit) { 456 psString limitString = psDBGenerateLimitSQL(limit); 457 psStringAppend(&query, " %s", limitString); 458 psFree(limitString); 459 } 460 461 if (!p_psDBRunQuery(config->dbh, query)) { 462 psError(PS_ERR_UNKNOWN, false, "database error"); 463 psFree(query); 464 return false; 465 } 466 psFree(query); 467 468 psArray *output = p_psDBFetchResult(config->dbh); 469 if (!output) { 470 psErrorCode err = psErrorCodeLast(); 471 switch (err) { 472 case PS_ERR_DB_CLIENT: 473 psError(PXTOOLS_ERR_SYS, false, "database error"); 474 case PS_ERR_DB_SERVER: 475 psError(PXTOOLS_ERR_PROG, false, "database error"); 476 default: 477 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 478 } 479 480 return false; 481 } 482 if (!psArrayLength(output)) { 483 psTrace("warptool", PS_LOG_INFO, "no rows found"); 484 psFree(output); 485 return true; 486 } 487 488 bool simple = false; 489 { 490 bool status = false; 491 simple = psMetadataLookupBool(&status, config->args, "-simple"); 492 if (!status) { 493 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple"); 494 return false; 495 } 496 } 497 498 if (psArrayLength(output)) { 499 if (!convertIdToStr(output)) { 500 psError(PS_ERR_UNKNOWN, false, "failed to convert id fields into a strings"); 501 psFree(output); 502 return false; 503 } 504 505 // negative simple so the default is true 506 if (!ippdbPrintMetadatas(stdout, output, "magicInputSkyfile", !simple)) { 507 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 508 psFree(output); 509 return false; 510 } 511 } 512 513 psFree(output); 514 433 515 return true; 434 516 }
Note:
See TracChangeset
for help on using the changeset viewer.
