AbstractMysqlAdapter
CONNECTION MANAGEMENT ====================================
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 71 71: def active? 72: return false unless @connection 73: @connection.ping 74: end
Disconnects from the database if already connected. Otherwise, this method does nothing.
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 83 83: def disconnect! 84: unless @connection.nil? 85: @connection.close 86: @connection = nil 87: end 88: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 59 59: def error_number(exception) 60: exception.error_number if exception.respond_to?(:error_number) 61: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 237 237: def exec_delete(sql, name, binds) 238: execute to_sql(sql, binds), name 239: @connection.affected_rows 240: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 233 233: def exec_insert(sql, name, binds) 234: execute to_sql(sql, binds), name 235: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 214 214: def exec_query(sql, name = 'SQL', binds = []) 215: result = execute(sql, name) 216: ActiveRecord::Result.new(result.fields, result.to_a) 217: end
Executes the SQL statement in the context of this connection.
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 206 206: def execute(sql, name = nil) 207: # make sure we carry over any changes to ActiveRecord::Base.default_timezone that have been 208: # made since we established the connection 209: @connection.query_options[:database_timezone] = ActiveRecord::Base.default_timezone 210: 211: super 212: end
DATABASE STATEMENTS ======================================
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 97 97: def explain(arel, binds = []) 98: sql = "EXPLAIN #{to_sql(arel, binds.dup)}" 99: start = Time.now 100: result = exec_query(sql, 'EXPLAIN', binds) 101: elapsed = Time.now - start 102: 103: ExplainPrettyPrinter.new.pp(result, elapsed) 104: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 227 227: def insert_sql(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil) 228: super 229: id_value || @connection.last_id 230: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 243 243: def last_inserted_id(result) 244: @connection.last_id 245: end
QUOTING ==================================================
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 65 65: def quote_string(string) 66: @connection.escape(string) 67: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 76 76: def reconnect! 77: disconnect! 78: connect 79: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 90 90: def reset! 91: disconnect! 92: connect 93: end
Returns an array of record hashes with the column names as keys and column values as values.
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 223 223: def select(sql, name = nil, binds = []) 224: exec_query(sql, name).to_a 225: end
Returns an array of arrays containing the field values. Order is the same as that returned by columns.
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 201 201: def select_rows(sql, name = nil) 202: execute(sql, name).to_a 203: end
# File lib/active_record/connection_adapters/mysql2_adapter.rb, line 254 254: def configure_connection 255: @connection.query_options.merge!(:as => :array) 256: 257: # By default, MySQL 'where id is null' selects the last inserted id. 258: # Turn this off. http://dev.rubyonrails.org/ticket/6778 259: variable_assignments = ['SQL_AUTO_IS_NULL=0'] 260: encoding = @config[:encoding] 261: 262: # make sure we set the encoding 263: variable_assignments << "NAMES '#{encoding}'" if encoding 264: 265: # increase timeout so mysql server doesn't disconnect us 266: wait_timeout = @config[:wait_timeout] 267: wait_timeout = 2147483 unless wait_timeout.is_a?(Fixnum) 268: variable_assignments << "@@wait_timeout = #{wait_timeout}" 269: 270: execute("SET #{variable_assignments.join(', ')}", :skip_logging) 271: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.