Class: ActiveRecord::ConnectionAdapters::MysqlAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/connection_adapters/mysql_adapter_flags.rb

Instance Method Summary collapse

Constructor Details

#initialize(connection, logger, connection_options, config) ⇒ MysqlAdapter

Returns a new instance of MysqlAdapter.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/active_record/connection_adapters/mysql_adapter_flags.rb', line 6

def initialize(connection, logger, connection_options, config)
  super(connection, logger)
  @connection_options, @config = connection_options, config
  @quoted_column_names, @quoted_table_names = {}, {}

  # allow mysql flags to be set in the database.yml
  # development:
  #   adapter: mysql
  #   username: "dbuser"
  #   password: "secert"
  #   host: localhost
  #   database: test
  #   flags: "CLIENT_COMPRESS"
  unless config[:flags].blank?

    # append nil's until we get 7 options
    # real_connect(host,user,password,db,port,socket,flags)
    while(@connection_options.length<7) do; @connection_options << nil; end

    previous_flags = @connection_options[-1].to_i
    flag_strings = config[:flags].split(",").map{|f| f.to_s.strip.upcase}
    flag_vals = flag_strings.collect{|f| Mysql.const_defined?(f) ? Mysql.const_get(f) : nil}.compact
    flags = flag_vals.inject(previous_flags){|val,i| val|i}
    
    @connection_options[-1] = flags
    # puts "MySQL Options: #{@connection_options.inspect}"
  end

  connect
end

Instance Method Details

#session_statusObject




38
39
40
41
42
# File 'lib/active_record/connection_adapters/mysql_adapter_flags.rb', line 38

def session_status
  settings = {}
  execute("show status").each{|x| settings[x[0].to_s.downcase.to_sym] = x[1]}
  settings
end