module ActiverecordMysqlSqlCache::Patches::Arel::Visitors::MySQL
Public Instance Methods
visit_Arel_Nodes_SelectCore_with_sql_cache(o, collector)
click to toggle source
# File lib/activerecord-mysql-sql-cache/patches/arel/visitors/mysql.rb, line 14 def visit_Arel_Nodes_SelectCore_with_sql_cache(o, collector) result = visit_Arel_Nodes_SelectCore_without_sql_cache(o, collector) case result when String distinct = ' DISTINCT ' select = 'SELECT ' if result =~ /^#{select}/ if idx = result.index(distinct) result.insert(idx + distinct.length, o.mysql_sql_cache.to_s) else result.insert(select.length, o.mysql_sql_cache.to_s) end end else # Arel 6.0+ if idx = result.value.index('DISTINCT') result.value.insert(idx + 1, o.mysql_sql_cache.to_s) else result.value.insert(1, o.mysql_sql_cache.to_s) end end result end