##// END OF EJS Templates
Don't join all associations by default (#24865)....
Jean-Philippe Lang -
r15839:aa354e627516
parent child
Show More
@@ -66,8 +66,7 class IssuesController < ApplicationController
66 @issue_count = @query.issue_count
66 @issue_count = @query.issue_count
67 @issue_pages = Paginator.new @issue_count, @limit, params['page']
67 @issue_pages = Paginator.new @issue_count, @limit, params['page']
68 @offset ||= @issue_pages.offset
68 @offset ||= @issue_pages.offset
69 @issues = @query.issues(:include => [:assigned_to, :tracker, :priority, :category, :fixed_version],
69 @issues = @query.issues(:order => sort_clause,
70 :order => sort_clause,
71 :offset => @offset,
70 :offset => @offset,
72 :limit => @limit)
71 :limit => @limit)
73 @issue_count_by_group = @query.issue_count_by_group
72 @issue_count_by_group = @query.issue_count_by_group
@@ -402,7 +401,7 class IssuesController < ApplicationController
402 sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria)
401 sort_init(@query.sort_criteria.empty? ? [['id', 'desc']] : @query.sort_criteria)
403 sort_update(@query.sortable_columns, 'issues_index_sort')
402 sort_update(@query.sortable_columns, 'issues_index_sort')
404 limit = 500
403 limit = 500
405 issue_ids = @query.issue_ids(:order => sort_clause, :limit => (limit + 1), :include => [:assigned_to, :tracker, :priority, :category, :fixed_version])
404 issue_ids = @query.issue_ids(:order => sort_clause, :limit => (limit + 1))
406 if (idx = issue_ids.index(@issue.id)) && idx < limit
405 if (idx = issue_ids.index(@issue.id)) && idx < limit
407 if issue_ids.size < 500
406 if issue_ids.size < 500
408 @issue_position = idx + 1
407 @issue_position = idx + 1
@@ -273,9 +273,9 class IssueQuery < Query
273 limit(options[:limit]).
273 limit(options[:limit]).
274 offset(options[:offset])
274 offset(options[:offset])
275
275
276 scope = scope.preload(:custom_values)
276 scope = scope.preload([:tracker, :priority, :author, :assigned_to, :fixed_version, :category] & columns.map(&:name))
277 if has_column?(:author)
277 if has_custom_field_column?
278 scope = scope.preload(:author)
278 scope = scope.preload(:custom_values)
279 end
279 end
280
280
281 issues = scope.to_a
281 issues = scope.to_a
@@ -513,6 +513,21 class IssueQuery < Query
513 if order_options.include?('authors')
513 if order_options.include?('authors')
514 joins << "LEFT OUTER JOIN #{User.table_name} authors ON authors.id = #{queried_table_name}.author_id"
514 joins << "LEFT OUTER JOIN #{User.table_name} authors ON authors.id = #{queried_table_name}.author_id"
515 end
515 end
516 if order_options.include?('users')
517 joins << "LEFT OUTER JOIN #{User.table_name} ON #{User.table_name}.id = #{queried_table_name}.assigned_to_id"
518 end
519 if order_options.include?('fixed_version')
520 joins << "LEFT OUTER JOIN #{Version.table_name} ON #{Version.table_name}.id = #{queried_table_name}.fixed_version_id"
521 end
522 if order_options.include?('category')
523 joins << "LEFT OUTER JOIN #{IssueCategory.table_name} ON #{IssueCategory.table_name}.id = #{queried_table_name}.category_id"
524 end
525 if order_options.include?('tracker')
526 joins << "LEFT OUTER JOIN #{Tracker.table_name} ON #{Tracker.table_name}.id = #{queried_table_name}.tracker_id"
527 end
528 if order_options.include?('enumeration')
529 joins << "LEFT OUTER JOIN #{IssuePriority.table_name} ON #{IssuePriority.table_name}.id = #{queried_table_name}.priority_id"
530 end
516 end
531 end
517
532
518 joins.any? ? joins.join(' ') : nil
533 joins.any? ? joins.join(' ') : nil
General Comments 0
You need to be logged in to leave comments. Login now