Lines Matching refs:pStruct

250465   Fts5Structure *pStruct;         /* Current db structure (or NULL) */  member
251120 static void fts5StructureRelease(Fts5Structure *pStruct){ argument
251121 if( pStruct && 0>=(--pStruct->nRef) ){
251123 assert( pStruct->nRef==0 );
251124 for(i=0; i<pStruct->nLevel; i++){
251125 sqlite3_free(pStruct->aLevel[i].aSeg);
251127 sqlite3_free(pStruct);
251131 static void fts5StructureRef(Fts5Structure *pStruct){ argument
251132 pStruct->nRef++;
251136 fts5StructureRef(p->pStruct);
251137 return (void*)p->pStruct;
251144 static int sqlite3Fts5StructureTest(Fts5Index *p, void *pStruct){ argument
251145 if( p->pStruct!=(Fts5Structure*)pStruct ){
251312 Fts5Structure *pStruct = *ppStruct; local
251313 int nLevel = pStruct->nLevel;
251316 pStruct = sqlite3_realloc64(pStruct, nByte);
251317 if( pStruct ){
251318 memset(&pStruct->aLevel[nLevel], 0, sizeof(Fts5StructureLevel));
251319 pStruct->nLevel++;
251320 *ppStruct = pStruct;
251333 Fts5Structure *pStruct, argument
251339 Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl];
251423 if( p->pStruct==0 ){
251426 p->pStruct = fts5StructureReadUncached(p);
251435 assert_nc( p->pStruct->nSegment==pTest->nSegment );
251436 assert_nc( p->pStruct->nLevel==pTest->nLevel );
251438 assert_nc( p->pStruct->aLevel[i].nMerge==pTest->aLevel[i].nMerge );
251439 assert_nc( p->pStruct->aLevel[i].nSeg==pTest->aLevel[i].nSeg );
251442 Fts5StructureSegment *p2 = &p->pStruct->aLevel[i].aSeg[j];
251455 assert( p->pStruct!=0 );
251456 fts5StructureRef(p->pStruct);
251457 return p->pStruct;
251461 if( p->pStruct ){
251462 fts5StructureRelease(p->pStruct);
251463 p->pStruct = 0;
251472 static int fts5StructureCountSegments(Fts5Structure *pStruct){ argument
251474 if( pStruct ){
251476 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
251477 nSegment += pStruct->aLevel[iLvl].nSeg;
251503 static void fts5StructureWrite(Fts5Index *p, Fts5Structure *pStruct){ argument
251508 int nHdr = (pStruct->nOriginCntr>0 ? (4+4+9+9+9) : (4+9+9));
251510 assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) );
251520 if( pStruct->nOriginCntr>0 ){
251523 fts5BufferSafeAppendVarint(&buf, pStruct->nLevel);
251524 fts5BufferSafeAppendVarint(&buf, pStruct->nSegment);
251525 fts5BufferSafeAppendVarint(&buf, (i64)pStruct->nWriteCounter);
251528 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
251530 Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl];
251540 if( pStruct->nOriginCntr>0 ){
251557 static void fts5PrintStructure(const char *zCaption, Fts5Structure *pStruct){
251561 fts5DebugStructure(&rc, &buf, pStruct);
251583 Fts5Structure *pStruct argument
251586 Fts5StructureLevel *pOut = &pStruct->aLevel[iPromote];
251589 for(il=iPromote+1; il<pStruct->nLevel; il++){
251590 Fts5StructureLevel *pLvl = &pStruct->aLevel[il];
251595 fts5StructureExtendLevel(&p->rc, pStruct, iPromote, 1, 1);
251625 Fts5Structure *pStruct /* Index structure */ argument
251633 int nSeg = pStruct->aLevel[iLvl].nSeg;
251636 pSeg = &pStruct->aLevel[iLvl].aSeg[pStruct->aLevel[iLvl].nSeg-1];
251640 for(iTst=iLvl-1; iTst>=0 && pStruct->aLevel[iTst].nSeg==0; iTst--);
251644 Fts5StructureLevel *pTst = &pStruct->aLevel[iTst];
251664 fts5StructurePromoteTo(p, iPromote, szPromote, pStruct);
254021 Fts5Structure *pStruct, /* Structure of specific index */ argument
254040 assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) );
254041 nSeg = pStruct->nSegment;
254044 nSeg = MIN(pStruct->aLevel[iLevel].nSeg, nSegment);
254062 Fts5StructureLevel *pEnd = &pStruct->aLevel[pStruct->nLevel];
254068 for(pLvl=&pStruct->aLevel[0]; pLvl<pEnd; pLvl++){
254080 pLvl = &pStruct->aLevel[iLevel];
254202 static int fts5AllocateSegid(Fts5Index *p, Fts5Structure *pStruct){ argument
254206 if( pStruct->nSegment>=FTS5_MAX_SEGMENT ){
254216 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
254217 for(iSeg=0; iSeg<pStruct->aLevel[iLvl].nSeg; iSeg++){
254218 int iId = pStruct->aLevel[iLvl].aSeg[iSeg].iSegid;
254231 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
254232 for(iSeg=0; iSeg<pStruct->aLevel[iLvl].nSeg; iSeg++){
254233 assert_nc( iSegid!=pStruct->aLevel[iLvl].aSeg[iSeg].iSegid );
254851 Fts5Structure *pStruct = *ppStruct; local
254852 Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl];
254865 assert( iLvl<pStruct->nLevel );
254871 pLvlOut = &pStruct->aLevel[iLvl+1];
254880 int iSegid = fts5AllocateSegid(p, pStruct);
254884 if( iLvl==pStruct->nLevel-1 ){
254886 pStruct = *ppStruct;
254888 fts5StructureExtendLevel(&p->rc, pStruct, iLvl+1, 1, 0);
254890 pLvl = &pStruct->aLevel[iLvl];
254891 pLvlOut = &pStruct->aLevel[iLvl+1];
254900 pStruct->nSegment++;
254906 if( pStruct->nOriginCntr>0 ){
254911 bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2);
254914 for(fts5MultiIterNew(p, pStruct, flags, 0, 0, 0, iLvl, nInput, &pIter);
254981 pStruct->nSegment -= nInput;
254986 pStruct->nSegment--;
255007 static int fts5IndexFindDeleteMerge(Fts5Index *p, Fts5Structure *pStruct){ argument
255014 for(ii=0; ii<pStruct->nLevel; ii++){
255015 Fts5StructureLevel *pLvl = &pStruct->aLevel[ii];
255054 Fts5Structure *pStruct = *ppStruct; local
255062 assert( pStruct->nLevel>0 );
255063 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
255064 Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl];
255078 iBestLvl = fts5IndexFindDeleteMerge(p, pStruct);
255083 fts5IndexMergeLevel(p, &pStruct, iBestLvl, &nRem);
255084 if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){
255085 fts5StructurePromote(p, iBestLvl+1, pStruct);
255090 *ppStruct = pStruct;
255108 Fts5Structure *pStruct = *ppStruct; local
255114 nWrite = pStruct->nWriteCounter;
255116 pStruct->nWriteCounter += nLeaf;
255117 nRem = (int)(p->nWorkUnit * nWork * pStruct->nLevel);
255128 Fts5Structure *pStruct = *ppStruct; local
255129 if( pStruct && pStruct->nLevel>0 ){
255131 while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){
255132 fts5IndexMergeLevel(p, &pStruct, iLvl, 0);
255133 assert( p->rc!=SQLITE_OK || pStruct->nLevel>(iLvl+1) );
255134 fts5StructurePromote(p, iLvl+1, pStruct);
255137 *ppStruct = pStruct;
255623 Fts5Structure *pStruct, argument
255649 fts5MultiIterNew(p, pStruct, f, 0, (const u8*)zTerm, nTerm, -1, 0, &pIter);
255679 Fts5Structure *pStruct; local
255685 pStruct = fts5StructureRead(p);
255689 iSegid = fts5AllocateSegid(p, pStruct);
255751 && !fts5FlushSecureDelete(p, pStruct, zTerm, nTerm, iRowid)
255762 && !fts5FlushSecureDelete(p, pStruct, zTerm, nTerm, iRowid)
255856 if( pStruct->nLevel==0 ){
255857 fts5StructureAddLevel(&p->rc, &pStruct);
255859 fts5StructureExtendLevel(&p->rc, pStruct, 0, 1, 0);
255861 pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ];
255865 if( pStruct->nOriginCntr>0 ){
255866 pSeg->iOrigin1 = pStruct->nOriginCntr;
255867 pSeg->iOrigin2 = pStruct->nOriginCntr;
255869 pStruct->nOriginCntr++;
255871 pStruct->nSegment++;
255873 fts5StructurePromote(p, 0, pStruct);
255878 fts5IndexAutomerge(p, &pStruct, pgnoLast + p->nContentlessDelete);
255879 fts5IndexCrisismerge(p, &pStruct);
255880 fts5StructureWrite(p, pStruct);
255881 fts5StructureRelease(pStruct);
255909 Fts5Structure *pStruct argument
255913 int nSeg = pStruct->nSegment;
255928 for(i=0; i<pStruct->nLevel; i++){
255929 int nThis = pStruct->aLevel[i].nSeg;
255930 int nMerge = pStruct->aLevel[i].nMerge;
255932 if( nSeg==1 && nThis==1 && pStruct->aLevel[i].aSeg[0].nPgTombstone==0 ){
255935 fts5StructureRef(pStruct);
255936 return pStruct;
255938 assert( pStruct->aLevel[i].nMerge<=nThis );
255941 nByte += (((i64)pStruct->nLevel)+1) * sizeof(Fts5StructureLevel);
255942 assert( nByte==(i64)SZ_FTS5STRUCTURE(pStruct->nLevel+2) );
255948 pNew->nLevel = MIN(pStruct->nLevel+1, FTS5_MAX_LEVEL);
255950 pNew->nWriteCounter = pStruct->nWriteCounter;
255951 pNew->nOriginCntr = pStruct->nOriginCntr;
255960 for(iLvl=pStruct->nLevel-1; iLvl>=0; iLvl--){
255961 for(iSeg=0; iSeg<pStruct->aLevel[iLvl].nSeg; iSeg++){
255962 pLvl->aSeg[iSegOut] = pStruct->aLevel[iLvl].aSeg[iSeg];
255977 Fts5Structure *pStruct; local
255983 pStruct = fts5StructureRead(p);
255984 assert( p->rc!=SQLITE_OK || pStruct!=0 );
255987 if( pStruct ){
255988 pNew = fts5IndexOptimizeStruct(p, pStruct);
255990 fts5StructureRelease(pStruct);
256013 Fts5Structure *pStruct = 0; local
256016 pStruct = fts5StructureRead(p);
256017 if( pStruct ){
256021 Fts5Structure *pNew = fts5IndexOptimizeStruct(p, pStruct);
256022 fts5StructureRelease(pStruct);
256023 pStruct = pNew;
256027 if( pStruct && pStruct->nLevel ){
256028 if( fts5IndexMerge(p, &pStruct, nMerge, nMin) ){
256029 fts5StructureWrite(p, pStruct);
256032 fts5StructureRelease(pStruct);
256427 Fts5Structure *pStruct = fts5StructureRead(p); local
256429 fts5MultiIterNew(p, pStruct, flags, pColset, pToken, nToken, -1, 0, &p1);
256452 fts5StructureRelease(pStruct);
256773 Fts5Structure *pStruct; local
256802 pStruct = fts5StructureRead(p);
256803 assert( p->rc!=SQLITE_OK || (s.aBuf && pStruct) );
256854 fts5StructureRelease(pStruct);
257339 Fts5Structure *pStruct = 0; local
257346 pStruct = fts5StructureRead(p);
257356 pNew = fts5MultiIterAlloc(p, pStruct->nSegment);
257370 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
257371 for(iSeg=pStruct->aLevel[iLvl].nSeg-1; iSeg>=0; iSeg--){
257372 Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg];
257464 fts5StructureRelease(pStruct);
257533 Fts5Structure *pStruct = fts5StructureRead(p); local
257535 if( pStruct ){
257536 fts5MultiIterNew(p, pStruct, flags | FTS5INDEX_QUERY_SKIPEMPTY,
257539 fts5StructureRelease(pStruct);
257890 Fts5Structure *pStruct; local
257891 pStruct = fts5StructureRead(p);
257892 fts5StructureRelease(pStruct);
257904 Fts5Structure *pStruct; local
257905 pStruct = fts5StructureRead(p);
257906 if( pStruct ){
257907 *piOrigin = pStruct->nOriginCntr;
257908 fts5StructureRelease(pStruct);
258202 fts5StructureWrite(p, p->pStruct);
258215 Fts5Structure *pStruct; local
258216 pStruct = fts5StructureRead(p);
258217 if( pStruct ){
258220 for(iLvl=pStruct->nLevel-1; iLvl>=0; iLvl--){
258222 for(iSeg=pStruct->aLevel[iLvl].nSeg-1; iSeg>=0; iSeg--){
258223 Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg];
258233 fts5StructureRelease(pStruct);
258715 Fts5Structure *pStruct; /* Index structure */ local
258727 pStruct = fts5StructureRead(p);
258728 if( pStruct==0 ){
258734 for(iLvl=0; iLvl<pStruct->nLevel; iLvl++){
258735 for(iSeg=0; iSeg<pStruct->aLevel[iLvl].nSeg; iSeg++){
258736 Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg];
258754 for(fts5MultiIterNew(p, pStruct, flags, 0, 0, 0, -1, 0, &pIter);
258802 fts5StructureRelease(pStruct);
259342 Fts5Structure *pStruct; member
259428 fts5StructureRelease(pCsr->pStruct);
259439 Fts5Structure *p = pCsr->pStruct;
259441 assert( pCsr->pStruct );
259449 fts5StructureRelease(pCsr->pStruct);
259450 pCsr->pStruct = 0;
259461 return pCsr->pStruct==0;
259483 Fts5Structure *p = pCsr->pStruct;
259542 fts5StructureRelease(pCsr->pStruct);
259543 pCsr->pStruct = 0;
259547 rc = fts5StructureDecode(aBlob, nBlob, 0, &pCsr->pStruct);
259626 assert( p->pStruct==0 || p->iStructVersion!=0 );
267744 void *pStruct; /* From sqlite3Fts5StructureRef() */ member
268088 sqlite3Fts5StructureRelease(pCsr->pStruct);
268089 pCsr->pStruct = 0;
268176 rc = sqlite3Fts5StructureTest(pCsr->pFts5->pIndex, pCsr->pStruct);
268363 pCsr->pStruct = sqlite3Fts5StructureRef(pIndex);