Lines Matching full:bitvec
8783 typedef struct Bitvec Bitvec;
12539 SQLITE_PRIVATE Bitvec *sqlite3BitvecCreate(u32);
12540 SQLITE_PRIVATE int sqlite3BitvecTest(Bitvec*, u32);
12541 SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec*, u32);
12542 SQLITE_PRIVATE void sqlite3BitvecClear(Bitvec*, u32, void*);
12543 SQLITE_PRIVATE void sqlite3BitvecDestroy(Bitvec*);
12544 SQLITE_PRIVATE u32 sqlite3BitvecSize(Bitvec*);
37516 /************** Begin file bitvec.c ******************************************/
37547 ** 5 and 500 set operations per Bitvec object, though the number of sets can
37549 ** Bitvec object is the number of pages in the database file at the
37554 /* Size of the Bitvec structure in bytes. */
37558 ** it will be aligned within the Bitvec struct. */
37559 #define BITVEC_USIZE (((BITVEC_SZ-(3*sizeof(u32)))/sizeof(Bitvec*))*sizeof(Bitvec*))
37584 #define BITVEC_NPTR (BITVEC_USIZE/sizeof(Bitvec *))
37594 ** If iSize<=BITVEC_NBIT, then Bitvec.u.aBitmap[] is a straight
37597 ** If iSize>BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is
37601 ** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap
37608 struct Bitvec {
37620 Bitvec *apSub[BITVEC_NPTR]; /* Recursive representation */
37629 SQLITE_PRIVATE Bitvec *sqlite3BitvecCreate(u32 iSize){
37630 Bitvec *p;
37644 SQLITE_PRIVATE int sqlite3BitvecTest(Bitvec *p, u32 i){
37676 ** The calling function must ensure that p is a valid Bitvec object
37677 ** and that the value for "i" is within range of the Bitvec object.
37680 SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec *p, u32 i){
37751 SQLITE_PRIVATE void sqlite3BitvecClear(Bitvec *p, u32 i, void *pBuf){
37788 SQLITE_PRIVATE void sqlite3BitvecDestroy(Bitvec *p){
37800 ** Return the value of the iSize parameter specified when Bitvec *p
37803 SQLITE_PRIVATE u32 sqlite3BitvecSize(Bitvec *p){
37819 ** This routine runs an extensive test of the Bitvec code.
37822 ** to test the Bitvec. The integers are opcodes followed
37834 ** 5 N S X Set N bits from S increment X in array only, not in bitvec
37837 ** on both a Bitvec object and on a linear array of bits obtained from malloc.
37838 ** Opcode 5 works on the linear array only, not on the Bitvec.
37843 ** against the Bitvec object. If there are any differences,
37849 Bitvec *pBitvec = 0;
37855 /* Allocate the Bitvec to be tested and a linear array of
37901 ** Bitvec object. Start with the assumption that they do
37924 /************** End of bitvec.c **********************************************/
40694 Bitvec *pInSavepoint; /* Set of pages in this savepoint */
40903 Bitvec *pInJournal; /* One bit for each page in the database file */
42398 Bitvec *pDone, /* Bitvec of pages already played back */
43504 ** corresponding bit is set in a bitvec structure (variable pDone in the
43509 ** journal file. There is no need for a bitvec in this case.
43520 Bitvec *pDone = 0; /* Bitvec to ensure pages played back only once */
43525 /* Allocate a bitvec to use to store the set of pages rolled back */
44572 ** bitvec.
45497 ** to pgno in Pager.pInJournal (bitvec of pages already written to the
45727 ** Pager.pInJournal bitvec structure is allocated.
45892 ** Pager.pInJournal bitvec and the PagerSavepoint.pInSavepoint bitvecs
47051 ** "is journaled" bitvec flag has been set. This needs to be remedied by
51026 Bitvec *pHasContent; /* Set of pages moved to free-list this transaction */
52041 ** Set bit pgno of the BtShared.pHasContent bitvec. This is called
52045 ** The BtShared.pHasContent bitvec exists to work around an obscure
52068 ** The solution is the BtShared.pHasContent bitvec. Whenever a page is
52070 ** set in the bitvec. Whenever a leaf page is extracted from the free-list,
52072 ** set in BtShared.pHasContent. The contents of the bitvec are cleared
52098 Bitvec *p = pBt->pHasContent;
52103 ** Clear (destroy) the BtShared.pHasContent bitvec. This should be
125268 ** Run a test against a Bitvec object of size. The program argument