Lines Matching refs:p
131 RowSet *p = sqlite3DbMallocRawNN(db, sizeof(*p)); in sqlite3RowSetInit() local
132 if( p ){ in sqlite3RowSetInit()
133 int N = sqlite3DbMallocSize(db, p); in sqlite3RowSetInit()
134 p->pChunk = 0; in sqlite3RowSetInit()
135 p->db = db; in sqlite3RowSetInit()
136 p->pEntry = 0; in sqlite3RowSetInit()
137 p->pLast = 0; in sqlite3RowSetInit()
138 p->pForest = 0; in sqlite3RowSetInit()
139 p->pFresh = (struct RowSetEntry*)(ROUND8(sizeof(*p)) + (char*)p); in sqlite3RowSetInit()
140 p->nFresh = (u16)((N - ROUND8(sizeof(*p)))/sizeof(struct RowSetEntry)); in sqlite3RowSetInit()
141 p->rsFlags = ROWSET_SORTED; in sqlite3RowSetInit()
142 p->iBatch = 0; in sqlite3RowSetInit()
144 return p; in sqlite3RowSetInit()
153 RowSet *p = (RowSet*)pArg; in sqlite3RowSetClear() local
155 for(pChunk=p->pChunk; pChunk; pChunk = pNextChunk){ in sqlite3RowSetClear()
157 sqlite3DbFree(p->db, pChunk); in sqlite3RowSetClear()
159 p->pChunk = 0; in sqlite3RowSetClear()
160 p->nFresh = 0; in sqlite3RowSetClear()
161 p->pEntry = 0; in sqlite3RowSetClear()
162 p->pLast = 0; in sqlite3RowSetClear()
163 p->pForest = 0; in sqlite3RowSetClear()
164 p->rsFlags = ROWSET_SORTED; in sqlite3RowSetClear()
185 static struct RowSetEntry *rowSetEntryAlloc(RowSet *p){ in rowSetEntryAlloc() argument
186 assert( p!=0 ); in rowSetEntryAlloc()
187 if( p->nFresh==0 ){ /*OPTIMIZATION-IF-FALSE*/ in rowSetEntryAlloc()
191 pNew = sqlite3DbMallocRawNN(p->db, sizeof(*pNew)); in rowSetEntryAlloc()
195 pNew->pNextChunk = p->pChunk; in rowSetEntryAlloc()
196 p->pChunk = pNew; in rowSetEntryAlloc()
197 p->pFresh = pNew->aEntry; in rowSetEntryAlloc()
198 p->nFresh = ROWSET_ENTRY_PER_CHUNK; in rowSetEntryAlloc()
200 p->nFresh--; in rowSetEntryAlloc()
201 return p->pFresh++; in rowSetEntryAlloc()
210 void sqlite3RowSetInsert(RowSet *p, i64 rowid){ in sqlite3RowSetInsert() argument
215 assert( p!=0 && (p->rsFlags & ROWSET_NEXT)==0 ); in sqlite3RowSetInsert()
217 pEntry = rowSetEntryAlloc(p); in sqlite3RowSetInsert()
221 pLast = p->pLast; in sqlite3RowSetInsert()
226 p->rsFlags &= ~ROWSET_SORTED; in sqlite3RowSetInsert()
230 p->pEntry = pEntry; in sqlite3RowSetInsert()
232 p->pLast = pEntry; in sqlite3RowSetInsert()
312 struct RowSetEntry *p; in rowSetTreeToList() local
313 rowSetTreeToList(pIn->pLeft, ppFirst, &p); in rowSetTreeToList()
314 p->pRight = pIn; in rowSetTreeToList()
344 struct RowSetEntry *p; /* Root of the new tree */ in rowSetNDeepTree() local
355 p = *ppList; in rowSetNDeepTree()
356 if( p==0 ){ /*OPTIMIZATION-IF-FALSE*/ in rowSetNDeepTree()
361 p->pLeft = pLeft; in rowSetNDeepTree()
362 *ppList = p->pRight; in rowSetNDeepTree()
363 p->pRight = rowSetNDeepTree(ppList, iDepth-1); in rowSetNDeepTree()
365 p = *ppList; in rowSetNDeepTree()
366 *ppList = p->pRight; in rowSetNDeepTree()
367 p->pLeft = p->pRight = 0; in rowSetNDeepTree()
369 return p; in rowSetNDeepTree()
378 struct RowSetEntry *p; /* Current tree root */ in rowSetListToTree() local
382 p = pList; in rowSetListToTree()
383 pList = p->pRight; in rowSetListToTree()
384 p->pLeft = p->pRight = 0; in rowSetListToTree()
386 pLeft = p; in rowSetListToTree()
387 p = pList; in rowSetListToTree()
388 pList = p->pRight; in rowSetListToTree()
389 p->pLeft = pLeft; in rowSetListToTree()
390 p->pRight = rowSetNDeepTree(&pList, iDepth); in rowSetListToTree()
392 return p; in rowSetListToTree()
408 int sqlite3RowSetNext(RowSet *p, i64 *pRowid){ in sqlite3RowSetNext() argument
409 assert( p!=0 ); in sqlite3RowSetNext()
410 assert( p->pForest==0 ); /* Cannot be used with sqlite3RowSetText() */ in sqlite3RowSetNext()
413 if( (p->rsFlags & ROWSET_NEXT)==0 ){ /*OPTIMIZATION-IF-FALSE*/ in sqlite3RowSetNext()
414 if( (p->rsFlags & ROWSET_SORTED)==0 ){ /*OPTIMIZATION-IF-FALSE*/ in sqlite3RowSetNext()
415 p->pEntry = rowSetEntrySort(p->pEntry); in sqlite3RowSetNext()
417 p->rsFlags |= ROWSET_SORTED|ROWSET_NEXT; in sqlite3RowSetNext()
421 if( p->pEntry ){ in sqlite3RowSetNext()
422 *pRowid = p->pEntry->v; in sqlite3RowSetNext()
423 p->pEntry = p->pEntry->pRight; in sqlite3RowSetNext()
424 if( p->pEntry==0 ){ /*OPTIMIZATION-IF-TRUE*/ in sqlite3RowSetNext()
426 sqlite3RowSetClear(p); in sqlite3RowSetNext()
443 struct RowSetEntry *p, *pTree; in sqlite3RowSetTest() local
452 p = pRowSet->pEntry; in sqlite3RowSetTest()
453 if( p ){ in sqlite3RowSetTest()
457 p = rowSetEntrySort(p); in sqlite3RowSetTest()
462 pTree->pLeft = rowSetListToTree(p); in sqlite3RowSetTest()
468 p = rowSetEntryMerge(pAux, p); in sqlite3RowSetTest()
476 pTree->pLeft = rowSetListToTree(p); in sqlite3RowSetTest()
490 p = pTree->pLeft; in sqlite3RowSetTest()
491 while( p ){ in sqlite3RowSetTest()
492 if( p->v<iRowid ){ in sqlite3RowSetTest()
493 p = p->pRight; in sqlite3RowSetTest()
494 }else if( p->v>iRowid ){ in sqlite3RowSetTest()
495 p = p->pLeft; in sqlite3RowSetTest()