@@ -324,23 +324,36 @@ defmodule MyXQL.Connection do
324
324
defp result ( { :ok , resultsets } , query , state ) when is_list ( resultsets ) do
325
325
{ results , status_flags } =
326
326
Enum . reduce ( resultsets , { [ ] , nil } , fn resultset , { results , newest_status_flags } ->
327
- resultset (
328
- column_defs: column_defs ,
329
- num_rows: num_rows ,
330
- rows: rows ,
331
- status_flags: status_flags ,
332
- num_warnings: num_warnings
333
- ) = resultset
334
-
335
- columns = Enum . map ( column_defs , & elem ( & 1 , 1 ) )
336
-
337
- result = % Result {
338
- connection_id: state . client . connection_id ,
339
- columns: columns ,
340
- num_rows: num_rows ,
341
- rows: rows ,
342
- num_warnings: num_warnings
343
- }
327
+ { result , status_flags } =
328
+ case resultset do
329
+ resultset (
330
+ column_defs: column_defs ,
331
+ num_rows: num_rows ,
332
+ rows: rows ,
333
+ status_flags: status_flags ,
334
+ num_warnings: num_warnings
335
+ ) ->
336
+ { % Result {
337
+ connection_id: state . client . connection_id ,
338
+ columns: Enum . map ( column_defs , & elem ( & 1 , 1 ) ) ,
339
+ num_rows: num_rows ,
340
+ rows: rows ,
341
+ num_warnings: num_warnings
342
+ } , status_flags }
343
+
344
+ ok_packet (
345
+ last_insert_id: last_insert_id ,
346
+ affected_rows: affected_rows ,
347
+ status_flags: status_flags ,
348
+ num_warnings: num_warnings
349
+ ) ->
350
+ { % Result {
351
+ connection_id: state . client . connection_id ,
352
+ last_insert_id: last_insert_id ,
353
+ num_rows: affected_rows ,
354
+ num_warnings: num_warnings
355
+ } , status_flags }
356
+ end
344
357
345
358
# Keep status flags from the last query. The resultsets
346
359
# are given to this function in reverse order, so it is the first one.
0 commit comments