X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FChangeTags.php;h=53f2955d443ea12e8671df10f84639495b940331;hb=0bc431e7ecd810549eaccf340d8f4caaf85c3f17;hp=3c734c4e69ba421e4655e12578b4c22bb4de0b41;hpb=29b86059736b251162e3ecad21f2f4a2d1bc0bbc;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/ChangeTags.php b/includes/ChangeTags.php index 3c734c4e69..53f2955d44 100644 --- a/includes/ChangeTags.php +++ b/includes/ChangeTags.php @@ -184,28 +184,27 @@ class ChangeTags { // Figure out which conditions can be done. if ( in_array( 'recentchanges', $tables ) ) { - $join_cond = 'rc_id'; + $join_cond = 'ct_rc_id=rc_id'; } elseif ( in_array( 'logging', $tables ) ) { - $join_cond = 'log_id'; + $join_cond = 'ct_log_id=log_id'; } elseif ( in_array( 'revision', $tables ) ) { - $join_cond = 'rev_id'; + $join_cond = 'ct_rev_id=rev_id'; + } elseif ( in_array( 'archive', $tables ) ) { + $join_cond = 'ct_rev_id=ar_rev_id'; } else { throw new MWException( 'Unable to determine appropriate JOIN condition for tagging.' ); } $fields['ts_tags'] = wfGetDB( DB_SLAVE )->buildGroupConcatField( - ',', 'change_tag', 'ct_tag', "ct_$join_cond=$join_cond" + ',', 'change_tag', 'ct_tag', $join_cond ); if ( $wgUseTagFilter && $filter_tag ) { // Somebody wants to filter on a tag. // Add an INNER JOIN on change_tag - // FORCE INDEX -- change_tags will almost ALWAYS be the correct query plan. - $options['USE INDEX'] = array( 'change_tag' => 'change_tag_tag_id' ); - unset( $options['FORCE INDEX'] ); $tables[] = 'change_tag'; - $join_conds['change_tag'] = array( 'INNER JOIN', "ct_$join_cond=$join_cond" ); + $join_conds['change_tag'] = array( 'INNER JOIN', $join_cond ); $conds['ct_tag'] = $filter_tag; } }