diff --git a/app/lib/dal/sqliteDAL/index/CIndexDAL.js b/app/lib/dal/sqliteDAL/index/CIndexDAL.js index 6f54b4edcefbfc03b5e262a14742fb88aa025611..cd4e99a3737b5dde1afe442ed6b02daceb645270 100644 --- a/app/lib/dal/sqliteDAL/index/CIndexDAL.js +++ b/app/lib/dal/sqliteDAL/index/CIndexDAL.js @@ -89,6 +89,7 @@ function CIndexDAL(driver) { this.getValidLinksTo = (receiver) => that.query('SELECT * FROM ' + that.table + ' c1 ' + 'WHERE c1.receiver = ? ' + + 'AND c1.expired_on = 0 ' + 'AND NOT EXISTS (' + ' SELECT * FROM c_index c2' + ' WHERE c1.issuer = c2.issuer' + @@ -99,6 +100,7 @@ function CIndexDAL(driver) { this.getValidLinksFrom = (issuer) => that.query('SELECT * FROM ' + that.table + ' c1 ' + 'WHERE c1.issuer = ? ' + + 'AND c1.expired_on = 0 ' + 'AND NOT EXISTS (' + ' SELECT * FROM c_index c2' + ' WHERE c1.issuer = c2.issuer' + diff --git a/app/lib/dup/indexer.js b/app/lib/dup/indexer.js index 37b5b429e4da2835a9f21ebe8fd5ca5eb9976a09..d5719d4f1eeccce4bebef85696e1e66550900ab2 100644 --- a/app/lib/dup/indexer.js +++ b/app/lib/dup/indexer.js @@ -651,7 +651,7 @@ const indexer = module.exports = { // BR_G39 yield cindex.map((ENTRY) => co(function*() { - ENTRY.stock = count(yield dal.cindexDAL.sqlFind({ issuer: ENTRY.issuer, expired_on: 0 })); + ENTRY.stock = count(yield dal.cindexDAL.getValidLinksFrom(ENTRY.issuer)); })); // BR_G40 diff --git a/doc/Protocol.md b/doc/Protocol.md index c4feaf30f0394d88adbb05e3dff376a683168058..eb3153f1ee8c28a86d8126ce82198bb5ae604b46 100644 --- a/doc/Protocol.md +++ b/doc/Protocol.md @@ -1972,7 +1972,7 @@ If `HEAD.number > 0`: ####### BR_G39 - ENTRY.stock - ENTRY.stock = COUNT(GLOBAL_CINDEX[issuer=ENTRY.issuer, expired_on=0])) + ENTRY.stock = COUNT(REDUCE_BY(GLOBAL_CINDEX[issuer=ENTRY.issuer], 'receiver', 'created_on')[expired_on=0]) ####### BR_G40 - ENTRY.fromMember