Lines Matching refs:pCheck

18396   ExprList *pCheck;    /* All CHECK constraints */  member
28882 CheckMutex *pCheck = (CheckMutex*)p; in checkMutexFree() local
28883 pGlobalMutexMethods->xMutexFree(pCheck->mutex); in checkMutexFree()
28884 sqlite3_free(pCheck); in checkMutexFree()
28897 CheckMutex *pCheck = (CheckMutex*)p; in checkMutexEnter() local
28898 if( pCheck->iType==SQLITE_MUTEX_WARNONCONTENTION ){ in checkMutexEnter()
28899 if( SQLITE_OK==pGlobalMutexMethods->xMutexTry(pCheck->mutex) ){ in checkMutexEnter()
28906 pGlobalMutexMethods->xMutexEnter(pCheck->mutex); in checkMutexEnter()
28913 CheckMutex *pCheck = (CheckMutex*)p; in checkMutexTry() local
28914 return pGlobalMutexMethods->xMutexTry(pCheck->mutex); in checkMutexTry()
28921 CheckMutex *pCheck = (CheckMutex*)p; in checkMutexLeave() local
28922 pGlobalMutexMethods->xMutexLeave(pCheck->mutex); in checkMutexLeave()
28951 CheckMutex *pCheck = (CheckMutex*)p; in sqlite3MutexWarnOnContention() local
28952 assert( pCheck->iType==SQLITE_MUTEX_RECURSIVE ); in sqlite3MutexWarnOnContention()
28953 pCheck->iType = SQLITE_MUTEX_WARNONCONTENTION; in sqlite3MutexWarnOnContention()
81009 static void checkOom(IntegrityCk *pCheck){
81010 pCheck->rc = SQLITE_NOMEM;
81011 pCheck->mxErr = 0; /* Causes integrity_check processing to stop */
81012 if( pCheck->nErr==0 ) pCheck->nErr++;
81019 static void checkProgress(IntegrityCk *pCheck){
81020 sqlite3 *db = pCheck->db;
81022 pCheck->rc = SQLITE_INTERRUPT;
81023 pCheck->nErr++;
81024 pCheck->mxErr = 0;
81029 pCheck->nStep++;
81030 if( (pCheck->nStep % db->nProgressOps)==0
81033 pCheck->rc = SQLITE_INTERRUPT;
81034 pCheck->nErr++;
81035 pCheck->mxErr = 0;
81045 IntegrityCk *pCheck,
81050 checkProgress(pCheck);
81051 if( !pCheck->mxErr ) return;
81052 pCheck->mxErr--;
81053 pCheck->nErr++;
81055 if( pCheck->errMsg.nChar ){
81056 sqlite3_str_append(&pCheck->errMsg, "\n", 1);
81058 if( pCheck->zPfx ){
81059 sqlite3_str_appendf(&pCheck->errMsg, pCheck->zPfx,
81060 pCheck->v0, pCheck->v1, pCheck->v2);
81062 sqlite3_str_vappendf(&pCheck->errMsg, zFormat, ap);
81064 if( pCheck->errMsg.accError==SQLITE_NOMEM ){
81065 checkOom(pCheck);
81076 static int getPageReferenced(IntegrityCk *pCheck, Pgno iPg){
81077 assert( pCheck->aPgRef!=0 );
81078 assert( iPg<=pCheck->nCkPage && sizeof(pCheck->aPgRef[0])==1 );
81079 return (pCheck->aPgRef[iPg/8] & (1 << (iPg & 0x07)));
81085 static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg){
81086 assert( pCheck->aPgRef!=0 );
81087 assert( iPg<=pCheck->nCkPage && sizeof(pCheck->aPgRef[0])==1 );
81088 pCheck->aPgRef[iPg/8] |= (1 << (iPg & 0x07));
81100 static int checkRef(IntegrityCk *pCheck, Pgno iPage){
81101 if( iPage>pCheck->nCkPage || iPage==0 ){
81102 checkAppendMsg(pCheck, "invalid page number %u", iPage);
81105 if( getPageReferenced(pCheck, iPage) ){
81106 checkAppendMsg(pCheck, "2nd reference to page %u", iPage);
81109 setPageReferenced(pCheck, iPage);
81120 IntegrityCk *pCheck, /* Integrity check context */
81129 rc = ptrmapGet(pCheck->pBt, iChild, &ePtrmapType, &iPtrmapParent);
81131 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) checkOom(pCheck);
81132 checkAppendMsg(pCheck, "Failed to read ptrmap key=%u", iChild);
81137 checkAppendMsg(pCheck,
81149 IntegrityCk *pCheck, /* Integrity checking context */
81156 int nErrAtStart = pCheck->nErr;
81157 while( iPage!=0 && pCheck->mxErr ){
81160 if( checkRef(pCheck, iPage) ) break;
81162 if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){
81163 checkAppendMsg(pCheck, "failed to get page %u", iPage);
81170 if( pCheck->pBt->autoVacuum ){
81171 checkPtrmap(pCheck, iPage, PTRMAP_FREEPAGE, 0);
81174 if( n>pCheck->pBt->usableSize/4-2 ){
81175 checkAppendMsg(pCheck,
81182 if( pCheck->pBt->autoVacuum ){
81183 checkPtrmap(pCheck, iFreePage, PTRMAP_FREEPAGE, 0);
81186 checkRef(pCheck, iFreePage);
81197 if( pCheck->pBt->autoVacuum && N>0 ){
81199 checkPtrmap(pCheck, i, PTRMAP_OVERFLOW2, iPage);
81206 if( N && nErrAtStart==pCheck->nErr ){
81207 checkAppendMsg(pCheck,
81284 IntegrityCk *pCheck, /* Context for the sanity check */
81310 const char *saved_zPfx = pCheck->zPfx;
81311 int saved_v1 = pCheck->v1;
81312 int saved_v2 = pCheck->v2;
81317 checkProgress(pCheck);
81318 if( pCheck->mxErr==0 ) goto end_of_check;
81319 pBt = pCheck->pBt;
81322 if( checkRef(pCheck, iPage) ) return 0;
81323 pCheck->zPfx = "Tree %u page %u: ";
81324 pCheck->v1 = iPage;
81326 checkAppendMsg(pCheck,
81328 if( rc==SQLITE_IOERR_NOMEM ) pCheck->rc = SQLITE_NOMEM;
81338 checkAppendMsg(pCheck,
81344 checkAppendMsg(pCheck, "free space corruption", rc);
81351 pCheck->zPfx = "Tree %u page %u cell %u: ";
81360 pCheck->nRow += nCell;
81374 pCheck->zPfx = "Tree %u page %u right child: ";
81375 checkPtrmap(pCheck, pgno, PTRMAP_BTREE, iPage);
81378 depth = checkTreePage(pCheck, pgno, &maxKey, maxKey);
81383 heap = pCheck->heap;
81389 for(i=nCell-1; i>=0 && pCheck->mxErr; i--){
81393 pCheck->v2 = i;
81398 checkAppendMsg(pCheck, "Offset %u out of range %u..%u",
81406 checkAppendMsg(pCheck, "Extends off end of page");
81414 checkAppendMsg(pCheck, "Rowid %lld out of order", info.nKey);
81429 checkPtrmap(pCheck, pgnoOvfl, PTRMAP_OVERFLOW1, iPage);
81432 checkList(pCheck, 0, pgnoOvfl, nPage);
81440 checkPtrmap(pCheck, pgno, PTRMAP_BTREE, iPage);
81443 d2 = checkTreePage(pCheck, pgno, &maxKey, maxKey);
81446 checkAppendMsg(pCheck, "Child page depth differs");
81458 pCheck->zPfx = 0;
81459 if( doCoverageCheck && pCheck->mxErr>0 ){
81464 heap = pCheck->heap;
81515 checkAppendMsg(pCheck,
81530 checkAppendMsg(pCheck,
81539 pCheck->zPfx = saved_zPfx;
81540 pCheck->v1 = saved_v1;
81541 pCheck->v2 = saved_v2;
116589 if( pNew->pCheck!=0
117711 sqlite3WalkExprList(&sWalker, sParse.pNewTable->pCheck);
117937 sqlite3WalkExprList(&sWalker, pTab->pCheck);
118089 sqlite3WalkExprList(&sWalker, sParse.pNewTable->pCheck);
122230 sqlite3ExprListDelete(db, pTable->pCheck);
123285 pTab->pCheck = sqlite3ExprListAppend(pParse, pTab->pCheck, pCheckExpr);
123287 sqlite3ExprListSetName(pParse, pTab->pCheck, &pParse->constraintName, 1);
123294 sqlite3ExprListSetName(pParse, pTab->pCheck, &t, 1);
124094 if( p->pCheck ){
124095 sqlite3ResolveSelfReference(pParse, p, NC_IsCheck, 0, p->pCheck);
124099 sqlite3ExprListDelete(db, p->pCheck);
124100 p->pCheck = 0;
124102 markExprListImmutable(p->pCheck);
124398 p->pCheck = sqlite3ExprListDup(db, pCNames, EXPRDUP_REDUCE);
124519 }else if( pTable->pCheck ){
124526 sqlite3ColumnsFromExprList(pParse, pTable->pCheck,
134937 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
134938 ExprList *pCheck = pTab->pCheck;
134941 for(i=0; i<pCheck->nExpr; i++){
134944 Expr *pExpr = pCheck->a[i].pExpr;
134966 char *zName = pCheck->a[i].zEName;
136079 if( pDest->pCheck
136081 && sqlite3ExprListCompare(pSrc->pCheck,pDest->pCheck,-1)
140744 if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){
140745 ExprList *pCheck = sqlite3ExprListDup(db, pTab->pCheck, 0);
140752 for(k=pCheck->nExpr-1; k>0; k--){
140753 sqlite3ExprIfFalse(pParse, pCheck->a[k].pExpr, addrCkFault, 0);
140755 sqlite3ExprIfTrue(pParse, pCheck->a[0].pExpr, addrCkOk,
140765 sqlite3ExprListDelete(db, pCheck);
200700 sqlite3_stmt *pCheck = 0; /* Statement to query database with */
200703 rc = fts3SqlStmt(p, SQL_SEGMENT_IS_APPENDABLE, &pCheck, 0);
200705 sqlite3_bind_int64(pCheck, 1, iEnd);
200706 if( SQLITE_ROW==sqlite3_step(pCheck) ) bRes = 1;
200707 rc = sqlite3_reset(pCheck);
214147 static void rtreeCheckReset(RtreeCheck *pCheck, sqlite3_stmt *pStmt){
214149 if( pCheck->rc==SQLITE_OK ) pCheck->rc = rc;
214161 RtreeCheck *pCheck, /* RtreeCheck object */
214171 if( pCheck->rc==SQLITE_OK ){
214173 pCheck->rc = SQLITE_NOMEM;
214175 pCheck->rc = sqlite3_prepare_v2(pCheck->db, z, -1, &pRet, 0);
214189 static void rtreeCheckAppendMsg(RtreeCheck *pCheck, const char *zFmt, ...){
214192 if( pCheck->rc==SQLITE_OK && pCheck->nErr<RTREE_CHECK_MAX_ERROR ){
214195 pCheck->rc = SQLITE_NOMEM;
214197 pCheck->zReport = sqlite3_mprintf("%z%s%z",
214198 pCheck->zReport, (pCheck->zReport ? "\n" : ""), z
214200 if( pCheck->zReport==0 ){
214201 pCheck->rc = SQLITE_NOMEM;
214204 pCheck->nErr++;
214223 static u8 *rtreeCheckGetNode(RtreeCheck *pCheck, i64 iNode, int *pnNode){
214226 if( pCheck->rc==SQLITE_OK && pCheck->pGetNode==0 ){
214227 pCheck->pGetNode = rtreeCheckPrepare(pCheck,
214229 pCheck->zDb, pCheck->zTab
214233 if( pCheck->rc==SQLITE_OK ){
214234 sqlite3_bind_int64(pCheck->pGetNode, 1, iNode);
214235 if( sqlite3_step(pCheck->pGetNode)==SQLITE_ROW ){
214236 int nNode = sqlite3_column_bytes(pCheck->pGetNode, 0);
214237 const u8 *pNode = (const u8*)sqlite3_column_blob(pCheck->pGetNode, 0);
214240 pCheck->rc = SQLITE_NOMEM;
214246 rtreeCheckReset(pCheck, pCheck->pGetNode);
214247 if( pCheck->rc==SQLITE_OK && pRet==0 ){
214248 rtreeCheckAppendMsg(pCheck, "Node %lld missing from database", iNode);
214268 RtreeCheck *pCheck, /* RtreeCheck object */
214281 if( pCheck->aCheckMapping[bLeaf]==0 ){
214282 pCheck->aCheckMapping[bLeaf] = rtreeCheckPrepare(pCheck,
214283 azSql[bLeaf], pCheck->zDb, pCheck->zTab
214286 if( pCheck->rc!=SQLITE_OK ) return;
214288 pStmt = pCheck->aCheckMapping[bLeaf];
214292 rtreeCheckAppendMsg(pCheck, "Mapping (%lld -> %lld) missing from %s table",
214298 rtreeCheckAppendMsg(pCheck,
214304 rtreeCheckReset(pCheck, pStmt);
214320 RtreeCheck *pCheck,
214330 for(i=0; i<pCheck->nDim; i++){
214335 if( pCheck->bInt ? c1.i>c2.i : c1.f>c2.f ){
214336 rtreeCheckAppendMsg(pCheck,
214345 if( (pCheck->bInt ? c1.i<p1.i : c1.f<p1.f)
214346 || (pCheck->bInt ? c2.i>p2.i : c2.f>p2.f)
214348 rtreeCheckAppendMsg(pCheck,
214366 RtreeCheck *pCheck,
214375 assert( pCheck->nDim>0 );
214377 aNode = rtreeCheckGetNode(pCheck, iNode, &nNode);
214380 rtreeCheckAppendMsg(pCheck,
214389 rtreeCheckAppendMsg(pCheck, "Rtree depth out of range (%d)", iDepth);
214395 if( (4 + nCell*(8 + pCheck->nDim*2*4))>nNode ){
214396 rtreeCheckAppendMsg(pCheck,
214402 u8 *pCell = &aNode[4 + i*(8 + pCheck->nDim*2*4)];
214404 rtreeCheckCellCoord(pCheck, iNode, i, &pCell[8], aParent);
214407 rtreeCheckMapping(pCheck, 0, iVal, iNode);
214408 rtreeCheckNode(pCheck, iDepth-1, &pCell[8], iVal);
214409 pCheck->nNonLeaf++;
214411 rtreeCheckMapping(pCheck, 1, iVal, iNode);
214412 pCheck->nLeaf++;
214428 static void rtreeCheckCount(RtreeCheck *pCheck, const char *zTbl, i64 nExpect){
214429 if( pCheck->rc==SQLITE_OK ){
214431 pCount = rtreeCheckPrepare(pCheck, "SELECT count(*) FROM %Q.'%q%s'",
214432 pCheck->zDb, pCheck->zTab, zTbl
214438 rtreeCheckAppendMsg(pCheck, "Wrong number of entries in %%%s table"
214443 pCheck->rc = sqlite3_finalize(pCount);