]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 498890: Bugzilla::User::Setting doesn't need to sort DB results
authorKoosha Khajeh Moogahi <koosha.khajeh@gmail.com>
Mon, 30 Jul 2012 00:57:50 +0000 (02:57 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Mon, 30 Jul 2012 00:57:50 +0000 (02:57 +0200)
r/a=LpSolit

Bugzilla/User/Setting.pm

index 2f5870d69354820096d2dbe00a71b9cc42ca3b48..6fadfb35231167e95becdfb18bb4552cd30584ba 100644 (file)
@@ -154,21 +154,18 @@ sub add_setting {
 
 sub get_all_settings {
     my ($user_id) = @_;
-    my $settings = get_defaults($user_id); # first get the defaults
+    my $settings = {};
     my $dbh = Bugzilla->dbh;
 
-    my $sth = $dbh->prepare(
+    my $rows = $dbh->selectall_arrayref(
            q{SELECT name, default_value, is_enabled, setting_value, subclass
                FROM setting
           LEFT JOIN profile_setting
                  ON setting.name = profile_setting.setting_name
-              WHERE profile_setting.user_id = ?
-           ORDER BY name});
+                AND profile_setting.user_id = ?}, undef, ($user_id));
 
-    $sth->execute($user_id);
-    while (my ($name, $default_value, $is_enabled, $value, $subclass) 
-               = $sth->fetchrow_array()) 
-    {
+    foreach my $row (@$rows) {
+        my ($name, $default_value, $is_enabled, $value, $subclass) = @$row; 
 
         my $is_default;
 
@@ -194,13 +191,11 @@ sub get_defaults {
 
     $user_id ||= 0;
 
-    my $sth = $dbh->prepare(q{SELECT name, default_value, is_enabled, subclass
-                                FROM setting
-                            ORDER BY name});
-    $sth->execute();
-    while (my ($name, $default_value, $is_enabled, $subclass) 
-           = $sth->fetchrow_array()) 
-    {
+    my $rows = $dbh->selectall_arrayref(q{SELECT name, default_value, is_enabled, subclass
+                                            FROM setting});
+
+    foreach my $row (@$rows) {
+        my ($name, $default_value, $is_enabled, $subclass) = @$row;
 
         $default_settings->{$name} = new Bugzilla::User::Setting(
             $name, $user_id, $is_enabled, $default_value, $default_value, 1,