diff --git a/src/pgpool.erl b/src/pgpool.erl index 39336b8..66ab860 100644 --- a/src/pgpool.erl +++ b/src/pgpool.erl @@ -52,35 +52,38 @@ stop() -> ok = application:stop(pgpool). -spec squery(DatabaseName :: atom(), Sql :: string() | iodata()) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. squery(DatabaseName, Sql) -> pgpool_worker:squery(DatabaseName, Sql). -spec squery(DatabaseName :: atom(), Sql :: string() | iodata(), Options :: [pgpool_query_option()]) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. squery(DatabaseName, Sql, Options) -> pgpool_worker:squery(DatabaseName, Sql, Options). --spec equery(DatabaseName :: atom(), Statement :: string(), Params :: list()) -> any(). +-spec equery(DatabaseName :: atom(), Statement :: string(), Params :: list()) -> + epgsql_cmd_prepared_query:response() + | {error, no_connection | no_available_connections}. equery(DatabaseName, Statement, Params) -> pgpool_worker:equery(DatabaseName, Statement, Params). -spec equery(DatabaseName :: atom(), Statement :: string(), Params :: list(), Options :: [pgpool_query_option()]) -> - any() | {error, no_available_connections}. + epgsql_cmd_prepared_query:response() + | {error, no_connection | no_available_connections}. equery(DatabaseName, Statement, Params, Options) -> pgpool_worker:equery(DatabaseName, Statement, Params, Options). -spec batch(DatabaseName :: atom(), [{Statement :: string(), Params :: list()}]) -> - [{ok, Count :: non_neg_integer()} | {ok, Count :: non_neg_integer(), Rows :: any()}]. + [epgsql_cmd_prepared_query:response()] + | {error, no_connection | no_available_connections}. batch(DatabaseName, StatementsWithParams) -> pgpool_worker:batch(DatabaseName, StatementsWithParams). -spec batch(DatabaseName :: atom(), [{Statement :: string(), Params :: list()}], Options :: [pgpool_query_option()]) -> - [{ok, Count :: non_neg_integer()} | {ok, Count :: non_neg_integer(), Rows :: any()}] | {error, no_available_connections}. + [epgsql_cmd_prepared_query:response()] + | {error, no_connection | no_available_connections}. batch(DatabaseName, StatementsWithParams, Options) -> pgpool_worker:batch(DatabaseName, StatementsWithParams, Options). diff --git a/src/pgpool_worker.erl b/src/pgpool_worker.erl index a99fac8..dcd0b50 100644 --- a/src/pgpool_worker.erl +++ b/src/pgpool_worker.erl @@ -63,41 +63,37 @@ start_link(Args) -> gen_server:start_link(?MODULE, Args, []). -spec squery(DatabaseName :: atom(), Sql :: string() | iodata()) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. squery(DatabaseName, Sql) -> squery(DatabaseName, Sql, []). -spec squery(DatabaseName :: atom(), Sql :: string() | iodata(), Options :: [pgpool_query_option()]) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. squery(DatabaseName, Sql, Options) -> transaction(DatabaseName, {squery, Sql}, Options). -spec equery(DatabaseName :: atom(), Statement :: string(), Params :: list()) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. equery(DatabaseName, Statement, Params) -> equery(DatabaseName, Statement, Params, []). -spec equery(DatabaseName :: atom(), Statement :: string(), Params :: list(), Options :: [pgpool_query_option()]) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. equery(DatabaseName, Statement, Params, Options) -> transaction(DatabaseName, {equery, Statement, Params}, Options). -spec batch(DatabaseName :: atom(), [{Statement :: string(), Params :: list()}]) -> - [{ok, Count :: non_neg_integer()} | {ok, Count :: non_neg_integer(), Rows :: any()}] + [epgsql_cmd_prepared_query:response()] | {error, no_connection | no_available_connections}. batch(DatabaseName, StatementsWithParams) -> batch(DatabaseName, StatementsWithParams, []). -spec batch(DatabaseName :: atom(), [{Statement :: string(), Params :: list()}], Options :: [pgpool_query_option()]) -> - [{ok, Count :: non_neg_integer()} | {ok, Count :: non_neg_integer(), Rows :: any()}] + [epgsql_cmd_prepared_query:response()] | {error, no_connection | no_available_connections}. batch(DatabaseName, StatementsWithParams, Options) -> transaction(DatabaseName, {batch, StatementsWithParams}, Options). @@ -295,9 +291,7 @@ prepare_or_get_statement(Statement, #state{ | {batch, [{Statement :: string(), Params :: list()}]}, Options :: [pgpool_query_option()] ) -> - {ok, Count :: non_neg_integer()} - | {ok, Count :: non_neg_integer(), Rows :: any()} - | [{ok, Count :: non_neg_integer()} | {ok, Count :: non_neg_integer(), Rows :: any()}] + epgsql_cmd_prepared_query:response() | {error, no_connection | no_available_connections}. transaction(DatabaseName, Message, Options) -> Block = not lists:member(no_wait, Options),