Skip to content

Commit

Permalink
Merge pull request #221 from onno-vos-dev/query-response-type-include…
Browse files Browse the repository at this point in the history
…-socket-errors

Response types for epgsql:equery/[2-4] and epgsql:squery/2 can include socket errors
  • Loading branch information
seriyps committed Mar 6, 2020
2 parents c965d6c + a5b526f commit bbdf62b
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 3 additions & 3 deletions src/epgsql.erl
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ set_notice_receiver(C, PidOrName) ->
get_cmd_status(C) ->
epgsql_sock:get_cmd_status(C).

-spec squery(connection(), sql_query()) -> epgsql_cmd_squery:response().
-spec squery(connection(), sql_query()) -> epgsql_cmd_squery:response() | epgsql_sock:error().
%% @doc runs simple `SqlQuery' via given `Connection'
%% @see epgsql_cmd_squery
squery(Connection, SqlQuery) ->
Expand All @@ -241,7 +241,7 @@ equery(C, Sql) ->
equery(C, Sql, []).

-spec equery(connection(), sql_query(), [bind_param()]) ->
epgsql_cmd_equery:response().
epgsql_cmd_equery:response() | epgsql_sock:error().
equery(C, Sql, Parameters) ->
equery(C, "", Sql, Parameters).

Expand All @@ -251,7 +251,7 @@ equery(C, Sql, Parameters) ->
%% @end
%% TODO add fast_equery command that doesn't need parsed statement
-spec equery(connection(), string(), sql_query(), [bind_param()]) ->
epgsql_cmd_equery:response().
epgsql_cmd_equery:response() | epgsql_sock:error().
equery(C, Name, Sql, Parameters) ->
case parse(C, Name, Sql, []) of
{ok, #statement{types = Types} = S} ->
Expand Down
4 changes: 3 additions & 1 deletion src/epgsql_sock.erl
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
get_parameter_internal/2,
get_replication_state/1, set_packet_handler/2]).

-export_type([transport/0, pg_sock/0]).
-export_type([transport/0, pg_sock/0, error/0]).

-include("epgsql.hrl").
-include("protocol.hrl").
Expand All @@ -73,6 +73,8 @@
-type tcp_socket() :: port(). %gen_tcp:socket() isn't exported prior to erl 18
-type repl_state() :: #repl{}.

-type error() :: {error, sync_required | closed | sock_closed | sock_error}.

-record(state, {mod :: gen_tcp | ssl | undefined,
sock :: tcp_socket() | ssl:sslsocket() | undefined,
data = <<>>,
Expand Down

0 comments on commit bbdf62b

Please sign in to comment.