Sha256: 68b1991823257029e434b3435441fd1edb2a5d10b160364864b7b96b0149ef46
Contents?: true
Size: 1012 Bytes
Versions: 1
Compression:
Stored size: 1012 Bytes
Contents
module ActiveRecord module ConnectionAdapters class AbstractMysqlAdapter def subquery_for(key, select) subselect = select.clone subselect.projections = [key] # Materialize subquery by adding distinct # to work with MySQL 5.7.6 which sets optimizer_switch='derived_merge=on' subselect.distinct unless select.limit || select.offset || select.orders.any? # CPK if key.is_a?(Array) key_names = key.map(&:name).map {|key_name| Arel.sql(key_name)} Arel::SelectManager.new(subselect.as("__active_record_temp")).project(key_names) else key_name = quote_column_name(key.name) Arel::SelectManager.new(subselect.as("__active_record_temp")).project(Arel.sql(key_name)) end # CPK #subselect.project Arel.sql(key.name) # subselect.project Arel.sql(Array(key).map(&:name).join(', ')) # subselect.from subsubselect.as('__active_record_temp') end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
composite_primary_keys-11.0.0.rc2 | lib/composite_primary_keys/connection_adapters/abstract_mysql_adapter.rb |