Method: ActiveRecord::ConnectionAdapters::IBM_DB2_I5#columns_for_distinct

Defined in:
lib/active_record/connection_adapters/ibm_db_adapter.rb

#columns_for_distinct(columns, orders) ⇒ Object

T009: IBM DB requires the ORDER BY columns in the select list for distinct queries, and requires that the ORDER BY include the distinct column.



3227
3228
3229
3230
3231
3232
3233
3234
3235
# File 'lib/active_record/connection_adapters/ibm_db_adapter.rb', line 3227

def columns_for_distinct(columns, orders)
  order_columns = orders.map{ |s|
      # Convert Arel node to string
      s = s.to_sql unless s.is_a?(String)
      # Remove any ASC/DESC modifiers
      s.gsub(/\s+(ASC|DESC)\s*(NULLS\s+(FIRST|LAST)\s*)?/i, '')
    }.reject(&:blank?).map.with_index { |column, i| "#{column} AS alias_#{i}" }
  [columns, *order_columns].join(', ')
end