method
indexes
v5.0.0.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 322
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
- active?
- add_column
- allowed_index_name_length
- arel_visitor
- begin_db_transaction
- change_column
- change_column_default
- change_column_null
- clear_cache!
- columns
- commit_db_transaction
- data_source_exists?
- data_sources
- disconnect!
- encoding
- exec_delete
- exec_query
- exec_rollback_db_transaction
- exec_update
- execute
- explain
- indexes
- last_inserted_id
- native_database_types
- primary_keys
- remove_column
- remove_index
- rename_column
- rename_table
- requires_reloading?
- schema_creation
- supports_datetime_with_precision?
- supports_ddl_transactions?
- supports_explain?
- supports_index_sort_order?
- supports_migrations?
- supports_multi_insert?
- supports_partial_index?
- supports_primary_key?
- supports_savepoints?
- supports_statement_cache?
- supports_views?
- table_exists?
- tables
- valid_alter_table_type?
- valid_type?
- view_exists?
- views
- Class methods
- new
- Protected methods
-
alter_table -
copy_table -
copy_table_contents -
copy_table_indexes -
move_table -
sqlite_version -
table_structure -
translate_exception - Private methods
-
table_structure_with_collation