Bug 289042: Implicit joins should be replaced by explicit joins - installment B

Patch By Max Kanat-Alexander <mkanat@bugzilla.org> r=LpSolit, r=joel, a=justdave
This commit is contained in:
mkanat%kerio.com 2005-07-02 05:23:28 +00:00
Родитель 423cdcda66
Коммит 76340e5a88
3 изменённых файлов: 25 добавлений и 19 удалений

Просмотреть файл

@ -163,12 +163,16 @@ sub initBug {
reporter_accessible, cclist_accessible,
estimated_time, remaining_time, " .
$dbh->sql_date_format('deadline', '%Y-%m-%d') . "
FROM bugs LEFT JOIN votes using(bug_id),
classifications, products, components
WHERE bugs.bug_id = ?
AND classifications.id = products.classification_id
AND products.id = bugs.product_id
AND components.id = bugs.component_id " .
FROM bugs
LEFT JOIN votes
USING (bug_id)
INNER JOIN components
ON components.id = bugs.component_id
INNER JOIN products
ON products.id = bugs.product_id
INNER JOIN classifications
ON classifications.id = products.classification_id
WHERE bugs.bug_id = ? " .
$dbh->sql_group_by('bugs.bug_id', 'alias, products.classification_id,
classifications.name, bugs.product_id, products.name, version,
rep_platform, op_sys, bug_status, resolution, priority,

Просмотреть файл

@ -112,9 +112,9 @@ my @base_columns =
Which database(s) is the data coming from?
Note: when adding tables to @base_tables, make sure to include the separator
(i.e. a comma or words like "LEFT OUTER JOIN") before the table name,
since tables take multiple separators based on the join type, and therefore
it is not possible to join them later using a single known separator.
(i.e. words like "LEFT OUTER JOIN") before the table name, since tables take
multiple separators based on the join type, and therefore it is not possible
to join them later using a single known separator.
B<Used by get, match, sqlify_criteria and perlify_record>
=back
@ -400,14 +400,16 @@ sub process {
# no longer valid.
my $flag_ids = $dbh->selectcol_arrayref(
"SELECT flags.id
FROM (flags INNER JOIN bugs ON flags.bug_id = bugs.bug_id)
LEFT OUTER JOIN flaginclusions i
ON (flags.type_id = i.type_id
FROM flags
INNER JOIN bugs
ON flags.bug_id = bugs.bug_id
LEFT JOIN flaginclusions AS i
ON flags.type_id = i.type_id
AND (bugs.product_id = i.product_id OR i.product_id IS NULL)
AND (bugs.component_id = i.component_id OR i.component_id IS NULL))
WHERE bugs.bug_id = ?
AND flags.is_active = 1
AND i.type_id IS NULL",
AND (bugs.component_id = i.component_id OR i.component_id IS NULL)
WHERE bugs.bug_id = ?
AND flags.is_active = 1
AND i.type_id IS NULL",
undef, $bug_id);
foreach my $flag_id (@$flag_ids) { clear($flag_id) }

Просмотреть файл

@ -101,9 +101,9 @@ my @base_columns =
Which database(s) is the data coming from?
Note: when adding tables to @base_tables, make sure to include the separator
(i.e. a comma or words like C<LEFT OUTER JOIN>) before the table name,
since tables take multiple separators based on the join type, and therefore
it is not possible to join them later using a single known separator.
(i.e. words like "LEFT OUTER JOIN") before the table name, since tables take
multiple separators based on the join type, and therefore it is not possible
to join them later using a single known separator.
B<Used by get, match, sqlify_criteria and perlify_record>
=back