Browse Source

Test for epgsql:prepared_query/3 taking `#statement{}` as input

Sergey Prokhorov 4 years ago
parent
commit
e49af1581a
3 changed files with 16 additions and 10 deletions
  1. 4 2
      test/epgsql_SUITE.erl
  2. 6 4
      test/epgsql_cast.erl
  3. 6 4
      test/epgsql_incremental.erl

+ 4 - 2
test/epgsql_SUITE.erl

@@ -439,11 +439,13 @@ connect_to_closed_port(Config) ->
 prepared_query(Config) ->
 prepared_query(Config) ->
     Module = ?config(module, Config),
     Module = ?config(module, Config),
     epgsql_ct:with_connection(Config, fun(C) ->
     epgsql_ct:with_connection(Config, fun(C) ->
-        {ok, _} = Module:parse(C, "inc", "select $1+1", []),
+        {ok, Stmt} = Module:parse(C, "inc", "select $1+1", []),
         {ok, Cols, [{5}]} = Module:prepared_query(C, "inc", [4]),
         {ok, Cols, [{5}]} = Module:prepared_query(C, "inc", [4]),
         {ok, Cols, [{2}]} = Module:prepared_query(C, "inc", [1]),
         {ok, Cols, [{2}]} = Module:prepared_query(C, "inc", [1]),
         {ok, Cols, [{23}]} = Module:prepared_query(C, "inc", [22]),
         {ok, Cols, [{23}]} = Module:prepared_query(C, "inc", [22]),
-        {error, _} = Module:prepared_query(C, "non_existent_query", [4])
+        {ok, Cols, [{34}]} = Module:prepared_query(C, Stmt, [33]),
+        {error, #error{codename = invalid_sql_statement_name}} =
+            Module:prepared_query(C, "non_existent_query", [4])
     end).
     end).
 
 
 select(Config) ->
 select(Config) ->

+ 6 - 4
test/epgsql_cast.erl

@@ -76,12 +76,14 @@ equery(C, Sql, Parameters) ->
             Error
             Error
     end.
     end.
 
 
+prepared_query(C, #statement{types = Types} = Stmt, Parameters) ->
+    TypedParameters = lists:zip(Types, Parameters),
+    Ref = epgsqla:prepared_query(C, Stmt, TypedParameters),
+    receive_result(C, Ref);
 prepared_query(C, Name, Parameters) ->
 prepared_query(C, Name, Parameters) ->
     case describe(C, statement, Name) of
     case describe(C, statement, Name) of
-        {ok, #statement{types = Types} = S} ->
-            Typed_Parameters = lists:zip(Types, Parameters),
-            Ref = epgsqla:prepared_query(C, S, Typed_Parameters),
-            receive_result(C, Ref);
+        {ok, S} ->
+            prepared_query(C, S, Parameters);
         Error ->
         Error ->
             Error
             Error
     end.
     end.

+ 6 - 4
test/epgsql_incremental.erl

@@ -76,12 +76,14 @@ equery(C, Sql, Parameters) ->
             Error
             Error
     end.
     end.
 
 
+prepared_query(C, #statement{types = Types} = Stmt, Parameters) ->
+    TypedParameters = lists:zip(Types, Parameters),
+    Ref = epgsqli:prepared_query(C, Stmt, TypedParameters),
+    receive_result(C, Ref, undefined);
 prepared_query(C, Name, Parameters) ->
 prepared_query(C, Name, Parameters) ->
     case describe(C, statement, Name) of
     case describe(C, statement, Name) of
-        {ok, #statement{types = Types} = S} ->
-            Typed_Parameters = lists:zip(Types, Parameters),
-            Ref = epgsqli:prepared_query(C, S, Typed_Parameters),
-            receive_result(C, Ref, undefined);
+        {ok, S} ->
+            prepared_query(C, S, Parameters);
         Error ->
         Error ->
             Error
             Error
     end.
     end.