Changeset 14243
- Timestamp:
- Jul 16, 2007, 4:11:52 PM (19 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 1 added
- 4 edited
-
share/Makefile.am (modified) (1 diff)
-
share/dettool_revertnormalizedimfile.sql (added)
-
src/dettool.c (modified) (4 diffs)
-
src/dettool.h (modified) (1 diff)
-
src/dettoolConfig.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r14242 r14243 14 14 detselect_select.sql \ 15 15 dettool_find_completed_runs.sql \ 16 dettool_revertnormalizedimfile.sql \ 16 17 dettool_normalizedstat.sql 17 18 dettool_raw.sql \ -
trunk/ippTools/src/dettool.c
r14242 r14243 64 64 static bool tonormalizeMode(pxConfig *config); 65 65 static bool addnormalizedimfileMode(pxConfig *config); 66 static bool normalizedimfileMode(pxConfig *config); 67 static bool revertnormalizedimfileMode(pxConfig *config); 68 // normalizedexp 66 69 static bool tonormalizedexpMode(pxConfig *config); 67 70 static bool addnormalizedexpMode(pxConfig *config); 68 71 static bool normalizedexpMode(pxConfig *config); 72 73 // residimfile 69 74 static bool toresidimfileMode(pxConfig *config); 70 75 static bool addresidimfileMode(pxConfig *config); 71 static bool normalizedimfileMode(pxConfig *config);72 76 static bool toresidexpMode(pxConfig *config); 73 77 static bool residimfileMode(pxConfig *config); … … 147 151 MODECASE(DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileMode); 148 152 MODECASE(DETTOOL_MODE_NORMALIZEDIMFILE, normalizedimfileMode); 153 MODECASE(DETTOOL_MODE_REVERTNORMALIZEDIMFILE, revertnormalizedimfileMode); 154 // normalizedexp 149 155 MODECASE(DETTOOL_MODE_TONORMALIZEDEXP, tonormalizedexpMode); 150 156 MODECASE(DETTOOL_MODE_ADDNORMALIZEDEXP, addnormalizedexpMode); … … 3977 3983 } 3978 3984 3985 3986 static bool normalizedimfileMode(pxConfig *config) 3987 { 3988 PS_ASSERT_PTR_NON_NULL(config, false); 3989 3990 bool status = false; 3991 psU64 limit = psMetadataLookupU64(&status, config->args, "-limit"); 3992 if (!status) { 3993 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit"); 3994 return false; 3995 } 3996 3997 bool faulted = psMetadataLookupU64(&status, config->args, "-faulted"); 3998 if (!status) { 3999 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted"); 4000 return false; 4001 } 4002 4003 psString query = psStringCopy( 4004 "SELECT" 4005 " detNormalizedImfile.*" 4006 " FROM detNormalizedImfile" 4007 " JOIN detRun" 4008 " USING(det_id, iteration)" 4009 " WHERE" 4010 " detRun.state = 'run'" 4011 " AND detRun.mode = 'master'" 4012 ); 4013 4014 if (config->where) { 4015 bool status; 4016 int iteration = psMetadataLookupS32 (&status, config->where, "iteration"); 4017 if (status) { 4018 psMetadataRemoveKey (config->where, "iteration"); 4019 psMetadataAddS32 (config->where, PS_LIST_TAIL, "iteration", 0, "==", iteration); 4020 } 4021 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detNormalizedImfile"); 4022 psStringAppend(&query, " AND %s", whereClause); 4023 psFree(whereClause); 4024 } 4025 4026 if (faulted) { 4027 // list only faulted rows 4028 psStringAppend(&query, " %s", "AND detNormalizedImfile.fault != 0"); 4029 } else { 4030 // don't list faulted rows 4031 psStringAppend(&query, " %s", "AND detNormalizedImfile.fault = 0"); 4032 } 4033 4034 // treat limit == 0 as "no limit" 4035 if (limit) { 4036 psString limitString = psDBGenerateLimitSQL(limit); 4037 psStringAppend(&query, " %s", limitString); 4038 psFree(limitString); 4039 } 4040 4041 if (!p_psDBRunQuery(config->dbh, query)) { 4042 psError(PS_ERR_UNKNOWN, false, "database error"); 4043 psFree(query); 4044 return false; 4045 } 4046 psFree(query); 4047 4048 psArray *output = p_psDBFetchResult(config->dbh); 4049 if (!output) { 4050 psError(PS_ERR_UNKNOWN, false, "database error"); 4051 return false; 4052 } 4053 if (!psArrayLength(output)) { 4054 psTrace("dettool", PS_LOG_INFO, "no rows found"); 4055 psFree(output); 4056 return true; 4057 } 4058 4059 bool simple = false; 4060 { 4061 bool status = false; 4062 simple = psMetadataLookupBool(&status, config->args, "-simple"); 4063 if (!status) { 4064 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple"); 4065 return false; 4066 } 4067 } 4068 4069 // negative simple so the default is true 4070 if (!ippdbPrintMetadatas(stdout, output, "detNormalizedImfile", !simple)) { 4071 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 4072 psFree(output); 4073 return false; 4074 } 4075 4076 psFree(output); 4077 4078 return true; 4079 } 4080 4081 4082 static bool revertnormalizedimfileMode(pxConfig *config) 4083 { 4084 PS_ASSERT_PTR_NON_NULL(config, false); 4085 4086 psString query = pxDataGet("dettool_revertnormalizedimfile.sql"); 4087 if (!query) { 4088 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 4089 return false; 4090 } 4091 4092 if (config->where) { 4093 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detNormalizedImfile"); 4094 psStringAppend(&query, " AND %s", whereClause); 4095 psFree(whereClause); 4096 } 4097 4098 if (!p_psDBRunQuery(config->dbh, query)) { 4099 psError(PS_ERR_UNKNOWN, false, "database error"); 4100 psFree(query); 4101 return false; 4102 } 4103 psFree(query); 4104 4105 if (psDBAffectedRows(config->dbh) < 1) { 4106 psError(PS_ERR_UNKNOWN, false, "should have affected atleast 1 row"); 4107 return false; 4108 } 4109 4110 return true; 4111 } 4112 4113 3979 4114 static bool tonormalizedexpMode(pxConfig *config) 3980 4115 { … … 4464 4599 } 4465 4600 4466 static bool normalizedimfileMode(pxConfig *config)4467 {4468 PS_ASSERT_PTR_NON_NULL(config, false);4469 4470 bool status = false;4471 psU64 limit = psMetadataLookupU64(&status, config->args, "-limit");4472 if (!status) {4473 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -limit");4474 return false;4475 }4476 4477 bool faulted = psMetadataLookupU64(&status, config->args, "-faulted");4478 if (!status) {4479 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -faulted");4480 return false;4481 }4482 4483 psString query = psStringCopy(4484 "SELECT"4485 " detNormalizedImfile.*"4486 " FROM detNormalizedImfile"4487 " JOIN detRun"4488 " USING(det_id, iteration)"4489 " WHERE"4490 " detRun.state = 'run'"4491 " AND detRun.mode = 'master'"4492 );4493 4494 if (config->where) {4495 bool status;4496 int iteration = psMetadataLookupS32 (&status, config->where, "iteration");4497 if (status) {4498 psMetadataRemoveKey (config->where, "iteration");4499 psMetadataAddS32 (config->where, PS_LIST_TAIL, "iteration", 0, "==", iteration);4500 }4501 psString whereClause = psDBGenerateWhereConditionSQL(config->where, "detNormalizedImfile");4502 psStringAppend(&query, " AND %s", whereClause);4503 psFree(whereClause);4504 }4505 4506 if (faulted) {4507 // list only faulted rows4508 psStringAppend(&query, " %s", "AND detNormalizedImfile.fault != 0");4509 } else {4510 // don't list faulted rows4511 psStringAppend(&query, " %s", "AND detNormalizedImfile.fault = 0");4512 }4513 4514 // treat limit == 0 as "no limit"4515 if (limit) {4516 psString limitString = psDBGenerateLimitSQL(limit);4517 psStringAppend(&query, " %s", limitString);4518 psFree(limitString);4519 }4520 4521 if (!p_psDBRunQuery(config->dbh, query)) {4522 psError(PS_ERR_UNKNOWN, false, "database error");4523 psFree(query);4524 return false;4525 }4526 psFree(query);4527 4528 psArray *output = p_psDBFetchResult(config->dbh);4529 if (!output) {4530 psError(PS_ERR_UNKNOWN, false, "database error");4531 return false;4532 }4533 if (!psArrayLength(output)) {4534 psTrace("dettool", PS_LOG_INFO, "no rows found");4535 psFree(output);4536 return true;4537 }4538 4539 bool simple = false;4540 {4541 bool status = false;4542 simple = psMetadataLookupBool(&status, config->args, "-simple");4543 if (!status) {4544 psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -simple");4545 return false;4546 }4547 }4548 4549 // negative simple so the default is true4550 if (!ippdbPrintMetadatas(stdout, output, "detNormalizedImfile", !simple)) {4551 psError(PS_ERR_UNKNOWN, false, "failed to print array");4552 psFree(output);4553 return false;4554 }4555 4556 psFree(output);4557 4558 return true;4559 }4560 4601 4561 4602 static bool addresidimfileMode(pxConfig *config) -
trunk/ippTools/src/dettool.h
r14242 r14243 52 52 DETTOOL_MODE_ADDNORMALIZEDIMFILE, 53 53 DETTOOL_MODE_NORMALIZEDIMFILE, 54 DETTOOL_MODE_REVERTNORMALIZEDIMFILE, 54 55 DETTOOL_MODE_TONORMALIZEDEXP, 55 56 DETTOOL_MODE_ADDNORMALIZEDEXP, -
trunk/ippTools/src/dettoolConfig.c
r14242 r14243 606 606 "set fault code", 0); 607 607 608 // -normalizedimfile 609 psMetadata *normalizedimfileArgs = psMetadataAlloc(); 610 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 611 "search for detrend ID", NULL); 612 psMetadataAddS32(normalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, 613 "search for iteration number", 0); 614 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 615 "search for class ID", NULL); 616 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-recip", 0, 617 "search for recipe", NULL); 618 psMetadataAddU64(normalizedimfileArgs, PS_LIST_TAIL, "-limit", 0, 619 "limit result set to N items", 0); 620 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-faulted", 0, 621 "only return imfiles with a fault status set", false); 622 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-simple", 0, 623 "use the simple output format", false); 624 625 // -revertnormalizedimfile 626 psMetadata *revertnormalizedimfileArgs = psMetadataAlloc(); 627 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0, 628 "search by detrend ID (required)", NULL); 629 psMetadataAddS32(revertnormalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0, 630 "search by iteration number", 0); 631 psMetadataAddStr(revertnormalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0, 632 "search by class ID", NULL); 633 psMetadataAddS16(revertnormalizedimfileArgs, PS_LIST_TAIL, "-code", 0, 634 "search by fault code", 0); 635 608 636 // -tonormalizedexp 609 637 psMetadata *tonormalizedexpArgs = psMetadataAlloc(); … … 672 700 "limit result set to N items", 0); 673 701 psMetadataAddBool(toresidimfileArgs, PS_LIST_TAIL, "-simple", 0, 674 "use the simple output format", false);675 676 // -normalizedimfile677 psMetadata *normalizedimfileArgs = psMetadataAlloc();678 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-det_id", 0,679 "search for detrend ID", NULL);680 psMetadataAddS32(normalizedimfileArgs, PS_LIST_TAIL, "-iteration", 0,681 "search for iteration number", 0);682 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-class_id", 0,683 "search for class ID", NULL);684 psMetadataAddStr(normalizedimfileArgs, PS_LIST_TAIL, "-recip", 0,685 "search for recipe", NULL);686 psMetadataAddU64(normalizedimfileArgs, PS_LIST_TAIL, "-limit", 0,687 "limit result set to N items", 0);688 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-faulted", 0,689 "only return imfiles with a fault status set", false);690 psMetadataAddBool(normalizedimfileArgs, PS_LIST_TAIL, "-simple", 0,691 702 "use the simple output format", false); 692 703 … … 1009 1020 PXTOOL_ADD_MODE("-addnormalizedimfile", "", DETTOOL_MODE_ADDNORMALIZEDIMFILE,addnormalizedimfileArgs); 1010 1021 PXTOOL_ADD_MODE("-normalizedimfile","", DETTOOL_MODE_NORMALIZEDIMFILE, normalizedimfileArgs); 1022 PXTOOL_ADD_MODE("-revertnormalizedimfile","", DETTOOL_MODE_REVERTNORMALIZEDIMFILE, normalizedimfileArgs); 1011 1023 PXTOOL_ADD_MODE("-tonormalizedexp", "", DETTOOL_MODE_TONORMALIZEDEXP, tonormalizedexpArgs); 1012 1024 PXTOOL_ADD_MODE("-addnormalizedexp", "", DETTOOL_MODE_ADDNORMALIZEDEXP, addnormalizedexpArgs);
Note:
See TracChangeset
for help on using the changeset viewer.
