Changeset 33119
- Timestamp:
- Jan 19, 2012, 3:39:28 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 6 edited
-
dbconfig/pstamp.md (modified) (1 diff)
-
ippTools/share/pstamptool_pendingjob.sql (modified) (2 diffs)
-
ippTools/share/pstamptool_stopdependentjob.sql (modified) (1 diff)
-
ippTools/share/pxadmin_create_tables.sql (modified) (4 diffs)
-
ippTools/src/pstamptool.c (modified) (8 diffs)
-
ippTools/src/pstamptoolConfig.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/dbconfig/pstamp.md
r32772 r33119 48 48 dep_id S64 0 49 49 fault_count S32 0 50 parent_id S64 0 51 is_parent BOOL f 50 52 END 51 53 -
trunk/ippTools/share/pstamptool_pendingjob.sql
r27856 r33119 1 SELECT pstampJob.*, 2 IFNULL(Label.priority, 10000) AS priority 1 SELECT * FROM 2 (SELECT pstampJob.*, 3 IFNULL(Label.priority, 10000) AS priority, 4 0 AS myParent, 5 0 AS runningChildren 3 6 FROM pstampJob 4 7 JOIN pstampRequest USING(req_id) … … 9 12 AND pstampJob.state = 'run' 10 13 AND pstampJob.fault = 0 14 AND NOT is_parent 11 15 AND (dep_id = 0 OR pstampDependent.state = 'full') 12 16 AND (Label.active OR Label.active IS NULL) 17 -- where hook 1 %s 18 UNION 19 SELECT * FROM 20 (SELECT pstampJob.*, 21 IFNULL(Label.priority, 10000) AS priority 22 FROM pstampJob 23 JOIN pstampRequest USING(req_id) 24 LEFT JOIN pstampDependent USING(dep_id) 25 LEFT JOIN Label ON pstampRequest.label = Label.label 26 WHERE pstampRequest.state = 'run' 27 AND pstampRequest.fault = 0 28 AND pstampJob.state = 'run' 29 AND pstampJob.fault = 0 30 AND is_parent 31 AND (dep_id = 0 OR pstampDependent.state = 'full') 32 AND (Label.active OR Label.active IS NULL) 33 -- where hook 2 %s 34 ) as parentJob 35 LEFT JOIN 36 (SELECT parent_id AS myParent, 37 count(job_id) as runningChildren 38 FROM pstampRequest JOIN pstampJob USING(req_id) 39 WHERE pstampRequest.state ='run' 40 AND pstampJob.state = 'run' 41 AND pstampJob.parent_id 42 GROUP BY parent_id 43 ) as childJobs 44 ON childJobs.myParent = parentJob.job_id 45 WHERE runningChildren IS NULL 46 ) AS theQuery 47 48 -
trunk/ippTools/share/pstamptool_stopdependentjob.sql
r29248 r33119 5 5 SET pstampJob.state = 'stop', 6 6 pstampJob.fault = %d, 7 pstampDependent.fault = %d 7 pstampDependent.fault = %d, 8 pstampDependent.state = '%s' 8 9 WHERE pstampJob.state = 'run' 9 10 AND pstampDependent.state = 'new' -
trunk/ippTools/share/pxadmin_create_tables.sql
r33032 r33119 1442 1442 fault SMALLINT, 1443 1443 PRIMARY KEY(req_id), 1444 KEY(req_id) 1444 KEY(req_id), 1445 KEY(state), 1446 KEY(fault), 1447 KEY(label) 1445 1448 ) ENGINE=innodb DEFAULT CHARSET=latin1; 1446 1449 … … 1456 1459 options BIGINT, 1457 1460 dep_id BIGINT, 1461 fault_count INT, 1462 parent_id BIGINT DEFAULT NULL, 1463 is_parent TINYINT DEFAULT 0, 1458 1464 PRIMARY KEY(job_id, req_id), 1459 1465 KEY(job_id), 1466 KEY(req_id), 1467 KEY(state), 1468 KEY(fault), 1469 KEY(dep_id), 1470 KEY(parent_id), 1471 KEY(is_parent), 1460 1472 FOREIGN KEY(req_id) REFERENCES pstampRequest(req_id) 1461 1473 ) ENGINE=innodb DEFAULT CHARSET=latin1; … … 1468 1480 component VARCHAR(64), 1469 1481 imagedb VARCHAR(64), 1482 outdir VARCHAR(255), 1470 1483 rlabel VARCHAR(64), 1471 1484 need_magic TINYINT, 1472 outdir VARCHAR(255),1473 1485 fault SMALLINT, 1474 1486 fault_count INT, … … 1477 1489 KEY(stage), 1478 1490 KEY(stage_id), 1491 KEY(component), 1492 KEY(imagedb), 1479 1493 KEY(fault) 1480 1494 ) ENGINE=innodb DEFAULT CHARSET=latin1; -
trunk/ippTools/src/pstamptool.c
r32786 r33119 704 704 PXOPT_LOOKUP_S16(fault, config->args, "-fault", false, false); 705 705 PXOPT_LOOKUP_S64(exp_id, config->args, "-exp_id", false, false); 706 PXOPT_LOOKUP_S64(options, config->args, "-options", false, false);706 PXOPT_LOOKUP_S64(options, config->args, "-options", false, false); 707 707 PXOPT_LOOKUP_S64(dep_id, config->args, "-dep_id", false, false); 708 PXOPT_LOOKUP_S64(parent_id, config->args, "-parent_id", false, false); 709 PXOPT_LOOKUP_BOOL(is_parent, config->args, "-is_parent", false); 708 710 709 711 // unless the job is being inserted with stop state require outputBase … … 716 718 if (!strcmp(job_type, "get_image") || !strcmp(job_type, "detect_query") || !strcmp(job_type, "none")) { 717 719 stampJob = false; 720 } else if (!strcmp(job_type, "child")) { 721 // job_type child's only action is to resolve a dependent 722 // XXX: IS this necessary? 723 if (!dep_id) { 724 psError(PS_ERR_UNKNOWN, true, "dep_id required for child job\n"); 725 return false; 726 } 727 if (is_parent) { 728 psError(PS_ERR_UNKNOWN, true, "job type child can not be a parent job\n"); 729 return false; 730 } 731 stampJob = false; 732 } else if (!strcmp(job_type, "mosaic")) { 733 stampJob = false; 734 is_parent = true; 718 735 } else if (!strcmp(job_type, "stamp")) { 719 736 stampJob = true; … … 723 740 } 724 741 if (!pstampJobInsert(config->dbh, 725 0, // job_id742 0, // job_id 726 743 req_id, 727 744 rownum, … … 733 750 options, 734 751 dep_id, 735 0 // fault_count 752 0, // fault_count 753 parent_id, 754 is_parent 736 755 )) { 737 756 psError(PS_ERR_UNKNOWN, false, "database error"); … … 842 861 843 862 // use psDBGenerateWhereSQL because the SQL yields an intermediate table 863 psString whereStr = NULL; 844 864 if (psListLength(where->list)) { 845 865 psString whereClause = psDBGenerateWhereConditionSQL(where, NULL); 846 psStringAppend(& query, "AND %s", whereClause);866 psStringAppend(&whereStr, "\n AND %s", whereClause); 847 867 psFree(whereClause); 868 } else { 869 psStringAppend(&whereStr, "%s", ""); 848 870 } 849 871 psFree(where); … … 858 880 } 859 881 860 if (!p_psDBRunQuery(config->dbh, query)) { 861 psError(PS_ERR_UNKNOWN, false, "database error"); 862 psFree(query); 863 return false; 864 } 882 if (!p_psDBRunQueryF(config->dbh, query, whereStr, whereStr)) { 883 psError(PS_ERR_UNKNOWN, false, "database error"); 884 psFree(whereStr); 885 psFree(query); 886 return false; 887 } 888 psFree(whereStr); 865 889 psFree(query); 866 890 … … 956 980 957 981 PXOPT_LOOKUP_S32(fault, config->args, "-set_fault", true, false); 982 PXOPT_LOOKUP_STR(state, config->args, "-set_state", false, false); 958 983 959 984 psMetadata *where = psMetadataAlloc(); … … 986 1011 psFree(where); 987 1012 988 if (!p_psDBRunQueryF(config->dbh, query, fault, fault )) {1013 if (!p_psDBRunQueryF(config->dbh, query, fault, fault, state)) { 989 1014 psError(PS_ERR_UNKNOWN, false, "database error"); 990 1015 psFree(query); -
trunk/ippTools/src/pstamptoolConfig.c
r32786 r33119 144 144 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-options", 0, "define options", 0); 145 145 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-dep_id", 0, "define job dep_id", 0); 146 psMetadataAddS64(addjobArgs, PS_LIST_TAIL, "-parent_id", 0, "define parent's job_id", 0); 147 psMetadataAddBool(addjobArgs, PS_LIST_TAIL, "-is_parent", 0, "define whether job has children", false); 146 148 psMetadataAddS16(addjobArgs, PS_LIST_TAIL, "-fault", 0, "define job result", 0); 147 149 … … 186 188 psMetadataAddS32(stopdependentjobArgs, PS_LIST_TAIL, "-fault_count", 0, "select by fault_count (>=)", 0); 187 189 psMetadataAddS16(stopdependentjobArgs, PS_LIST_TAIL, "-set_fault", 0, "new fault value for job and dependent (required)", 0); 190 psMetadataAddStr(stopdependentjobArgs, PS_LIST_TAIL, "-set_state", 0, "new pstampDependent.state", "new"); 188 191 psMetadataAddStr(stopdependentjobArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK, "search by pstampJob label (LIKE comparision)", NULL); 189 192 psMetadataAddU64(stopdependentjobArgs, PS_LIST_TAIL, "-limit", 0, "not used", 0);
Note:
See TracChangeset
for help on using the changeset viewer.
