X-Git-Url: https://git.exim.org/buildfarm-server.git/blobdiff_plain/c3ad6df34e5ec30c6be887033dad6d834ddf8fb1..7a251a65acd9d84242e15b47fd7c01405322b2ed:/cgi-bin/show_members.pl diff --git a/cgi-bin/show_members.pl b/cgi-bin/show_members.pl index 2b6e0be..f6fb396 100755 --- a/cgi-bin/show_members.pl +++ b/cgi-bin/show_members.pl @@ -26,27 +26,32 @@ my $dsn="dbi:Pg:dbname=$dbname"; $dsn .= ";host=$dbhost" if $dbhost; $dsn .= ";port=$dbport" if $dbport; -my $db = DBI->connect($dsn,$dbuser,$dbpass); +my $db = DBI->connect($dsn,$dbuser,$dbpass,{pg_expand_array => 0}); # there is possibly some redundancy in this query, but it makes # a lot of the processing simpler. -my $statement = < 'HEAD', branch desc - ) as branches + ) as branches, + ARRAY(select compiler_version || '\t' || os_version || '\t' || effective_date + from personality p + where p.name = s.name + order by effective_date + ) as personalities from buildsystems s where status = 'approved' - order by $sort_by +}; -EOS -; +$statement .= "order by $sort_by"; my $statrows=[]; my $sth=$db->prepare($statement); @@ -54,6 +59,21 @@ $sth->execute; while (my $row = $sth->fetchrow_hashref) { $row->{branches} =~ s/^\{(.*)\}$/$1/; + my $personalities = $row->{personalities}; + $personalities =~ s/^\{(.*)\}$/$1/; + my @personalities = split(',',$personalities); + $row->{personalities} = []; + foreach my $personality (@personalities) + { + $personality =~ s/^"(.*)"$/$1/; + $personality =~ s/\\(.)/$1/g; + + my ($compiler_version, $os_version, $effective_date) = split(/\t/,$personality); + $effective_date =~ s/ .*//; + push(@{$row->{personalities}}, {compiler_version => $compiler_version, + os_version => $os_version, + effective_date => $effective_date }); + } $row->{owner_email} =~ s/\@/ [ a t ] /; push(@$statrows,$row); }