From 95da605cb96148df19828d5c9d7ca1edf348a82a Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Thu, 24 Nov 2022 16:04:27 +0700 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B8=D0=BD=D0=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/DbSearcher.js | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/server/core/DbSearcher.js b/server/core/DbSearcher.js index 2e8c0cb..4b7b8e1 100644 --- a/server/core/DbSearcher.js +++ b/server/core/DbSearcher.js @@ -779,34 +779,21 @@ class DbSearcher { return; //выберем всех кандидатов на удаление - //находим delCount минимальных по time rows = await db.select({ table: 'query_time', rawResult: true, where: ` - const res = Array(${db.esc(delCount)}).fill({time: Date.now()}); + const delCount = ${delCount}; + const rows = []; @unsafeIter(@all(), (r) => { - if (r.time >= res[${db.esc(delCount - 1)}].time) - return false; - - let ins = {id: r.id, time: r.time}; - - for (let i = 0; i < res.length; i++) { - if (!res[i].id || ins.time < res[i].time) { - const t = res[i]; - res[i] = ins; - ins = t; - } - - if (!ins.id) - break; - } - + rows.push(r); return false; }); - return res.filter(r => r.id).map(r => r.id); + rows.sort((a, b) => a.time - b.time); + + return rows.slice(0, delCount).map(r => r.id); ` });