class MysqlWarmup::Index
Constants
- QUERY_TEMPLATE
Attributes
query_string[R]
Public Class Methods
new(table_name, column_name, column_type, column_key, non_index_field = nil)
click to toggle source
# File lib/mysql_warmup/index.rb, line 6 def initialize(table_name, column_name, column_type, column_key, non_index_field = nil) @table_name = table_name @column_name = column_name @column_type = column_type @column_key = column_key @query_string = build_query_string(@table_name, @column_name, @column_type, @column_key, non_index_field) end
Private Instance Methods
build_query_string(table_name, column_name, column_type, column_key, non_index_field = nil)
click to toggle source
# File lib/mysql_warmup/index.rb, line 17 def build_query_string(table_name, column_name, column_type, column_key, non_index_field = nil) if type_primary?(column_key) if non_index_field.nil? format_query('count(*)', "`#{table_name}`", '1') else field_name = "`#{table_name}`.`#{non_index_field}`" format_query('count(*)', "`#{table_name}`", "#{field_name} = 0 or #{field_name} = '0'") end elsif type_integer?(column_type) format_query('count(*)', "`#{table_name}`", "`#{table_name}`.`#{column_name}` LIKE '%0%'") elsif type_var_char?(column_type) format_query('count(*)', "`#{table_name}`", "`#{table_name}`.`#{column_name}` LIKE '%0%'") elsif type_blob?(column_type) format_query('count(*)', "`#{table_name}`", "`#{table_name}`.`#{column_name}` LIKE '%0%'") else format_query('count(*)', "`#{table_name}`", "`#{table_name}`.`#{column_name}` LIKE '%0%'") end end
format_query(*params)
click to toggle source
# File lib/mysql_warmup/index.rb, line 52 def format_query(*params) format(QUERY_TEMPLATE, *params) end
type_blob?(column_type)
click to toggle source
# File lib/mysql_warmup/index.rb, line 44 def type_blob?(column_type) !(column_type.downcase =~ /blob/).nil? end
type_integer?(column_type)
click to toggle source
# File lib/mysql_warmup/index.rb, line 40 def type_integer?(column_type) !(column_type.downcase =~ /int/).nil? end
type_primary?(column_key)
click to toggle source
# File lib/mysql_warmup/index.rb, line 36 def type_primary?(column_key) column_key.casecmp('PRI').zero? end
type_var_char?(column_type)
click to toggle source
# File lib/mysql_warmup/index.rb, line 48 def type_var_char?(column_type) !(column_type.downcase =~ /char|varchar|index/).nil? end