mod_storage_sql2: Include user, host and store in id lookup
authorKim Alvefur <zash@zash.se>
Wed, 25 Dec 2013 14:28:55 +0000 (15:28 +0100)
committerKim Alvefur <zash@zash.se>
Wed, 25 Dec 2013 14:28:55 +0000 (15:28 +0100)
plugins/mod_storage_sql2.lua

index e03b1fd61fbf2cddf16e66dbf912a413ff338fb6..bec3529272030428b4194f1a1a11d50031b5258f 100644 (file)
@@ -256,14 +256,16 @@ local function archive_where(query, args, where)
        end
 end
 local function archive_where_id_range(query, args, where)
+       local args_len = #args
        -- Before or after specific item, exclusive
        if query.after then  -- keys better be unique!
-               where[#where+1] = "`sort_id` > (SELECT `sort_id` FROM `prosodyarchive` WHERE `key` = ? LIMIT 1)"
-               args[#args+1] = query.after
+               where[#where+1] = "`sort_id` > (SELECT `sort_id` FROM `prosodyarchive` WHERE `key` = ? AND `host` = ?`AND user` = ?`AND store` = ?  LIMIT 1)"
+               args[args_len+1], args[args_len+2], args[args_len+3], args[args_len+4] = query.after, args[1], args[2], args[3];
+               args_len = args_len + 4
        end
        if query.before then
-               where[#where+1] = "`sort_id` < (SELECT `sort_id` FROM `prosodyarchive` WHERE `key` = ? LIMIT 1)"
-               args[#args+1] = query.before
+               where[#where+1] = "`sort_id` < (SELECT `sort_id` FROM `prosodyarchive` WHERE `key` = ? AND `host` = ?`AND user` = ?`AND store` = ?  LIMIT 1)"
+               args[args_len+1], args[args_len+2], args[args_len+3], args[args_len+4] = query.before, args[1], args[2], args[3];
        end
 end