Sfoglia il codice sorgente

Адаптация к jembadb 5.0

Book Pauk 2 anni fa
parent
commit
46829a9b08
1 ha cambiato i file con 10 aggiunte e 10 eliminazioni
  1. 10 10
      server/core/DbSearcher.js

+ 10 - 10
server/core/DbSearcher.js

@@ -44,7 +44,7 @@ class DbSearcher {
             where = `@@indexIter('value', (v) => {                    
                 const enru = new Set(${db.esc(enruArr)});
                 return !v || (!enru.has(v[0].toLowerCase()) && v.indexOf(${db.esc(a)}) >= 0);
-            });`;
+            })`;
         } else {
             where = `@@dirtyIndexLR('value', ${db.esc(a)}, ${db.esc(a + maxUtf8Char)})`;
         }
@@ -64,22 +64,22 @@ class DbSearcher {
 
             const authorRows = await db.select({
                 table: 'author',
-                dirtyIdsOnly: true,
-                where
+                rawResult: true,
+                where: `return Array.from(${where.substring(1)})`,
             });
 
-            for (const row of authorRows)
-                authorIds.push(row.id);
+            if (authorRows.length)
+                authorIds = authorRows[0].rawResult;
         } else {//все авторы
             if (!this.searchCache.authorIdsAll) {
                 const authorRows = await db.select({
                     table: 'author',
-                    dirtyIdsOnly: true,
+                    rawResult: true,
+                    where: `return Array.from(@all())`,
                 });
 
-                for (const row of authorRows) {
-                    authorIds.push(row.id);
-                }
+                if (authorRows.length)
+                    authorIds = authorRows[0].rawResult;
 
                 this.searchCache.authorIdsAll = authorIds;
             } else {//оптимизация
@@ -407,7 +407,7 @@ class DbSearcher {
         }
 
         this.searchCache = null;
-        
+
         if (this.timer) {
             clearTimeout(this.timer);
             this.timer = null;