Return MySQL error messages as binary.

This commit is contained in:
Jerome Sautret 2014-07-04 17:28:19 +02:00 committed by Christophe Romain
parent 26a4d91297
commit aba7150af1
1 changed files with 9 additions and 3 deletions

View File

@ -450,7 +450,7 @@ sql_query_internal(Query) ->
?DEBUG("MySQL, Send query~n~p~n", [Query]), ?DEBUG("MySQL, Send query~n~p~n", [Query]),
%%squery to be able to specify result_type = binary %%squery to be able to specify result_type = binary
%%[Query] because p1_mysql_conn expect query to be a list (elements can be binaries, or iolist) %%[Query] because p1_mysql_conn expect query to be a list (elements can be binaries, or iolist)
%% but doesn't accept just a binary %% but doesn't accept just a binary
R = mysql_to_odbc(p1_mysql_conn:squery(State#state.db_ref, R = mysql_to_odbc(p1_mysql_conn:squery(State#state.db_ref,
[Query], self(), [Query], self(),
[{timeout, (?TRANSACTION_TIMEOUT) - 1000}, [{timeout, (?TRANSACTION_TIMEOUT) - 1000},
@ -553,10 +553,16 @@ mysql_to_odbc({data, MySQLRes}) ->
mysql_item_to_odbc(p1_mysql:get_result_field_info(MySQLRes), mysql_item_to_odbc(p1_mysql:get_result_field_info(MySQLRes),
p1_mysql:get_result_rows(MySQLRes)); p1_mysql:get_result_rows(MySQLRes));
mysql_to_odbc({error, MySQLRes}) mysql_to_odbc({error, MySQLRes})
when is_binary(MySQLRes) -> when is_binary(MySQLRes) ->
{error, MySQLRes}; {error, MySQLRes};
mysql_to_odbc({error, MySQLRes})
when is_list(MySQLRes) ->
{error, list_to_binary(MySQLRes)};
mysql_to_odbc({error, MySQLRes}) -> mysql_to_odbc({error, MySQLRes}) ->
{error, p1_mysql:get_result_reason(MySQLRes)}. {error, p1_mysql:get_result_reason(MySQLRes)};
mysql_to_odbc(ok) ->
ok.
%% When tabular data is returned, convert it to the ODBC formalism %% When tabular data is returned, convert it to the ODBC formalism
mysql_item_to_odbc(Columns, Recs) -> mysql_item_to_odbc(Columns, Recs) ->