Method: ActiveRecord::ConnectionAdapters::SQLite3Adapter#virtual_tables

Defined in:
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb

#virtual_tablesObject

Returns a list of defined virtual tables



292
293
294
295
296
297
298
299
300
301
302
# File 'activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb', line 292

def virtual_tables
  query = <<~SQL
    SELECT name, sql FROM sqlite_master WHERE sql LIKE 'CREATE VIRTUAL %';
  SQL

  exec_query(query, "SCHEMA").cast_values.each_with_object({}) do |row, memo|
    table_name, sql = row[0], row[1]
    _, module_name, arguments = sql.match(VIRTUAL_TABLE_REGEX).to_a
    memo[table_name] = [module_name, arguments]
  end.to_a
end