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