What's the design decision behind this?

As DE has all the info, it could easily hide the offset (and max) into impl 
details.

-Ales

On Oct 29, 2012, at 11:14 AM, Emmanuel Bernard <emman...@hibernate.org> wrote:

> Correct, the DocumentExtractor contract expects the absolute index. It
> looks like a bug in how ISPN's Query module use it.
> 
> Emmanuel
> 
> On Fri 2012-10-26 16:09, Ales Justin wrote:
>> After searching for the needed in haystack, I finally found the problem.
>> (not to mention complete lack of tests for this *basic* feature ...)
>> 
>> The problem is with queries with offset when you iterate over them -- offset 
>> is never taken into account.
>> 
>> There are two possible fixes -- as I see them.
>> 
>> 1) In HS:
>> 
>> DocumentExtractorImpl::extract takes into account "firstIndex"
>> 
>>      public EntityInfo extract(int scoreDocIndex) throws IOException {
>>              int docId = queryHits.docId( firstIndex + scoreDocIndex );
>>              Document document = extractDocument( fistIndex + scoreDocIndex 
>> );
>> 
>> 2) LazyIterator in Infinispan-Query applies the offset:
>> 
>>   protected EntityInfo loadEntityInfo(int index) {
>>      try {
>>         return extractor.extract(extractor.getFirstIndex() + index);
>> 
>> ---
>> 
>> Since those methods are exposed in DocumentExtractor,
>> I would guess they were meant for external code to use them,
>> instead of putting this logic into extractor itself.
>> 
>> So, I'll go ahead and provide a patch for (2).
>> 
>> -Ales
>> 


_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to