From 1b5a9c1a1fa44da533cf0f0ac8c7756e7a903095 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Thu, 22 Feb 2024 16:12:04 +0100 Subject: [PATCH] Fix dialyzer warnings in ejabberd_sql in R27 --- src/ejabberd_sql.erl | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ejabberd_sql.erl b/src/ejabberd_sql.erl index 8c192a784..7d2766459 100644 --- a/src/ejabberd_sql.erl +++ b/src/ejabberd_sql.erl @@ -72,7 +72,7 @@ -include("ejabberd_stacktrace.hrl"). -record(state, - {db_ref :: undefined | pid(), + {db_ref :: undefined | pid() | odbc:connection_reference(), db_type = odbc :: pgsql | mysql | sqlite | odbc | mssql, db_version :: undefined | non_neg_integer() | {non_neg_integer(), atom(), non_neg_integer()}, reconnect_count = 0 :: non_neg_integer(), @@ -1122,14 +1122,18 @@ mysql_to_odbc(ok) -> mysql_item_to_odbc(Columns, Recs) -> {selected, [element(2, Column) || Column <- Columns], Recs}. -to_odbc({selected, Columns, Recs}) -> - Rows = [lists:map( - fun(I) when is_integer(I) -> - integer_to_binary(I); - (B) -> - B - end, Row) || Row <- Recs], - {selected, [list_to_binary(C) || C <- Columns], Rows}; +to_odbc({selected, Columns, Rows}) -> + Rows2 = lists:map( + fun(Row) -> + Row2 = if is_tuple(Row) -> tuple_to_list(Row); + is_list(Row) -> Row + end, + lists:map( + fun(I) when is_integer(I) -> integer_to_binary(I); + (B) -> B + end, Row2) + end, Rows), + {selected, [list_to_binary(C) || C <- Columns], Rows2}; to_odbc({error, Reason}) when is_list(Reason) -> {error, list_to_binary(Reason)}; to_odbc(Res) ->