From 39a329b9ac46424a4552e8c68e44467173a8238c Mon Sep 17 00:00:00 2001 From: "justdave%syndicomm.com" <> Date: Thu, 18 Mar 2004 13:55:41 +0000 Subject: Bug 24496: Adds a parameter "noresolveonopenblockers" which when enabled, prevents bugs from being closed if there are any bugs blocking it which are still open. Patch by Andreas Höfler r= justdave, a= myk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- globals.pl | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'globals.pl') diff --git a/globals.pl b/globals.pl index 399482caa..019d6d972 100644 --- a/globals.pl +++ b/globals.pl @@ -1069,6 +1069,38 @@ sub GetBugLink { } } +# CountOpenDependencies counts the number of open dependent bugs for a +# list of bugs and returns a list of bug_id's and their dependency count +# It takes one parameter: +# - A list of bug numbers whose dependencies are to be checked + +sub CountOpenDependencies { + my (@bug_list) = @_; + my @dependencies; + + # Make sure any unfetched data from a currently running query + # is saved off rather than overwritten + PushGlobalSQLState(); + + SendSQL("SELECT blocked, count(bug_status) " . + "FROM bugs, dependencies " . + "WHERE blocked IN (" . (join "," , @bug_list) . ") " . + "AND bug_id = dependson " . + "AND bug_status IN ('" . (join "','", OpenStates()) . "') " . + "GROUP BY blocked "); + + while (MoreSQLData()) { + my ($bug_id, $dependencies) = FetchSQLData(); + push(@dependencies, { bug_id => $bug_id, + dependencies => $dependencies }); + } + + # All done with this sidetrip + PopGlobalSQLState(); + + return @dependencies; +} + sub GetLongDescriptionAsText { my ($id, $start, $end) = (@_); my $result = ""; -- cgit v1.2.3-24-g4f1b