Lines Matching full:bitvec
8127 typedef struct Bitvec Bitvec;
11619 SQLITE_PRIVATE Bitvec *sqlite3BitvecCreate(u32);
11620 SQLITE_PRIVATE int sqlite3BitvecTest(Bitvec*, u32);
11621 SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec*, u32);
11622 SQLITE_PRIVATE void sqlite3BitvecClear(Bitvec*, u32, void*);
11623 SQLITE_PRIVATE void sqlite3BitvecDestroy(Bitvec*);
11624 SQLITE_PRIVATE u32 sqlite3BitvecSize(Bitvec*);
35813 /************** Begin file bitvec.c ******************************************/
35844 ** 5 and 500 set operations per Bitvec object, though the number of sets can
35846 ** Bitvec object is the number of pages in the database file at the
35851 /* Size of the Bitvec structure in bytes. */
35855 ** it will be aligned within the Bitvec struct. */
35856 #define BITVEC_USIZE (((BITVEC_SZ-(3*sizeof(u32)))/sizeof(Bitvec*))*sizeof(Bitvec*))
35881 #define BITVEC_NPTR (BITVEC_USIZE/sizeof(Bitvec *))
35891 ** If iSize<=BITVEC_NBIT, then Bitvec.u.aBitmap[] is a straight
35894 ** If iSize>BITVEC_NBIT and iDivisor==0 then Bitvec.u.aHash[] is
35898 ** sub-bitmaps pointed to by Bitvec.u.apSub[]. Each subbitmap
35905 struct Bitvec {
35917 Bitvec *apSub[BITVEC_NPTR]; /* Recursive representation */
35926 SQLITE_PRIVATE Bitvec *sqlite3BitvecCreate(u32 iSize){
35927 Bitvec *p;
35941 SQLITE_PRIVATE int sqlite3BitvecTest(Bitvec *p, u32 i){
35973 ** The calling function must ensure that p is a valid Bitvec object
35974 ** and that the value for "i" is within range of the Bitvec object.
35977 SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec *p, u32 i){
36048 SQLITE_PRIVATE void sqlite3BitvecClear(Bitvec *p, u32 i, void *pBuf){
36085 SQLITE_PRIVATE void sqlite3BitvecDestroy(Bitvec *p){
36097 ** Return the value of the iSize parameter specified when Bitvec *p
36100 SQLITE_PRIVATE u32 sqlite3BitvecSize(Bitvec *p){
36116 ** This routine runs an extensive test of the Bitvec code.
36119 ** to test the Bitvec. The integers are opcodes followed
36131 ** 5 N S X Set N bits from S increment X in array only, not in bitvec
36134 ** on both a Bitvec object and on a linear array of bits obtained from malloc.
36135 ** Opcode 5 works on the linear array only, not on the Bitvec.
36140 ** against the Bitvec object. If there are any differences,
36146 Bitvec *pBitvec = 0;
36152 /* Allocate the Bitvec to be tested and a linear array of
36199 ** Bitvec object. Start with the assumption that they do
36222 /************** End of bitvec.c **********************************************/
38874 Bitvec *pInSavepoint; /* Set of pages in this savepoint */
39074 Bitvec *pInJournal; /* One bit for each page in the database file */
40525 Bitvec *pDone, /* Bitvec of pages already played back */
41605 ** corresponding bit is set in a bitvec structure (variable pDone in the
41610 ** journal file. There is no need for a bitvec in this case.
41621 Bitvec *pDone = 0; /* Bitvec to ensure pages played back only once */
41626 /* Allocate a bitvec to use to store the set of pages rolled back */
42542 ** bitvec.
43403 ** to pgno in Pager.pInJournal (bitvec of pages already written to the
43575 ** Pager.pInJournal bitvec structure is allocated.
43734 ** Pager.pInJournal bitvec and the PagerSavepoint.pInSavepoint bitvecs
44891 ** "is journaled" bitvec flag has been set. This needs to be remedied by
48866 Bitvec *pHasContent; /* Set of pages moved to free-list this transaction */
49853 ** Set bit pgno of the BtShared.pHasContent bitvec. This is called
49857 ** The BtShared.pHasContent bitvec exists to work around an obscure
49880 ** The solution is the BtShared.pHasContent bitvec. Whenever a page is
49882 ** set in the bitvec. Whenever a leaf page is extracted from the free-list,
49884 ** set in BtShared.pHasContent. The contents of the bitvec are cleared
49910 Bitvec *p = pBt->pHasContent;
49915 ** Clear (destroy) the BtShared.pHasContent bitvec. This should be
115210 ** Run a test against a Bitvec object of size. The program argument