summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2008-03-21 19:27:14 +0100
committerlpsolit%gmail.com <>2008-03-21 19:27:14 +0100
commitd7f129889f6d9eb839c18c6bf820f86ec57a2cfe (patch)
treeb53b234b505e72fbf8e080487bac3eef5ebffabc
parent1402b4bce22a81c5ba494940d976932de816a7d3 (diff)
downloadbugzilla-d7f129889f6d9eb839c18c6bf820f86ec57a2cfe.tar.gz
bugzilla-d7f129889f6d9eb839c18c6bf820f86ec57a2cfe.tar.xz
Bug 314120: [Oracle] DBI::st::rows is used in a way that breaks Oracle - Patch by Frédéric Buclin <LpSolit@gmail.com> r/a=mkanat
-rw-r--r--Bugzilla/Install/DB.pm27
1 files changed, 13 insertions, 14 deletions
diff --git a/Bugzilla/Install/DB.pm b/Bugzilla/Install/DB.pm
index 6b8a6fdc6..c6668aec2 100644
--- a/Bugzilla/Install/DB.pm
+++ b/Bugzilla/Install/DB.pm
@@ -1039,10 +1039,10 @@ installation has many users.
ENDTEXT
# Re-crypt everyone's password.
+ my $total = $dbh->selectrow_array('SELECT COUNT(*) FROM profiles');
my $sth = $dbh->prepare("SELECT userid, password FROM profiles");
$sth->execute();
- my $total = $sth->rows;
my $i = 1;
print "Fixing passwords...\n";
@@ -1081,12 +1081,12 @@ sub _update_bugs_activity_to_only_record_changes {
# Now we need to process the bugs_activity table and reformat the data
print "Fixing activity log...\n";
+ my $total = $dbh->selectrow_array('SELECT COUNT(*) FROM bugs_activity');
my $sth = $dbh->prepare("SELECT bug_id, who, bug_when, fieldid,
oldvalue, newvalue FROM bugs_activity");
$sth->execute;
my $i = 0;
- my $total = $sth->rows;
- while (my ($bug_id, $who, $bug_when, $fieldid, $oldvalue, $newvalue)
+ while (my ($bug_id, $who, $bug_when, $fieldid, $oldvalue, $newvalue)
= $sth->fetchrow_array())
{
$i++;
@@ -2145,20 +2145,19 @@ sub _fix_group_with_empty_name {
# group_$gid and add _<n> if necessary.
my $trycount = 0;
my $trygroupname;
- my $trygroupsth = $dbh->prepare("SELECT id FROM groups where name = ?");
- do {
+ my $sth = $dbh->prepare("SELECT 1 FROM groups where name = ?");
+ my $name_exists = 1;
+
+ while ($name_exists) {
$trygroupname = "group_$emptygroupid";
if ($trycount > 0) {
$trygroupname .= "_$trycount";
}
- $trygroupsth->execute($trygroupname);
- if ($trygroupsth->rows > 0) {
- $trycount ++;
- }
- } while ($trygroupsth->rows > 0);
- my $sth = $dbh->prepare("UPDATE groups SET name = ? " .
- "WHERE id = $emptygroupid");
- $sth->execute($trygroupname);
+ $name_exists = $dbh->selectrow_array($sth, undef, $trygroupname);
+ $trycount++;
+ }
+ $dbh->do("UPDATE groups SET name = ? WHERE id = ?",
+ undef, $trygroupname, $emptygroupid);
print "Group $emptygroupid had an empty name; renamed as",
" '$trygroupname'.\n";
}
@@ -2215,10 +2214,10 @@ sub _migrate_email_prefs_to_new_table {
$dbh->bz_start_transaction();
# Select all emailflags flag strings
+ my $total = $dbh->selectrow_array('SELECT COUNT(*) FROM profiles');
my $sth = $dbh->prepare("SELECT userid, emailflags FROM profiles");
$sth->execute();
my $i = 0;
- my $total = $sth->rows;
while (my ($userid, $flagstring) = $sth->fetchrow_array()) {
$i++;