YDN-DB - неверные результаты при использовании смешанных типов данных с SortedMerge

Я использую отличную YDN-DB как часть сложной веб-страницы «приборной панели», которая позволяет пользователю загружать большое количество информации, а затем искать и фильтровать данные так, как они хотят.

Данные поступают в виде 1 UNID и 6 столбцов видимых данных, которые я храню, используя схему YDN, например:

var schema = {
    stores: [
        {
            name: 'test', keyPath: 'unid', autoIncrement: false,
            indexes: [
                {keyPath: 'a', type: 'TEXT'},
                {keyPath: 'b', type: 'TEXT'},
                {keyPath: 'c', type: 'TEXT'},
                {keyPath: 'd', type: 'DATE'},
                {keyPath: 'e', type: 'TEXT'},
                {keyPath: 'f', type: 'TEXT'}
            ]
        }
    ]
};

Затем пользователь может поместить фильтр в любой из шести столбцов выше. Код для создания фильтров выглядит следующим образом и использует YDN KeyRange для фильтрации данных по значениям, запрошенным пользователем.

var filterArr = []
var resultArr = [];

filterArr.push(new ydn.db.IndexIterator('test', 'a', ydn.db.KeyRange.only('search value 1')));
filterArr.push(new ydn.db.IndexIterator('test', 'b', ydn.db.KeyRange.only('search value 2')));
.. [Continue adding filters for more columns if necessary etc] ..

var req = db.scan(new ydn.db.algo.SortedMerge(resultArr), filterArr);

req.then(function() {
    db.values('test', resultArr).done(function(results) {
        .. [Display code goes here] ..
    })
})

Так что для согласованных значений это работает нормально. Моя проблема, однако, заключается в том, что пользователь может указать диапазон дат для столбца D, поэтому я изменил одну из строк filterArr, как показано ниже:

filterArr.push(new ydn.db.IndexIterator('test', 'd', ydn.db.KeyRange.bound(1389571200000, 1390435200000, false, false)));

Это приводит к неверным результатам поиска. Похоже, это происходит, только когда указано несколько значений filterArr. Если я отфильтрую столбец D сам по себе, похоже, он будет работать.

Извините за сложный запрос и действительно надеюсь на какой-то ответ. Я потратил некоторое время на отладку SortedMerge JS, и мои ограниченные знания позволяют предположить, что что-то не так с результатом каждого вызова функции ydn.db.cmp, поэтому я подумал, была ли это ошибка в БД YDN?

Ответы на вопрос(2)

Ваш ответ на вопрос