summaryrefslogtreecommitdiff
path: root/src/mod_mam_sql.erl
diff options
context:
space:
mode:
authorHolger Weiss <holger@zedat.fu-berlin.de>2019-02-21 23:50:16 +0100
committerHolger Weiss <holger@zedat.fu-berlin.de>2019-02-21 23:50:16 +0100
commitf63dcdb790232e95433f0b747fa3634e1ad4fe57 (patch)
tree903690aff8eed2793537f777ed636ba3667595f7 /src/mod_mam_sql.erl
parentmod_mam_mnesia: Fix check for empty archive (diff)
mod_mam_sql: Improve check for empty archive
Avoid counting the messages of an archive to check whether it's empty.
Diffstat (limited to 'src/mod_mam_sql.erl')
-rw-r--r--src/mod_mam_sql.erl16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/mod_mam_sql.erl b/src/mod_mam_sql.erl
index 48112842..dee2cd7c 100644
--- a/src/mod_mam_sql.erl
+++ b/src/mod_mam_sql.erl
@@ -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, <<>>}),