Lines Matching defs:pReader

387 ** Return TRUE if we have reached then end of pReader and there is
390 static int atEnd(DocListReader *pReader){
391 return pReader->pDoclist==0 || (pReader->p >= docListEnd(pReader->pDoclist));
396 static sqlite_int64 peekDocid(DocListReader *pReader){
398 assert( !atEnd(pReader) );
399 assert( pReader->iLastPos==-1 );
400 getVarint(pReader->p, &ret);
406 static sqlite_int64 readDocid(DocListReader *pReader){
408 assert( !atEnd(pReader) );
409 assert( pReader->iLastPos==-1 );
410 pReader->p += getVarint(pReader->p, &ret);
411 if( pReader->pDoclist->iType>=DL_POSITIONS ){
412 pReader->iLastColumn = 0;
413 pReader->iLastPos = 0;
420 static int readPosition(DocListReader *pReader, int *iColumn){
422 int iType = pReader->pDoclist->iType;
424 if( pReader->iLastPos==-1 ){
427 assert( !atEnd(pReader) );
432 pReader->p += getVarint32(pReader->p, &i);
434 pReader->iLastColumn = pReader->iLastPos = -1;
439 pReader->p += getVarint32(pReader->p, &pReader->iLastColumn);
440 pReader->iLastPos = 0;
441 pReader->p += getVarint32(pReader->p, &i);
444 pReader->iLastPos += ((int) i)-POS_BASE;
448 pReader->p += getVarint32(pReader->p, &iStart);
449 pReader->p += getVarint32(pReader->p, &iEnd);
451 *iColumn = pReader->iLastColumn;
452 return pReader->iLastPos;
456 static void skipPositionList(DocListReader *pReader){
457 DocList *p = pReader->pDoclist;
460 while( readPosition(pReader, &iColumn)!=-1 ){}
466 static void skipDocument(DocListReader *pReader){
467 readDocid(pReader);
468 skipPositionList(pReader);
473 static int skipToDocid(DocListReader *pReader, sqlite_int64 iDocid){
475 while( !atEnd(pReader) && (d=peekDocid(pReader))<iDocid ){
476 skipDocument(pReader);
478 return !atEnd(pReader) && d==iDocid;