aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorBen Woosley <ben.woosley@gmail.com>2013-05-10 11:37:58 +0200
committerBen Woosley <ben.woosley@gmail.com>2013-05-10 17:45:38 +0200
commitec75ff34517c98d8feb6ad81ae79c44e611b92e7 (patch)
tree0ff7a803fdd4863ddc10dfa7c1175535cd93565e /activerecord/lib/active_record
parent32a5cad1e46027cf8234cdb8d556f307b86d4c17 (diff)
downloadrails-ec75ff34517c98d8feb6ad81ae79c44e611b92e7.tar.gz
rails-ec75ff34517c98d8feb6ad81ae79c44e611b92e7.tar.bz2
rails-ec75ff34517c98d8feb6ad81ae79c44e611b92e7.zip
Reject blank order_values within #columns_for_distinct, as the orders aren't used at all on non-postgres adapters.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb2
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
index 8feee23df0..a651b6c32e 100644
--- a/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
@@ -470,7 +470,7 @@ module ActiveRecord
# PostgreSQL requires the ORDER BY columns in the select list for distinct queries, and
# requires that the ORDER BY include the distinct column.
def columns_for_distinct(columns, orders) #:nodoc:
- order_columns = orders.map{ |s|
+ order_columns = orders.reject(&:blank?).map{ |s|
# Convert Arel node to string
s = s.to_sql unless s.is_a?(String)
# Remove any ASC/DESC modifiers
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index ff825e52c1..a51db614cd 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -244,8 +244,8 @@ module ActiveRecord
end
def construct_limited_ids_condition(relation)
- orders = relation.order_values.map { |val| val.presence }.compact
- values = @klass.connection.columns_for_distinct("#{quoted_table_name}.#{quoted_primary_key}", orders)
+ values = @klass.connection.columns_for_distinct(
+ "#{quoted_table_name}.#{quoted_primary_key}", relation.order_values)
relation = relation.dup.select(values).distinct!