Sha256: 1392935769e9f8a0aea5385121244a2618d1d38f0911187af291c7447b81d3c0
Contents?: true
Size: 833 Bytes
Versions: 1
Compression:
Stored size: 833 Bytes
Contents
module ArelMysqlIndexHint module ArelVisitorsMySQL extend ActiveSupport::Concern included do alias_method_chain :visit_Arel_Table, :mysql_index_hint end def visit_Arel_Table_with_mysql_index_hint(o, a) sql = visit_Arel_Table_without_mysql_index_hint(o, a) if o.index_hint append_index_hint(sql, o.index_hint) else sql end end private def append_index_hint(sql, index_hint) index_hint_sql = index_hint.map {|hint_type, index| index = Array(index).map {|i| quote_table_name(i) } hint_type = hint_type.to_s.upcase "#{hint_type} INDEX (#{index.join(', ')})" }.join(" ") if sql.is_a?(String) sql + " " + index_hint_sql else sql << " " + index_hint_sql sql end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
arel-mysql-index-hint-0.2.0 | lib/arel-mysql-index-hint/arel-visitors-mysql.rb |