]> granicus.if.org Git - ejabberd/commitdiff
mod_mam_sql: Improve check for empty archive
authorHolger Weiss <holger@zedat.fu-berlin.de>
Thu, 21 Feb 2019 22:50:16 +0000 (23:50 +0100)
committerHolger Weiss <holger@zedat.fu-berlin.de>
Thu, 21 Feb 2019 22:50:16 +0000 (23:50 +0100)
Avoid counting the messages of an archive to check whether it's empty.

src/mod_mam_sql.erl

index 48112842c61d85e114529c98fc1f6dbff89b1427..dee2cd7c76ca1a381dd6e9e41c8d239fdb305fbf 100644 (file)
@@ -268,15 +268,13 @@ export(_Server) ->
 is_empty_for_user(LUser, LServer) ->
     case ejabberd_sql:sql_query(
           LServer,
-          ?SQL("select @(count(*))d from archive"
-                " where username=%(LUser)s and %(LServer)H")) of
-               {selected, [{Res}]} ->
-                       case Res of
-                               0 -> true;
-                               _ -> false
-                       end;
-               _ -> false
-       end.
+          ?SQL("select @(1)d from archive"
+               " where username=%(LUser)s and %(LServer)H limit 1")) of
+       {selected, [{1}]} ->
+           false;
+       _ ->
+           true
+    end.
 
 is_empty_for_room(LServer, LName, LHost) ->
     LUser = jid:encode({LName, LHost, <<>>}),