Sorry, right, test passed on trunk, but it's still not valid even on
trunk (I think?).  Ie TermEnum.term() is undefined until you've called
next?

Mike

On Tue, Dec 8, 2009 at 10:18 AM, Uwe Schindler <u...@thetaphi.de> wrote:
> Mike I checked,
>
> it seems that you simply copied the code from flex, where the test must be
> removed.
>
> In trunk, I'll revert, test passes correctly. I was a little bit confused,
> why it should not pass.
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: u...@thetaphi.de
>
>
>> -----Original Message-----
>> From: Uwe Schindler [mailto:u...@thetaphi.de]
>> Sent: Tuesday, December 08, 2009 4:00 PM
>> To: java-dev@lucene.apache.org
>> Subject: RE: svn commit: r888398 - in /lucene/java/trunk: CHANGES.txt
>> contrib/regex/src/test/org/apache/lucene/search/regex/TestRegexQuery.java
>> src/java/org/apache/lucene/index/DirectoryReader.java
>> src/java/org/apache/lucene/index/MultiReader.java
>>
>> Mike,
>>
>> the test for RegEx was correct, it uses getEnum() not getTermsEnum()! So
>> the
>> first term returned must be null, because the enum must be positioned on
>> the
>> first term (which was the case for old enums). If that is not the case
>> such
>> a query would at least hit one term. So in trunk this test is perfectly
>> legal and important!
>>
>> -----
>> Uwe Schindler
>> H.-H.-Meier-Allee 63, D-28213 Bremen
>> http://www.thetaphi.de
>> eMail: u...@thetaphi.de
>>
>>
>> > -----Original Message-----
>> > From: mikemcc...@apache.org [mailto:mikemcc...@apache.org]
>> > Sent: Tuesday, December 08, 2009 2:47 PM
>> > To: java-comm...@lucene.apache.org
>> > Subject: svn commit: r888398 - in /lucene/java/trunk: CHANGES.txt
>> >
>> contrib/regex/src/test/org/apache/lucene/search/regex/TestRegexQuery.java
>> > src/java/org/apache/lucene/index/DirectoryReader.java
>> > src/java/org/apache/lucene/index/MultiReader.java
>> >
>> > Author: mikemccand
>> > Date: Tue Dec  8 13:47:20 2009
>> > New Revision: 888398
>> >
>> > URL: http://svn.apache.org/viewvc?rev=888398&view=rev
>> > Log:
>> > LUCENE-2136: optimization: if Multi/DirectoryReader only has a single
>> > reader, delegate enums to it
>> >
>> > Modified:
>> >     lucene/java/trunk/CHANGES.txt
>> >
>> >
>> lucene/java/trunk/contrib/regex/src/test/org/apache/lucene/search/regex/Te
>> > stRegexQuery.java
>> >
>> > lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>> >     lucene/java/trunk/src/java/org/apache/lucene/index/MultiReader.java
>> >
>> > Modified: lucene/java/trunk/CHANGES.txt
>> > URL:
>> >
>> http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=888398&r1=8
>> > 88397&r2=888398&view=diff
>> >
>> ==========================================================================
>> > ====
>> > --- lucene/java/trunk/CHANGES.txt (original)
>> > +++ lucene/java/trunk/CHANGES.txt Tue Dec  8 13:47:20 2009
>> > @@ -70,6 +70,11 @@
>> >    lots of seeking (Mike McCandless, Uwe Schindler, Robert Muir, Yonik
>> >    Seeley)
>> >
>> > +* LUCENE-2136: If the multi reader (DirectoryReader or MultiReader)
>> > +  only has a single sub-reader, delegate all enum requests to it.
>> > +  This avoid the overhead of using a PQ unecessarily.  (Mike
>> > +  McCandless)
>> > +
>> >  Build
>> >
>> >  Test Cases
>> >
>> > Modified:
>> >
>> lucene/java/trunk/contrib/regex/src/test/org/apache/lucene/search/regex/Te
>> > stRegexQuery.java
>> > URL:
>> >
>> http://svn.apache.org/viewvc/lucene/java/trunk/contrib/regex/src/test/org/
>> >
>> apache/lucene/search/regex/TestRegexQuery.java?rev=888398&r1=888397&r2=888
>> > 398&view=diff
>> >
>> ==========================================================================
>> > ====
>> > ---
>> >
>> lucene/java/trunk/contrib/regex/src/test/org/apache/lucene/search/regex/Te
>> > stRegexQuery.java (original)
>> > +++
>> >
>> lucene/java/trunk/contrib/regex/src/test/org/apache/lucene/search/regex/Te
>> > stRegexQuery.java Tue Dec  8 13:47:20 2009
>> > @@ -83,7 +83,6 @@
>> >    public void testMatchAll() throws Exception {
>> >      TermEnum terms = new RegexQuery(new Term(FN,
>> > "jum.")).getEnum(searcher.getIndexReader());
>> >      // no term should match
>> > -    assertNull(terms.term());
>> >      assertFalse(terms.next());
>> >    }
>> >
>> >
>> > Modified:
>> > lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>> > URL:
>> >
>> http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/
>> > index/DirectoryReader.java?rev=888398&r1=888397&r2=888398&view=diff
>> >
>> ==========================================================================
>> > ====
>> > ---
>> > lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>> > (original)
>> > +++
>> > lucene/java/trunk/src/java/org/apache/lucene/index/DirectoryReader.java
>> > Tue Dec  8 13:47:20 2009
>> > @@ -627,13 +627,23 @@
>> >   �...@override
>> >    public TermEnum terms() throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermEnum(this, subReaders, starts, null);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].terms();
>> > +    } else {
>> > +      return new MultiTermEnum(this, subReaders, starts, null);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> >    public TermEnum terms(Term term) throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermEnum(this, subReaders, starts, term);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].terms(term);
>> > +    } else {
>> > +      return new MultiTermEnum(this, subReaders, starts, term);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> > @@ -648,13 +658,34 @@
>> >   �...@override
>> >    public TermDocs termDocs() throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermDocs(this, subReaders, starts);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].termDocs();
>> > +    } else {
>> > +      return new MultiTermDocs(this, subReaders, starts);
>> > +    }
>> > +  }
>> > +
>> > + �...@override
>> > +  public TermDocs termDocs(Term term) throws IOException {
>> > +    ensureOpen();
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].termDocs(term);
>> > +    } else {
>> > +      return super.termDocs(term);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> >    public TermPositions termPositions() throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermPositions(this, subReaders, starts);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].termPositions();
>> > +    } else {
>> > +      return new MultiTermPositions(this, subReaders, starts);
>> > +    }
>> >    }
>> >
>> >    /**
>> >
>> > Modified:
>> > lucene/java/trunk/src/java/org/apache/lucene/index/MultiReader.java
>> > URL:
>> >
>> http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/
>> > index/MultiReader.java?rev=888398&r1=888397&r2=888398&view=diff
>> >
>> ==========================================================================
>> > ====
>> > --- lucene/java/trunk/src/java/org/apache/lucene/index/MultiReader.java
>> > (original)
>> > +++ lucene/java/trunk/src/java/org/apache/lucene/index/MultiReader.java
>> > Tue Dec  8 13:47:20 2009
>> > @@ -339,13 +339,23 @@
>> >   �...@override
>> >    public TermEnum terms() throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermEnum(this, subReaders, starts, null);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].terms();
>> > +    } else {
>> > +      return new MultiTermEnum(this, subReaders, starts, null);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> >    public TermEnum terms(Term term) throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermEnum(this, subReaders, starts, term);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].terms(term);
>> > +    } else {
>> > +      return new MultiTermEnum(this, subReaders, starts, term);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> > @@ -360,13 +370,34 @@
>> >   �...@override
>> >    public TermDocs termDocs() throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermDocs(this, subReaders, starts);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].termDocs();
>> > +    } else {
>> > +      return new MultiTermDocs(this, subReaders, starts);
>> > +    }
>> > +  }
>> > +
>> > + �...@override
>> > +  public TermDocs termDocs(Term term) throws IOException {
>> > +    ensureOpen();
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].termDocs(term);
>> > +    } else {
>> > +      return super.termDocs(term);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> >    public TermPositions termPositions() throws IOException {
>> >      ensureOpen();
>> > -    return new MultiTermPositions(this, subReaders, starts);
>> > +    if (subReaders.length == 1) {
>> > +      // Optimize single segment case:
>> > +      return subReaders[0].termPositions();
>> > +    } else {
>> > +      return new MultiTermPositions(this, subReaders, starts);
>> > +    }
>> >    }
>> >
>> >   �...@override
>> >
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to