1234567891011121314151617181920212223242526272829303132333435363738 |
- %% > Close
- %% < CloseComplete
- -module(epgsql_cmd_close).
- -behaviour(epgsql_command).
- -export([init/1, execute/2, handle_message/4]).
- -export_type([response/0]).
- -type response() :: ok | {error, epgsql:query_error()}.
- -include("epgsql.hrl").
- -include("protocol.hrl").
- -record(close,
- {type :: statement | portal,
- name :: iodata()}).
- init({Type, Name}) ->
- #close{type = Type, name = Name}.
- execute(Sock, #close{type = Type, name = Name} = St) ->
- Type2 = case Type of
- statement -> ?PREPARED_STATEMENT;
- portal -> ?PORTAL
- end,
- epgsql_sock:send_multi(
- Sock,
- [
- {?CLOSE, [Type2, Name, 0]},
- {?FLUSH, []}
- ]),
- {ok, Sock, St}.
- handle_message(?CLOSE_COMPLETE, <<>>, Sock, _St) ->
- {finish, ok, ok, Sock};
- handle_message(?ERROR, Error, _Sock, _State) ->
- {sync_required, {error, Error}};
- handle_message(_, _, _, _) ->
- unknown.
|