]> granicus.if.org Git - ejabberd/commitdiff
Sqlite doesn't recognize concat() so use || on it instead
authorPaweł Chmielowski <pchmielowski@process-one.net>
Tue, 30 Apr 2019 16:33:12 +0000 (18:33 +0200)
committerPaweł Chmielowski <pchmielowski@process-one.net>
Tue, 30 Apr 2019 16:33:12 +0000 (18:33 +0200)
src/mod_mam_sql.erl

index 45603565900ff51e73395e13aa7ba0b7fed57a9c..5379a055ad946c0dbc0cbfb440f757029fcb59de 100644 (file)
@@ -425,10 +425,16 @@ make_sql_query(User, LServer, MAMQuery, RSM, ExtraUsernames) ->
                                    [<<" username in (">>, str:join(EscUsers, <<",">>), <<")">>]};
                               subscribers_table ->
                                   SJid = Escape(jid:encode({User, LServer, <<>>})),
+                                  RoomName = case ODBCType of
+                                                 sqlite ->
+                                                     <<"room || '@' || host">>;
+                                                 _ ->
+                                                     <<"concat(room, '@', host)">>
+                                             end,
                                   {<<" username,">>,
                                    [<<" (username = '">>, SUser, <<"'">>,
-                                       <<" or username in (select concat(room, '@', host) ",
-                                         "from muc_room_subscribers where jid='">>, SJid, <<"'">>, HostMatch, <<"))">>]};
+                                       <<" or username in (select ">>, RoomName,
+                                         <<" from muc_room_subscribers where jid='">>, SJid, <<"'">>, HostMatch, <<"))">>]};
                               _ ->
                                   {<<>>, [<<" username='">>, SUser, <<"'">>]}
                           end,