Commit 89de3564 authored by gerv%gerv.net's avatar gerv%gerv.net

Bug 227155 - make sure running collectstats.pl twice in a day, or migrating data…

Bug 227155 - make sure running collectstats.pl twice in a day, or migrating data from old charts to new charts where there are duplicate entries, doesn't cause an SQL error. Patch by gerv; r,a=justdave.
parent 8eb6d92c
......@@ -3707,6 +3707,9 @@ if (!$series_exists) {
"(series_id, date, value) " .
"VALUES (?, ?, ?)");
my $deletesth = $dbh->prepare("DELETE FROM series_data
WHERE series_id = ? AND date = ?");
# Fields in the data file (matches the current collectstats.pl)
my @statuses =
qw(NEW ASSIGNED REOPENED UNCONFIRMED RESOLVED VERIFIED CLOSED);
......@@ -3786,6 +3789,11 @@ if (!$series_exists) {
# Insert values into series_data: series_id, date, value
my %fielddata = %{$data{$field}};
foreach my $date (keys %fielddata) {
# We need to delete in case the text file had duplicate entries
# in it.
$deletesth->execute($seriesids{$field},
$dbh->quote($date));
# We prepared this above
$seriesdatasth->execute($seriesids{$field},
$dbh->quote($date),
......
......@@ -453,6 +453,12 @@ sub CollectSeriesData {
"(series_id, date, value) " .
"VALUES (?, " . $dbh->quote($today) . ", ?)");
# We delete from the table beforehand, to avoid SQL errors if people run
# collectstats.pl twice on the same day.
my $deletesth = $dbh->prepare("DELETE FROM series_data
WHERE series_id = ? AND date = " .
$dbh->quote($today));
foreach my $series_id (keys %$serieses) {
# We set up the user for Search.pm's permission checking - each series
# runs with the permissions of its creator.
......@@ -470,6 +476,7 @@ sub CollectSeriesData {
my $count = scalar(@$data) || 0;
$deletesth->execute($series_id);
$sth->execute($series_id, $count);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment