Просмотр исходного кода

execute_batch api emulation for tests

Anton Lebedevich 13 лет назад
Родитель
Сommit
d1a08fe08c
2 измененных файлов с 13 добавлено и 2 удалено
  1. 5 1
      test_src/pgsql_cast.erl
  2. 8 1
      test_src/pgsql_incremental.erl

+ 5 - 1
test_src/pgsql_cast.erl

@@ -8,7 +8,7 @@
 -export([connect/2, connect/3, connect/4, close/1]).
 -export([get_parameter/2, squery/2, equery/2, equery/3]).
 -export([parse/2, parse/3, parse/4, describe/2, describe/3]).
--export([bind/3, bind/4, execute/2, execute/3, execute/4]).
+-export([bind/3, bind/4, execute/2, execute/3, execute/4, execute_batch/2]).
 -export([close/2, close/3, sync/1]).
 -export([with_transaction/2]).
 -export([receive_result/2, sync_on_error/2]).
@@ -93,6 +93,10 @@ execute(C, S, PortalName, N) ->
     Ref = apgsql:execute(C, S, PortalName, N),
     receive_result(C, Ref).
 
+execute_batch(C, Batch) ->
+    Ref = apgsql:execute_batch(C, Batch),
+    receive_result(C, Ref).
+
 %% statement/portal functions
 
 describe(C, #statement{name = Name}) ->

+ 8 - 1
test_src/pgsql_incremental.erl

@@ -8,7 +8,7 @@
 -export([connect/2, connect/3, connect/4, close/1]).
 -export([get_parameter/2, squery/2, equery/2, equery/3]).
 -export([parse/2, parse/3, parse/4, describe/2, describe/3]).
--export([bind/3, bind/4, execute/2, execute/3, execute/4]).
+-export([bind/3, bind/4, execute/2, execute/3, execute/4, execute_batch/2]).
 -export([close/2, close/3, sync/1]).
 -export([with_transaction/2]).
 
@@ -93,6 +93,13 @@ execute(C, S, PortalName, N) ->
     Ref = ipgsql:execute(C, S, PortalName, N),
     receive_extended_result(C, Ref).
 
+execute_batch(C, Batch) ->
+    Ref = ipgsql:execute_batch(C, Batch),
+    case receive_results(C, Ref, []) of
+        [Result] -> Result;
+        Results  -> Results
+    end.
+
 %% statement/portal functions
 
 describe(C, #statement{name = Name}) ->