@@ -14,8 +14,6 @@ def write_query?(sql) # :nodoc:
14
14
end
15
15
16
16
def raw_execute ( sql , name , async : false , allow_retry : false , materialize_transactions : true )
17
- result = nil
18
-
19
17
log ( sql , name , async : async ) do
20
18
with_raw_connection ( allow_retry : allow_retry , materialize_transactions : materialize_transactions ) do |conn |
21
19
result = if id_insert_table_name = query_requires_identity_insert? ( sql )
@@ -24,14 +22,12 @@ def raw_execute(sql, name, async: false, allow_retry: false, materialize_transac
24
22
internal_raw_execute ( sql , conn , perform_do : true )
25
23
end
26
24
verified!
25
+ result
27
26
end
28
27
end
29
-
30
- result
31
28
end
32
29
33
30
def internal_exec_query ( sql , name = "SQL" , binds = [ ] , prepare : false , async : false , allow_retry : false )
34
- result = nil
35
31
sql = transform_query ( sql )
36
32
37
33
check_if_write_query ( sql )
@@ -42,20 +38,21 @@ def internal_exec_query(sql, name = "SQL", binds = [], prepare: false, async: fa
42
38
sql = sp_executesql_sql ( sql , types , params , name )
43
39
end
44
40
45
- log ( sql , name , binds , async : async ) do
41
+ log ( sql , name , binds , async : async ) do | notification_payload |
46
42
with_raw_connection do |conn |
47
- if id_insert_table_name = query_requires_identity_insert? ( sql )
48
- with_identity_insert_enabled ( id_insert_table_name , conn ) do
49
- result = internal_exec_sql_query ( sql , conn )
50
- end
51
- else
52
- result = internal_exec_sql_query ( sql , conn )
53
- end
43
+ result = if id_insert_table_name = query_requires_identity_insert? ( sql )
44
+ with_identity_insert_enabled ( id_insert_table_name , conn ) do
45
+ internal_exec_sql_query ( sql , conn )
46
+ end
47
+ else
48
+ internal_exec_sql_query ( sql , conn )
49
+ end
50
+
54
51
verified!
52
+ notification_payload [ :row_count ] = result . count
53
+ result
55
54
end
56
55
end
57
-
58
- result
59
56
end
60
57
61
58
def internal_exec_sql_query ( sql , conn )
@@ -174,7 +171,7 @@ def execute_procedure(proc_name, *variables)
174
171
end . join ( ", " )
175
172
sql = "EXEC #{ proc_name } #{ vars } " . strip
176
173
177
- log ( sql , "Execute Procedure" ) do
174
+ log ( sql , "Execute Procedure" ) do | notification_payload |
178
175
with_raw_connection do |conn |
179
176
result = internal_raw_execute ( sql , conn )
180
177
verified!
@@ -185,10 +182,11 @@ def execute_procedure(proc_name, *variables)
185
182
yield ( r ) if block_given?
186
183
end
187
184
188
- result . each . map { |row | row . is_a? ( Hash ) ? row . with_indifferent_access : row }
185
+ result = result . each . map { |row | row . is_a? ( Hash ) ? row . with_indifferent_access : row }
186
+ notification_payload [ :row_count ] = result . count
187
+ result
189
188
end
190
189
end
191
-
192
190
end
193
191
194
192
def with_identity_insert_enabled ( table_name , conn )
0 commit comments