From 4b4865b6edd45d4eb9b409e5072231cf538abe1e Mon Sep 17 00:00:00 2001 From: Book Pauk Date: Wed, 16 Nov 2022 20:37:18 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D1=85=D0=BE=D0=B4=20?= =?UTF-8?q?=D0=BD=D0=B0=20Uint32Array?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/core/DbSearcher.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/server/core/DbSearcher.js b/server/core/DbSearcher.js index 78c5e70..98a6778 100644 --- a/server/core/DbSearcher.js +++ b/server/core/DbSearcher.js @@ -399,12 +399,12 @@ class DbSearcher { } } - tableIds = Array.from(tableIdsSet); + tableIds = new Uint32Array(tableIdsSet); } else {//bookIds пустой - критерии не заданы, значит берем все id из from const rows = await db.select({ table: from, rawResult: true, - where: `return Array.from(@all())` + where: `return new Uint32Array(@all())` }); tableIds = rows[0].rawResult; @@ -500,11 +500,13 @@ class DbSearcher { limit = (limit > maxLimit ? maxLimit : limit); const offset = (query.offset ? query.offset : 0); + const slice = ids.slice(offset, offset + limit); + //выборка найденных значений const found = await db.select({ table: from, map: `(r) => ({id: r.id, ${from}: r.name, bookCount: r.bookCount, bookDelCount: r.bookDelCount})`, - where: `@@id(${db.esc(ids.slice(offset, offset + limit))})` + where: `@@id(${db.esc(Array.from(slice))})` }); //для title восстановим books