module ActiveRecord::IndexHint::Model::ClassMethods

Public Instance Methods

force_index(*index_names) click to toggle source
# File lib/active_record/index_hint/model.rb, line 19
def force_index(*index_names)
  force_indexes = validate_index_lists(*index_names)
  from_index :force, *force_indexes
end
ignore_index(*index_names) click to toggle source
# File lib/active_record/index_hint/model.rb, line 14
def ignore_index(*index_names)
  ignore_indexes = validate_index_lists(*index_names)
  from_index :ignore, *ignore_indexes
end
use_index(*index_names) click to toggle source
# File lib/active_record/index_hint/model.rb, line 10
def use_index(*index_names)
  from_index :use, *index_names
end

Private Instance Methods

from_index(index_hint, *index_lists) click to toggle source
# File lib/active_record/index_hint/model.rb, line 32
def from_index(index_hint, *index_lists)
  from "#{quoted_table_name} #{index_hint.upcase} INDEX (#{index_lists.join ', '})"
end
validate_index_lists(*index_names) click to toggle source
# File lib/active_record/index_hint/model.rb, line 26
def validate_index_lists(*index_names)
  index_lists = index_names.compact
  raise ActiveRecord::IndexHint::StatementInvalid, "You have an error in your SQL syntax; Please, set index_names" if index_lists.blank?
  index_lists
end