Class: ActiveRecord::ConnectionAdapters::MysqlAdapter

Inherits:
AbstractAdapter show all
Defined in:
lib/active_record/connection_adapters/mysql_adapter.rb

Overview

:nodoc:

Instance Method Summary collapse

Methods inherited from AbstractAdapter

#add_limit!, #initialize, #quote, #reset_runtime, #transaction

Constructor Details

This class inherits a constructor from ActiveRecord::ConnectionAdapters::AbstractAdapter

Instance Method Details

#begin_db_transactionObject



77
78
79
80
81
82
83
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 77

def begin_db_transaction
  begin
    execute "BEGIN"
  rescue Exception
    # Transactions aren't supported
  end
end

#columns(table_name, name = nil) ⇒ Object



51
52
53
54
55
56
57
58
59
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 51

def columns(table_name, name = nil)
  sql = "SHOW FIELDS FROM #{table_name}"
  result = nil
  log(sql, name, @connection) { |connection| result = connection.query(sql) }

  columns = []
  result.each { |field| columns << Column.new(field[0], field[4], field[1]) }
  columns
end

#commit_db_transactionObject



85
86
87
88
89
90
91
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 85

def commit_db_transaction
  begin
    execute "COMMIT"
  rescue Exception
    # Transactions aren't supported
  end
end

#create_database(name) ⇒ Object



120
121
122
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 120

def create_database(name)
  execute "CREATE DATABASE #{name}"
end

#drop_database(name) ⇒ Object



116
117
118
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 116

def drop_database(name)
  execute "DROP DATABASE IF EXISTS #{name}"
end

#execute(sql, name = nil) ⇒ Object



66
67
68
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 66

def execute(sql, name = nil)
  log(sql, name, @connection) { |connection| connection.query(sql) }
end

#insert(sql, name = nil, pk = nil, id_value = nil) ⇒ Object



61
62
63
64
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 61

def insert(sql, name = nil, pk = nil, id_value = nil)
  execute(sql, name = nil)
  return id_value || @connection.insert_id
end

#quote_column_name(name) ⇒ Object



101
102
103
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 101

def quote_column_name(name)
  return "`#{name}`"
end

#quote_string(s) ⇒ Object



124
125
126
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 124

def quote_string(s)
  Mysql::quote(s)
end

#recreate_database(name) ⇒ Object



111
112
113
114
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 111

def recreate_database(name)
  drop_database(name)
  create_database(name)
end

#rollback_db_transactionObject



93
94
95
96
97
98
99
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 93

def rollback_db_transaction
  begin
    execute "ROLLBACK"
  rescue Exception
    # Transactions aren't supported
  end
end

#select_all(sql, name = nil) ⇒ Object



42
43
44
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 42

def select_all(sql, name = nil)
  select(sql, name)
end

#select_one(sql, name = nil) ⇒ Object



46
47
48
49
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 46

def select_one(sql, name = nil)
  result = select(sql, name)
  result.nil? ? nil : result.first
end

#structure_dumpObject



105
106
107
108
109
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 105

def structure_dump
  select_all("SHOW TABLES").inject("") do |structure, table|
    structure += select_one("SHOW CREATE TABLE #{table.to_a.first.last}")["Create Table"] + ";\n\n"
  end
end

#update(sql, name = nil) ⇒ Object Also known as: delete



70
71
72
73
# File 'lib/active_record/connection_adapters/mysql_adapter.rb', line 70

def update(sql, name = nil)
  execute(sql, name)
  @connection.affected_rows
end