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

almost same api set for all interface modules

Anton Lebedevich 13 лет назад
Родитель
Сommit
2d17a07c18
5 измененных файлов с 107 добавлено и 30 удалено
  1. 42 11
      src/apgsql.erl
  2. 42 10
      src/ipgsql.erl
  3. 21 7
      src/pgsql.erl
  4. 1 1
      test_src/pgsql_cast.erl
  5. 1 1
      test_src/pgsql_incremental.erl

+ 42 - 11
src/apgsql.erl

@@ -2,25 +2,33 @@
 
 -module(apgsql).
 
--export([start_link/0,
-         connect/5,
+-export([connect/2, connect/3, connect/4, connect/5,
          close/1,
          get_parameter/2,
          squery/2,
-         equery/3,
-         parse/4,
-         bind/4,
-         execute/4,
+         equery/2, equery/3,
+         parse/2, parse/3, parse/4,
+         describe/2, describe/3,
+         bind/3, bind/4,
+         execute/2, execute/3, execute/4,
          execute_batch/2,
-         describe/3,
-         close/3,
+         close/2, close/3,
          sync/1,
          cancel/1]).
 
+-include("pgsql.hrl").
+
 %% -- client interface --
 
-start_link() ->
-    pgsql_sock:start_link().
+connect(Host, Opts) ->
+    connect(Host, os:getenv("USER"), "", Opts).
+
+connect(Host, Username, Opts) ->
+    connect(Host, Username, "", Opts).
+
+connect(Host, Username, Password, Opts) ->
+    {ok, C} = pgsql_sock:start_link(),
+    connect(C, Host, Username, Password, Opts).
 
 connect(C, Host, Username, Password, Opts) ->
     cast(C, {connect, Host, Username, Password, Opts}).
@@ -34,27 +42,51 @@ get_parameter(C, Name) ->
 squery(C, Sql) ->
     cast(C, {squery, Sql}).
 
+equery(C, Sql) ->
+    equery(C, Sql, []).
+
 equery(C, Statement, Parameters) ->
     cast(C, {equery, Statement, Parameters}).
 
+parse(C, Sql) ->
+    parse(C, "", Sql, []).
+
+parse(C, Sql, Types) ->
+    parse(C, "", Sql, Types).
+
 parse(C, Name, Sql, Types) ->
     cast(C, {parse, Name, Sql, Types}).
 
+bind(C, Statement, Parameters) ->
+    bind(C, Statement, "", Parameters).
+
 bind(C, Statement, PortalName, Parameters) ->
     cast(C, {bind, Statement, PortalName, Parameters}).
 
+execute(C, S) ->
+    execute(C, S, "", 0).
+
+execute(C, S, N) ->
+    execute(C, S, "", N).
+
 execute(C, Statement, PortalName, MaxRows) ->
     cast(C, {execute, Statement, PortalName, MaxRows}).
 
 execute_batch(C, Batch) ->
     cast(C, {execute_batch, Batch}).
 
+describe(C, #statement{name = Name}) ->
+    describe(C, statement, Name).
+
 describe(C, statement, Name) ->
     cast(C, {describe_statement, Name});
 
 describe(C, portal, Name) ->
     cast(C, {describe_portal, Name}).
 
+close(C, #statement{name = Name}) ->
+    close(C, statement, Name).
+
 close(C, Type, Name) ->
     cast(C, {close, Type, Name}).
 
@@ -64,7 +96,6 @@ sync(C) ->
 cancel(C) ->
     pgsql_sock:cancel(C).
 
-
 %% -- internal functions --
 
 cast(C, Command) ->

+ 42 - 10
src/ipgsql.erl

@@ -2,25 +2,33 @@
 
 -module(ipgsql).
 
--export([start_link/0,
-         connect/5,
+-export([connect/2, connect/3, connect/4, connect/5,
          close/1,
          get_parameter/2,
          squery/2,
-         equery/3,
-         parse/4,
-         bind/4,
-         execute/4,
+         equery/2, equery/3,
+         parse/2, parse/3, parse/4,
+         describe/2, describe/3,
+         bind/3, bind/4,
+         execute/2, execute/3, execute/4,
          execute_batch/2,
-         describe/3,
-         close/3,
+         close/2, close/3,
          sync/1,
          cancel/1]).
 
+-include("pgsql.hrl").
+
 %% -- client interface --
 
-start_link() ->
-    pgsql_sock:start_link().
+connect(Host, Opts) ->
+    connect(Host, os:getenv("USER"), "", Opts).
+
+connect(Host, Username, Opts) ->
+    connect(Host, Username, "", Opts).
+
+connect(Host, Username, Password, Opts) ->
+    {ok, C} = pgsql_sock:start_link(),
+    connect(C, Host, Username, Password, Opts).
 
 connect(C, Host, Username, Password, Opts) ->
     incremental(C, {connect, Host, Username, Password, Opts}).
@@ -34,27 +42,51 @@ get_parameter(C, Name) ->
 squery(C, Sql) ->
     incremental(C, {squery, Sql}).
 
+equery(C, Sql) ->
+    equery(C, Sql, []).
+
 equery(C, Statement, Parameters) ->
     incremental(C, {equery, Statement, Parameters}).
 
+parse(C, Sql) ->
+    parse(C, "", Sql, []).
+
+parse(C, Sql, Types) ->
+    parse(C, "", Sql, Types).
+
 parse(C, Name, Sql, Types) ->
     incremental(C, {parse, Name, Sql, Types}).
 
+bind(C, Statement, Parameters) ->
+    bind(C, Statement, "", Parameters).
+
 bind(C, Statement, PortalName, Parameters) ->
     incremental(C, {bind, Statement, PortalName, Parameters}).
 
+execute(C, S) ->
+    execute(C, S, "", 0).
+
+execute(C, S, N) ->
+    execute(C, S, "", N).
+
 execute(C, Statement, PortalName, MaxRows) ->
     incremental(C, {execute, Statement, PortalName, MaxRows}).
 
 execute_batch(C, Batch) ->
     incremental(C, {execute_batch, Batch}).
 
+describe(C, #statement{name = Name}) ->
+    describe(C, statement, Name).
+
 describe(C, statement, Name) ->
     incremental(C, {describe_statement, Name});
 
 describe(C, portal, Name) ->
     incremental(C, {describe_portal, Name}).
 
+close(C, #statement{name = Name}) ->
+    close(C, statement, Name).
+
 close(C, Type, Name) ->
     incremental(C, {close, Type, Name}).
 

+ 21 - 7
src/pgsql.erl

@@ -3,13 +3,21 @@
 
 -module(pgsql).
 
--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, execute_batch/2]).
--export([close/2, close/3, sync/1]).
--export([with_transaction/2]).
--export([sync_on_error/2]).
+-export([connect/2, connect/3, connect/4, connect/5,
+         close/1,
+         get_parameter/2,
+         squery/2,
+         equery/2, equery/3,
+         parse/2, parse/3, parse/4,
+         describe/2, describe/3,
+         bind/3, bind/4,
+         execute/2, execute/3, execute/4,
+         execute_batch/2,
+         close/2, close/3,
+         sync/1,
+         cancel/1,
+         with_transaction/2,
+         sync_on_error/2]).
 
 -include("pgsql.hrl").
 
@@ -23,6 +31,9 @@ connect(Host, Username, Opts) ->
 
 connect(Host, Username, Password, Opts) ->
     {ok, C} = pgsql_sock:start_link(),
+    connect(C, Host, Username, Password, Opts).
+
+connect(C, Host, Username, Password, Opts) ->
     %% TODO connect timeout
     case gen_server:call(C,
                          {connect, Host, Username, Password, Opts},
@@ -111,6 +122,9 @@ close(C, Type, Name) ->
 sync(C) ->
     gen_server:call(C, sync).
 
+cancel(C) ->
+    pgsql_sock:cancel(C).
+
 %% misc helper functions
 with_transaction(C, F) ->
     try {ok, [], []} = squery(C, "BEGIN"),

+ 1 - 1
test_src/pgsql_cast.erl

@@ -24,7 +24,7 @@ connect(Host, Username, Opts) ->
     connect(Host, Username, "", Opts).
 
 connect(Host, Username, Password, Opts) ->
-    {ok, C} = apgsql:start_link(),
+    {ok, C} = pgsql_sock:start_link(),
     Ref = apgsql:connect(C, Host, Username, Password, Opts),
     %% TODO connect timeout
     receive

+ 1 - 1
test_src/pgsql_incremental.erl

@@ -23,7 +23,7 @@ connect(Host, Username, Opts) ->
     connect(Host, Username, "", Opts).
 
 connect(Host, Username, Password, Opts) ->
-    {ok, C} = ipgsql:start_link(),
+    {ok, C} = pgsql_sock:start_link(),
     Ref = ipgsql:connect(C, Host, Username, Password, Opts),
     receive
         {C, Ref, connected} ->