From 6a23c727aaa4ad1d0e9f390f64cdc73f86d86ed7 Mon Sep 17 00:00:00 2001 From: schreiber Date: Tue, 7 Sep 2010 13:52:01 +0200 Subject: [PATCH] Do not use extended ordering specifications for columns order by fragments can use postgresql operators, specify null behaviour, order desc|asc. These parts are removed. --- .../connection_adapters/postgresql_adapter.rb | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index d8d9937..014e0a3 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -890,7 +890,9 @@ module ActiveRecord # Construct a clean list of column names from the ORDER BY clause, removing # any ASC/DESC modifiers - order_columns = split_order_by_fragment_at_comma(order_by) + order_columns = split_order_by_fragment_at_comma(order_by).map{|col| + col.gsub(/ nulls (first|last)\s*$/i, "").gsub(/ using \w+\s*$/i, "").gsub(/ (desc|asc)\s*$/i, "") + } order_columns.delete_if &:blank? order_columns = order_columns.zip((0...order_columns.size).to_a).map { |s,i| "#{s} AS alias_#{i}" } -- 1.5.6.5