From f8c51cfba20c026dcdb53cb67abdbd9f27509c90 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sun, 25 Mar 2012 17:23:22 +0200 Subject: [PATCH] Factor out fetching of the covariance matrix into its own function. --- www/index.pl | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/www/index.pl b/www/index.pl index b754d4c..ec6428c 100755 --- a/www/index.pl +++ b/www/index.pl @@ -121,6 +121,21 @@ EOF EOF } +sub get_covariance_matrix { + my ($dbh, @players) = @_; + + my $player_sql = '{' . join(',', @players ) . '}'; + my $q = $dbh->prepare('SELECT * FROM covariance WHERE player1=ANY(?::smallint[]) AND player2=ANY(?::smallint[])', { pg_prepare_now => 0 }); + $q->execute($player_sql, $player_sql); + + my $cov = {}; + while (my $ref = $q->fetchrow_hashref) { + $cov->{$ref->{'player1'}}{$ref->{'player2'}} = $ref->{'cov'}; + } + + return $cov; +} + sub make_table { my ($lowest_division, $used_ratings, $used_cov) = @_; @@ -303,15 +318,7 @@ while (my $ref = $q->fetchrow_hashref) { } $q->finish; -# Pick up covariance matrix -my $player_sql = '{' . join(',', keys %players ) . '}'; -my $q = $dbh->prepare('SELECT * FROM covariance WHERE player1=ANY(?::smallint[]) AND player2=ANY(?::smallint[])', { pg_prepare_now => 0 }); -$q->execute($player_sql, $player_sql); - -my $cov = {}; -while (my $ref = $q->fetchrow_hashref) { - $cov->{$ref->{'player1'}}{$ref->{'player2'}} = $ref->{'cov'}; -} +my $cov = get_covariance_matrix($dbh, keys %players); my $max_division = $divisions[$#divisions]; my $lowest_division = ($division == $max_division); -- 2.39.2