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



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

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

#columns(table_name, name = nil) ⇒ Object



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

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



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

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

#create_database(name) ⇒ Object



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

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

#drop_database(name) ⇒ Object



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

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

#execute(sql, name = nil) ⇒ Object



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

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

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



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

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



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

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

#quote_string(s) ⇒ Object



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

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

#recreate_database(name) ⇒ Object



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

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

#rollback_db_transactionObject



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

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

#select_all(sql, name = nil) ⇒ Object



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

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

#select_one(sql, name = nil) ⇒ Object



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

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

#structure_dumpObject



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

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



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

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