Skip to content

Commit

Permalink
Merge branch 'unprepare' of git://github.com/bfrog/bank_mysql
Browse files Browse the repository at this point in the history
  • Loading branch information
essen committed Dec 22, 2012
2 parents 34c122b + 451f97d commit 4784848
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions src/bank_mysql.erl
Expand Up @@ -23,6 +23,7 @@
-export([fetch_all/1]).
-export([ping/1]).
-export([prepare/3]).
-export([unprepare/2]).
-export([sql_query/2]).

%% Flags for client capabilities.
Expand Down Expand Up @@ -245,6 +246,18 @@ prepare(Stmt, Query, State=#mysql_client{state=ready, stmts=StmtsList}) ->
Res
end.

%% @doc Delete a prepared statement.
-spec unprepare(any(), State)
-> {ok, State} when State::state().
unprepare(Stmt, State=#mysql_client{state=ready, stmts=StmtsList}) ->
case lists:keytake(Stmt, 1, StmtsList) of
{value, {Stmt, StmtHandler}, StmtsList0} ->
{ok, State2} = send_close(StmtHandler, new_query(State)),
{ok, State2#mysql_client{stmts=StmtsList0}};
false ->
{ok, State}
end.

%% @doc Execute the given SQL query.
-spec sql_query(string(), State)
-> {ok, non_neg_integer(), non_neg_integer(), State}
Expand Down Expand Up @@ -612,6 +625,10 @@ send_prepare(Query, State) ->
QueryBin = iolist_to_binary(Query),
send_command(?COM_STMT_PREPARE, QueryBin, State).

send_close(StmtHandler, State) ->
Bin = <<StmtHandler:32/little>>,
send_command(?COM_STMT_CLOSE, Bin, State).

send_query(Query, State) ->
QueryBin = iolist_to_binary(Query),
send_command(?COM_QUERY, QueryBin, State).
Expand Down

0 comments on commit 4784848

Please sign in to comment.