Index: trunk/ippTools/share/pstamptool_pendingjob.sql
===================================================================
--- trunk/ippTools/share/pstamptool_pendingjob.sql	(revision 33075)
+++ trunk/ippTools/share/pstamptool_pendingjob.sql	(revision 33119)
@@ -1,4 +1,7 @@
-SELECT pstampJob.*,
-    IFNULL(Label.priority, 10000) AS priority
+SELECT * FROM
+(SELECT pstampJob.*,
+    IFNULL(Label.priority, 10000) AS priority,
+    0 AS myParent,
+    0 AS runningChildren
 FROM pstampJob
     JOIN pstampRequest USING(req_id)
@@ -9,4 +12,37 @@
     AND pstampJob.state = 'run'
     AND pstampJob.fault = 0
+    AND NOT is_parent
     AND (dep_id = 0 OR pstampDependent.state = 'full')
     AND (Label.active OR Label.active IS NULL)
+    -- where hook 1 %s
+UNION
+SELECT * FROM
+  (SELECT pstampJob.*,
+        IFNULL(Label.priority, 10000) AS priority
+    FROM pstampJob
+        JOIN pstampRequest USING(req_id)
+        LEFT JOIN pstampDependent USING(dep_id)
+        LEFT JOIN Label ON pstampRequest.label = Label.label
+    WHERE pstampRequest.state = 'run'
+        AND pstampRequest.fault = 0
+        AND pstampJob.state = 'run'
+        AND pstampJob.fault = 0
+        AND is_parent
+        AND (dep_id = 0 OR pstampDependent.state = 'full')
+        AND (Label.active OR Label.active IS NULL)
+        -- where hook 2 %s
+    ) as parentJob
+    LEFT JOIN
+    (SELECT parent_id AS myParent,
+            count(job_id) as runningChildren
+        FROM pstampRequest JOIN pstampJob USING(req_id)
+        WHERE pstampRequest.state ='run'
+            AND pstampJob.state = 'run'
+            AND pstampJob.parent_id
+        GROUP BY parent_id
+    ) as childJobs
+    ON childJobs.myParent = parentJob.job_id
+    WHERE runningChildren IS NULL
+) AS theQuery
+
+
Index: trunk/ippTools/share/pstamptool_stopdependentjob.sql
===================================================================
--- trunk/ippTools/share/pstamptool_stopdependentjob.sql	(revision 33075)
+++ trunk/ippTools/share/pstamptool_stopdependentjob.sql	(revision 33119)
@@ -5,5 +5,6 @@
 SET pstampJob.state = 'stop', 
     pstampJob.fault = %d,
-    pstampDependent.fault = %d 
+    pstampDependent.fault = %d, 
+    pstampDependent.state = '%s'
 WHERE pstampJob.state = 'run'
     AND pstampDependent.state = 'new'
Index: trunk/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_create_tables.sql	(revision 33075)
+++ trunk/ippTools/share/pxadmin_create_tables.sql	(revision 33119)
@@ -1442,5 +1442,8 @@
         fault SMALLINT,
         PRIMARY KEY(req_id),
-        KEY(req_id)
+        KEY(req_id),
+        KEY(state),
+        KEY(fault),
+        KEY(label)
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
@@ -1456,6 +1459,15 @@
         options BIGINT,
         dep_id BIGINT,
+        fault_count INT,
+        parent_id BIGINT DEFAULT NULL,
+        is_parent TINYINT DEFAULT 0,
         PRIMARY KEY(job_id, req_id),
         KEY(job_id),
+        KEY(req_id),
+        KEY(state),
+        KEY(fault),
+        KEY(dep_id),
+        KEY(parent_id),
+        KEY(is_parent),
         FOREIGN KEY(req_id) REFERENCES pstampRequest(req_id)
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
@@ -1468,7 +1480,7 @@
         component  VARCHAR(64),
         imagedb    VARCHAR(64),
+        outdir     VARCHAR(255),
         rlabel     VARCHAR(64),
         need_magic TINYINT,
-        outdir     VARCHAR(255),
         fault      SMALLINT,
         fault_count INT,
@@ -1477,4 +1489,6 @@
         KEY(stage),
         KEY(stage_id),
+        KEY(component),
+        KEY(imagedb),
         KEY(fault)
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
