method
indexes
v4.2.1 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::SQLite3Adapter
indexes(table_name, name = nil)public
Returns an array of indexes for the given table.
# File activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb, line 402
def indexes(table_name, name = nil) #:nodoc:
exec_query("PRAGMA index_list(#{quote_table_name(table_name)})", 'SCHEMA').map do |row|
sql = SELECT sql FROM sqlite_master WHERE name=#{quote(row['name'])} AND type='index' UNION ALL SELECT sql FROM sqlite_temp_master WHERE name=#{quote(row['name'])} AND type='index'
index_sql = exec_query(sql).first['sql']
match = /\sWHERE\s+(.+)$/.match(index_sql)
where = match[1] if match
IndexDefinition.new(
table_name,
row['name'],
row['unique'] != 0,
exec_query("PRAGMA index_info('#{row['name']}')", "SCHEMA").map { |col|
col['name']
}, nil, nil, where)
end
end Related methods
- Instance methods
- _quote
- _type_cast
- active?
- add_column
- allowed_index_name_length
- begin_db_transaction
- change_column
- change_column_default
- change_column_null
- clear_cache!
- columns
- commit_db_transaction
- create
- delete_sql
- disconnect!
- encoding
- exec_delete
- exec_query
- exec_rollback_db_transaction
- exec_update
- execute
- explain
- indexes
- insert_sql
- last_inserted_id
- native_database_types
- primary_key
- quote_column_name
- quote_string
- quote_table_name_for_assignment
- quoted_date
- remove_column
- remove_index!
- rename_column
- rename_table
- requires_reloading?
- select_rows
- supports_ddl_transactions?
- supports_explain?
- supports_index_sort_order?
- supports_migrations?
- supports_partial_index?
- supports_primary_key?
- supports_savepoints?
- supports_statement_cache?
- supports_views?
- table_exists?
- tables
- update_sql
- valid_alter_table_type?
- Class methods
- new
- Protected methods
-
alter_table -
copy_table -
copy_table_contents -
copy_table_indexes -
initialize_type_map -
move_table -
sqlite_version -
table_structure -
translate_exception