]> git.donarmstrong.com Git - debbugs.git/blobdiff - Debbugs/Bugs.pm
OR is the default for multiple values; remove useless or
[debbugs.git] / Debbugs / Bugs.pm
index 09e19a881fd6d5ce554c10d201932526bdd0dd31..127e4727248b11457a021c987cb74b83377e6a2e 100644 (file)
@@ -560,6 +560,7 @@ sub get_bugs_by_db{
      }
      if (exists $param{affects}) {
         my @aff_list = make_list($param{affects});
+        s/^src:// foreach @aff_list;
          $rs = $rs->search({-or => {'bin_pkg.pkg' =>
                                    [@aff_list],
                                    'src_pkg.pkg' =>
@@ -608,7 +609,7 @@ sub get_bugs_by_db{
         $rs = $rs->search({-or => {'bug_binpackages.bin_pkg' =>
                                   { -in => $bin_pkgs_rs->get_column('id')->as_query},
                                    'bug_srcpackages.src_pkg' => 
-                                  { -in => $bin_pkgs_rs->get_column('id')->as_query},
+                                  { -in => $src_pkgs_rs->get_column('id')->as_query},
                                   },
                           },
                          {join => ['bug_binpackages',
@@ -620,27 +621,24 @@ sub get_bugs_by_db{
         # identify all of the srcpackages and binpackages that match first
         my $src_pkgs_rs =
         $s->resultset('SrcPkg')->
-            search({-or => [map {('me.pkg' => $_,
-                                 )}
-                            make_list($param{src})],
-                    columns => ['id'],
+            search({'pkg' => [make_list($param{src})],
+                   },
+                  { columns => ['id'],
                     group_by => ['me.id'],
                    },
                   );
         my $bin_pkgs_rs =
-        $s->resultset('BinPkg')->
-            search({-or => [map {('src_pkg.pkg' => $_,
-                                 )}
-                            make_list($param{src})],
-                    },
-                  {join => {bin_vers => {src_ver => 'src_pkg'}},
-                   columns => ['id'],
-                   group_by => ['me.id'],
+            $s->resultset('BinPkgSrcPkg')->
+            search({'src_pkg.pkg' => [make_list($param{src})],
+                   },
+                  {columns => ['bin_pkg'],
+                   join => ['src_pkg'],
+                   group_by => ['bin_pkg'],
                   });
          $rs = $rs->search({-or => {'bug_binpackages.bin_pkg' =>
-                                  { -in => $bin_pkgs_rs->get_column('id')->as_query},
-                                   'bug_srcpackages.src_pkg' => 
-                                  { -in => $bin_pkgs_rs->get_column('id')->as_query},
+                                  { -in => $bin_pkgs_rs->get_column('bin_pkg')->as_query},
+                                   'bug_srcpackages.src_pkg' =>
+                                  { -in => $src_pkgs_rs->get_column('id')->as_query},
                                    'me.unknown_packages' =>
                                    [make_list($param{src})],
                                   },