4
5
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
|
# File 'lib/sequel/extensions/activerecord_connection/mysql2.rb', line 4
def execute(sql, opts=OPTS)
original_query_options = activerecord_raw_connection.query_options.dup
activerecord_raw_connection.query_options.merge!(
as: :hash,
symbolize_keys: true,
cache_rows: false,
)
result = activerecord_connection.execute(sql)
if opts[:type] == :select
if block_given?
yield result
else
result
end
elsif block_given?
yield activerecord_raw_connection
end
rescue ActiveRecord::StatementInvalid => exception
if exception.cause.is_a?(::Mysql2::Error)
raise_error(exception.cause)
else
raise
end
ensure
activerecord_raw_connection.query_options.replace(original_query_options)
end
|