Annotation of embedaddon/sqlite3/src/test_btree.c, revision 1.1.1.1

1.1       misho       1: /*
                      2: ** 2007 May 05
                      3: **
                      4: ** The author disclaims copyright to this source code.  In place of
                      5: ** a legal notice, here is a blessing:
                      6: **
                      7: **    May you do good and not evil.
                      8: **    May you find forgiveness for yourself and forgive others.
                      9: **    May you share freely, never taking more than you give.
                     10: **
                     11: *************************************************************************
                     12: ** Code for testing the btree.c module in SQLite.  This code
                     13: ** is not included in the SQLite library.  It is used for automated
                     14: ** testing of the SQLite library.
                     15: */
                     16: #include "btreeInt.h"
                     17: #include <tcl.h>
                     18: 
                     19: /*
                     20: ** Usage: sqlite3_shared_cache_report
                     21: **
                     22: ** Return a list of file that are shared and the number of
                     23: ** references to each file.
                     24: */
                     25: int sqlite3BtreeSharedCacheReport(
                     26:   void * clientData,
                     27:   Tcl_Interp *interp,
                     28:   int objc,
                     29:   Tcl_Obj *CONST objv[]
                     30: ){
                     31: #ifndef SQLITE_OMIT_SHARED_CACHE
                     32:   extern BtShared *sqlite3SharedCacheList;
                     33:   BtShared *pBt;
                     34:   Tcl_Obj *pRet = Tcl_NewObj();
                     35:   for(pBt=GLOBAL(BtShared*,sqlite3SharedCacheList); pBt; pBt=pBt->pNext){
                     36:     const char *zFile = sqlite3PagerFilename(pBt->pPager);
                     37:     Tcl_ListObjAppendElement(interp, pRet, Tcl_NewStringObj(zFile, -1));
                     38:     Tcl_ListObjAppendElement(interp, pRet, Tcl_NewIntObj(pBt->nRef));
                     39:   }
                     40:   Tcl_SetObjResult(interp, pRet);
                     41: #endif
                     42:   return TCL_OK;
                     43: }
                     44: 
                     45: /*
                     46: ** Print debugging information about all cursors to standard output.
                     47: */
                     48: void sqlite3BtreeCursorList(Btree *p){
                     49: #ifdef SQLITE_DEBUG
                     50:   BtCursor *pCur;
                     51:   BtShared *pBt = p->pBt;
                     52:   for(pCur=pBt->pCursor; pCur; pCur=pCur->pNext){
                     53:     MemPage *pPage = pCur->apPage[pCur->iPage];
                     54:     char *zMode = pCur->wrFlag ? "rw" : "ro";
                     55:     sqlite3DebugPrintf("CURSOR %p rooted at %4d(%s) currently at %d.%d%s\n",
                     56:        pCur, pCur->pgnoRoot, zMode,
                     57:        pPage ? pPage->pgno : 0, pCur->aiIdx[pCur->iPage],
                     58:        (pCur->eState==CURSOR_VALID) ? "" : " eof"
                     59:     );
                     60:   }
                     61: #endif
                     62: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>