lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From laimis <...@git.apache.org>
Subject [GitHub] lucenenet pull request: Use reference instead of value type to mat...
Date Thu, 15 Jan 2015 11:06:18 GMT
GitHub user laimis opened a pull request:

    https://github.com/apache/lucenenet/pull/47

    Use reference instead of value type to match Lucene's logic

    Introduce a nullable long in DocValuesConsumer, instead of using just long. The need for
this is best illustrated if you look at the changes in Lucene45DocValuesConsumer and in NumericDocValuesWriter.
The Writer had iterator implementation that did not match Lucene version, ignoring cases of
DocsWithField.Get(doc) evaluating to false in which case a null value needs to be returned.
Null value executes a code branch in Lucene45DocValuesConsumer that was simply ignored before.
The result of that is the resulting index structure being incorrect, and requests such as
DocsWithFields would return true for all documents even though the index had documents that
did not have a field in question. 
    
    The tests that used to break are in TestLucene45DocValuesFormat and TestPerFieldDocValuesFormat,
e.g. BaseDocValuesFormatTestCase.TestTwoNumbersOneMissing. This fixes about 20 failing tests
by my count.
    
    I was considering porting over Numeric class over, but I think we can do that in stages,
if necessary. Since all the signatures were using long, migrating to long? was the first step
to get the logic right and tests passing. And then we can improve on the approach itself.
    
    I think I see more code places where iterators have been ported incorrectly and numbers
are used in non-nullable form causing different code execution paths, but will get those as
we go down the list of failing tests.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/laimis/lucenenet NumericDocValuesWriter_iterator_fix

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/lucenenet/pull/47.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #47
    
----
commit cd4e2e19f1895313e28f01c1bb1673a99c472a5f
Author: Laimonas Simutis <laimis@gmail.com>
Date:   2015-01-15T11:03:22Z

    use reference instead of value type to match Lucene's logic

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message