From: <ust...@us...> - 2008-12-06 14:05:15
|
Revision: 2938 http://clucene.svn.sourceforge.net/clucene/?rev=2938&view=rev Author: ustramooner Date: 2008-12-06 14:05:10 +0000 (Sat, 06 Dec 2008) Log Message: ----------- Mark Ashworth: fix for range query when not the whole range is given. Modified Paths: -------------- branches/lucene2_3_2/src/core/CLucene/queryParser/QueryParserBase.cpp Modified: branches/lucene2_3_2/src/core/CLucene/queryParser/QueryParserBase.cpp =================================================================== --- branches/lucene2_3_2/src/core/CLucene/queryParser/QueryParserBase.cpp 2008-10-23 18:15:36 UTC (rev 2937) +++ branches/lucene2_3_2/src/core/CLucene/queryParser/QueryParserBase.cpp 2008-12-06 14:05:10 UTC (rev 2938) @@ -241,30 +241,33 @@ bool from=true; while(tret) { - try{ - tret = source->next(&t); - }catch (CLuceneError& err){ - if ( err.number() == CL_ERR_IO ) - tret=false; - else - throw err; + try{ + tret = source->next(&t); + }catch (CLuceneError& err){ + if ( err.number() == CL_ERR_IO ) + tret=false; + else + throw err; + } + if (tret) + { + if ( !from && _tcscmp(t.termBuffer(),_T("TO"))==0 ) + continue; + + + TCHAR* tmp = STRDUP_TtoT(t.termBuffer()); + discardEscapeChar(tmp); + terms[from? 0 : 1] = tmp; + + if (from) + from = false; + else + break; + } + } + if ((terms[0] == NULL) || (terms[1] == NULL)) { + _CLTHROWA(CL_ERR_Parse, "No range given."); } - if (tret) - { - if ( !from && _tcscmp(t.termBuffer(),_T("TO"))==0 ) - continue; - - - TCHAR* tmp = STRDUP_TtoT(t.termBuffer()); - discardEscapeChar(tmp); - terms[from? 0 : 1] = tmp; - - if (from) - from = false; - else - break; - } - } Query* ret = GetRangeQuery(field, terms[0], terms[1],inclusive); _CLDELETE_CARRAY(terms[0]); _CLDELETE_CARRAY(terms[1]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |