Module: Sequel::ActiveRecordConnection::Mysql2

Defined in:
lib/sequel/extensions/activerecord_connection/mysql2.rb

Instance Method Summary collapse

Instance Method Details

#synchronize ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/sequel/extensions/activerecord_connection/mysql2.rb', line 6

def synchronize(*)
  super do |conn|
    if conn.instance_variable_defined?(:@sequel_default_query_options)
      return yield(conn)
    end

    # required for prepared statements
    conn.instance_variable_set(:@sequel_default_query_options, conn.query_options.dup)
    Utils.add_prepared_statements_cache(conn)

    conn.query_options.merge!(as: :hash, symbolize_keys: true, cache_rows: false)

    begin
      yield conn
    ensure
      conn.query_options.replace(conn.remove_instance_variable(:@sequel_default_query_options))
    end
  end
end