Class: ActiveRecord::View::Introspection::MySQL

Inherits:
Abstract
  • Object
show all
Defined in:
lib/activerecord/view/introspection/mysql.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Abstract

#arel_cast, #arel_fn, #arel_quoted, #arel_quoted?, #default_connection, #definition_for, #inspect, #process_view_definition, #select_manager, #views

Instance Attribute Details

#schema_tableArel::Table (readonly)

Returns:

  • (Arel::Table)


11
12
13
# File 'lib/activerecord/view/introspection/mysql.rb', line 11

def schema_table
  @_schema_table ||= Arel::Table.new 'information_schema.views', self
end

Instance Method Details

#fetch_view_definition_query(view_name, **options) ⇒ Object



5
6
7
# File 'lib/activerecord/view/introspection/mysql.rb', line 5

def fetch_view_definition_query(view_name, **options)
  schema_table.project(schema_definition).where(in_current_database.and(view_name_eq(view_name)))
end

#in_current_databaseObject



23
24
25
# File 'lib/activerecord/view/introspection/mysql.rb', line 23

def in_current_database
  schema_table['table_schema'].eq(current_database)
end

#schema_definitionObject



15
16
17
# File 'lib/activerecord/view/introspection/mysql.rb', line 15

def schema_definition
  schema_table['view_definition']
end

#view_name_eq(name) ⇒ Object



19
20
21
# File 'lib/activerecord/view/introspection/mysql.rb', line 19

def view_name_eq(name)
  schema_table['table_name'].eq(name)
end