Use joins instead of sub-queries in group by/sort by when using custom fields (#12713).

Sub-queries in group by are not supported by SQLServer.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11102 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2013-01-03 12:28:50 +00:00
parent 049eaeb776
commit d82159bcf5
3 changed files with 26 additions and 22 deletions
+3 -9
View File
@@ -877,9 +877,7 @@ class QueryTest < ActiveSupport::TestCase
c = q.available_columns.find {|col| col.is_a?(QueryCustomFieldColumn) && col.custom_field.field_format == 'string' }
assert c
assert c.sortable
issues = Issue.includes([:assigned_to, :status, :tracker, :project, :priority]).where(
q.statement
).order("#{c.sortable} ASC").all
issues = q.issues(:order => "#{c.sortable} ASC")
values = issues.collect {|i| i.custom_value_for(c.custom_field).to_s}
assert !values.empty?
assert_equal values.sort, values
@@ -890,9 +888,7 @@ class QueryTest < ActiveSupport::TestCase
c = q.available_columns.find {|col| col.is_a?(QueryCustomFieldColumn) && col.custom_field.field_format == 'string' }
assert c
assert c.sortable
issues = Issue.includes([:assigned_to, :status, :tracker, :project, :priority]).where(
q.statement
).order("#{c.sortable} DESC").all
issues = q.issues(:order => "#{c.sortable} DESC")
values = issues.collect {|i| i.custom_value_for(c.custom_field).to_s}
assert !values.empty?
assert_equal values.sort.reverse, values
@@ -903,9 +899,7 @@ class QueryTest < ActiveSupport::TestCase
c = q.available_columns.find {|col| col.is_a?(QueryCustomFieldColumn) && col.custom_field.field_format == 'float' }
assert c
assert c.sortable
issues = Issue.includes([:assigned_to, :status, :tracker, :project, :priority]).where(
q.statement
).order("#{c.sortable} ASC").all
issues = q.issues(:order => "#{c.sortable} ASC")
values = issues.collect {|i| begin; Kernel.Float(i.custom_value_for(c.custom_field).to_s); rescue; nil; end}.compact
assert !values.empty?
assert_equal values.sort, values