Class: RuboCop::Cop::Isucon::Mysql2::WhereWithoutIndex

Inherits:
Base
  • Object
show all
Includes:
RuboCop::Cop::Isucon::Mixin::Mysql2XqueryMethods, RuboCop::Cop::Isucon::Mixin::WhereWithoutIndexMethods
Defined in:
lib/rubocop/cop/isucon/mysql2/where_without_index.rb

Overview

Note:

If Database isn't configured, this cop's feature (offense detection and auto-correct) will not be available.

Check for WHERE without index

Examples:

# bad (user_id is not indexed)
db.xquery('SELECT id, title FROM articles WHERE user_id = ?', user_id)

# good (user_id is indexed)
db.xquery('SELECT id, title FROM articles WHERE user_id = ?', user_id)

# good (id is primary key)
db.xquery('SELECT id, title FROM articles WHERE id = ?', id)

Constant Summary collapse

MSG =
"This where clause doesn't seem to have an index. " \
"(e.g. `ALTER TABLE %<table_name>s ADD INDEX index_%<column_name>s (%<column_name>s)`)"

Constants included from RuboCop::Cop::Isucon::Mixin::Mysql2XqueryMethods

RuboCop::Cop::Isucon::Mixin::Mysql2XqueryMethods::NON_STRING_WARNING_MSG

Method Summary

Methods included from RuboCop::Cop::Isucon::Mixin::WhereWithoutIndexMethods

#on_send

Methods included from RuboCop::Cop::Isucon::Mixin::DatabaseMethods

#connection, #enabled_database?, #find_table_name_from_column_name

Methods included from RuboCop::Cop::Isucon::Mixin::Mysql2XqueryMethods

#find_xquery, #with_db_query

Methods included from RuboCop::Cop::Isucon::Mixin::OffenceLocationMethods

#offense_location