File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / src / test_btree.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:17 2012 UTC (12 years, 8 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    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>