Changeset 18524
- Timestamp:
- Jul 14, 2008, 5:31:55 PM (18 years ago)
- Location:
- trunk/ippTools
- Files:
-
- 1 added
- 6 edited
-
share/Makefile.am (modified) (1 diff)
-
share/magictool_node.sql (added)
-
share/magictool_toprocess_inputs.sql (modified) (1 diff)
-
share/magictool_toprocess_tree.sql (modified) (1 diff)
-
src/magictool.c (modified) (10 diffs)
-
src/magictool.h (modified) (1 diff)
-
src/magictoolConfig.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippTools/share/Makefile.am
r18523 r18524 70 70 magictool_toprocess_tree.sql \ 71 71 magictool_toskyfilemask.sql \ 72 magictool_node.sql \ 72 73 pxadmin_create_tables.sql \ 73 74 pxadmin_drop_tables.sql \ -
trunk/ippTools/share/magictool_toprocess_inputs.sql
r15336 r18524 3 3 -- convert magic_id into a boolean value (1 or 0) 4 4 -- note that the type stays a 64 bit int 5 magicNodeResult.magic_id IS TRUE as done, 6 diffSkyfile.uri 5 magicNodeResult.magic_id IS TRUE as done 7 6 FROM magicTree 8 7 JOIN magicRun -
trunk/ippTools/share/magictool_toprocess_tree.sql
r15272 r18524 3 3 -- convert magic_id into a boolean value (1 or 0) 4 4 -- note that the type stays a 64 bit int 5 magicNodeResult.magic_id IS TRUE as done, 6 magicNodeResult.uri 5 magicNodeResult.magic_id IS TRUE as done 7 6 FROM magicTree 8 7 JOIN magicRun -
trunk/ippTools/src/magictool.c
r18523 r18524 40 40 static bool toprocessMode(pxConfig *config); 41 41 static bool addresultMode(pxConfig *config); 42 static bool nodeMode(pxConfig *config); 42 43 static bool tomaskMode(pxConfig *config); 43 44 static bool addmaskMode(pxConfig *config); … … 73 74 MODECASE(MAGICTOOL_MODE_TOPROCESS, toprocessMode); 74 75 MODECASE(MAGICTOOL_MODE_ADDRESULT, addresultMode); 76 MODECASE(MAGICTOOL_MODE_NODE, nodeMode); 75 77 MODECASE(MAGICTOOL_MODE_TOMASK, tomaskMode); 76 78 MODECASE(MAGICTOOL_MODE_ADDMASK, addmaskMode); … … 393 395 } 394 396 if (!psArrayLength(output)) { 395 psTrace(" warptool", PS_LOG_INFO, "no rows found");397 psTrace("magictool", PS_LOG_INFO, "no rows found"); 396 398 psFree(output); 397 399 return true; … … 520 522 psMetadataRemoveKey(work, "dep"); 521 523 psMetadataRemoveKey(work, "done"); 524 #if 0 522 525 psMetadataRemoveKey(work, "uri"); 526 #endif 523 527 pxNode *child = NULL; 524 528 while ((child = psListGetAndIncrement(iter))) { … … 538 542 return true; 539 543 } 540 544 #if 0 541 545 char *uri = psMetadataLookupStr(&status, data, "uri"); 542 546 if (!status) { … … 545 549 546 550 psMetadataAddStr(work, PS_LIST_TAIL, "uri", PS_META_DUPLICATE_OK, NULL, uri); 547 551 #endif 548 552 } 549 553 psFree(iter); … … 634 638 635 639 psArray *magicTree = p_psDBFetchResult(config->dbh); 636 if (! output) {640 if (!magicTree) { 637 641 psErrorCode err = psErrorCodeLast(); 638 642 switch (err) { … … 725 729 } 726 730 727 728 static bool tomaskMode(pxConfig *config) 731 static bool nodeMode(pxConfig *config) 729 732 { 730 733 PS_ASSERT_PTR_NON_NULL(config, false); … … 733 736 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 734 737 735 // look for "inputs" that need to processed 736 psString query = pxDataGet("magictool_tomask.sql"); 738 psString query = pxDataGet("magictool_node.sql"); 737 739 if (!query) { 738 740 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 739 741 return false; 742 } 743 744 if (config->where) { 745 psString whereClause = psDBGenerateWhereConditionSQL(config->where, NULL); 746 psStringAppend(&query, " AND %s", whereClause); 747 psFree(whereClause); 740 748 } 741 749 … … 776 784 if (psArrayLength(output)) { 777 785 // negative simple so the default is true 786 if (!ippdbPrintMetadatas(stdout, output, "magicNode", !simple)) { 787 psError(PS_ERR_UNKNOWN, false, "failed to print array"); 788 psFree(output); 789 return false; 790 } 791 } 792 793 psFree(output); 794 795 return true; 796 } 797 798 799 static bool tomaskMode(pxConfig *config) 800 { 801 PS_ASSERT_PTR_NON_NULL(config, false); 802 803 PXOPT_LOOKUP_U64(limit, config->args, "-limit", false, false); 804 PXOPT_LOOKUP_BOOL(simple, config->args, "-simple", false); 805 806 // look for "inputs" that need to processed 807 psString query = pxDataGet("magictool_tomask.sql"); 808 if (!query) { 809 psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement"); 810 return false; 811 } 812 813 // treat limit == 0 as "no limit" 814 if (limit) { 815 psString limitString = psDBGenerateLimitSQL(limit); 816 psStringAppend(&query, " %s", limitString); 817 psFree(limitString); 818 } 819 820 if (!p_psDBRunQuery(config->dbh, query)) { 821 psError(PS_ERR_UNKNOWN, false, "database error"); 822 psFree(query); 823 return false; 824 } 825 psFree(query); 826 827 psArray *output = p_psDBFetchResult(config->dbh); 828 if (!output) { 829 psErrorCode err = psErrorCodeLast(); 830 switch (err) { 831 case PS_ERR_DB_CLIENT: 832 psError(PXTOOLS_ERR_SYS, false, "database error"); 833 case PS_ERR_DB_SERVER: 834 psError(PXTOOLS_ERR_PROG, false, "database error"); 835 default: 836 psError(PXTOOLS_ERR_PROG, false, "unknown error"); 837 } 838 839 return false; 840 } 841 if (!psArrayLength(output)) { 842 psTrace("magictool", PS_LOG_INFO, "no rows found"); 843 psFree(output); 844 return true; 845 } 846 847 if (psArrayLength(output)) { 848 // negative simple so the default is true 778 849 if (!ippdbPrintMetadatas(stdout, output, "toprocess", !simple)) { 779 850 psError(PS_ERR_UNKNOWN, false, "failed to print array"); -
trunk/ippTools/src/magictool.h
r18523 r18524 34 34 MAGICTOOL_MODE_TOPROCESS, 35 35 MAGICTOOL_MODE_ADDRESULT, 36 MAGICTOOL_MODE_NODE, 36 37 MAGICTOOL_MODE_TOMASK, 37 38 MAGICTOOL_MODE_ADDMASK, -
trunk/ippTools/src/magictoolConfig.c
r18523 r18524 112 112 psMetadataAddS16(inputtreeArgs, PS_LIST_TAIL, "-code", 0, "set fault code", 0); 113 113 114 // -node 115 psMetadata *nodeArgs = psMetadataAlloc(); 116 psMetadataAddStr(nodeArgs, PS_LIST_TAIL, "-magic_id", 0, 117 "search by magictool ID", NULL); 118 psMetadataAddStr(nodeArgs, PS_LIST_TAIL, "-node", 0, 119 "search by symbolic node name", NULL); 120 psMetadataAddU64(nodeArgs, PS_LIST_TAIL, "-limit", 0, 121 "limit result set to N items", 0); 122 psMetadataAddBool(nodeArgs, PS_LIST_TAIL, "-simple", 0, 123 "use the simple output format", false); 124 114 125 // -tooprocess 115 126 psMetadata *toprocessArgs = psMetadataAlloc(); … … 159 170 PXOPT_ADD_MODE("-toprocess", "", MAGICTOOL_MODE_TOPROCESS, toprocessArgs); 160 171 PXOPT_ADD_MODE("-addresult", "", MAGICTOOL_MODE_ADDRESULT, addresultArgs); 172 PXOPT_ADD_MODE("-node", "", MAGICTOOL_MODE_NODE, nodeArgs); 161 173 PXOPT_ADD_MODE("-tomask", "", MAGICTOOL_MODE_TOMASK, tomaskArgs); 162 174 PXOPT_ADD_MODE("-addmask", "", MAGICTOOL_MODE_ADDMASK, addmaskArgs); … … 218 230 addWhereStr(tess_id); 219 231 addWhereStr(exp_id); 232 addWhereStr(node); 220 233 221 234 // convert '-code' to 'fault'
Note:
See TracChangeset
for help on using the changeset viewer.
