Branch Coverage

btree_rb.c
Criterion Covered Total %
branch 0 314 0.0


line true false branch
163 0 0 for(p=pCur->pTree->pCursors; p; p=p->pShared){
164 0 0 if( p!=pCur ){
165 0 0 if( p->wrFlag==0 ) return SQLITE_LOCKED;
185 0 0 if( mcmp == 0){
186 0 0 if( nKey1 == nKey2 ) return 0;
187 0 0 return ((nKey1 < nKey2)?-1:1);
189 0 0 return ((mcmp>0)?1:-1);
213 0 0 if( pX->pParent ){
214 0 0 if( pX->pParent->pLeft == pX ) pX->pParent->pLeft = pY;
220 0 0 if( pb ) pb->pParent = pX;
221 0 0 if( pTree->pHead == pX ) pTree->pHead = pY;
245 0 0 if( pX->pParent ){
246 0 0 if( pX->pParent->pLeft == pX ) pX->pParent->pLeft = pY;
252 0 0 if( pb ) pb->pParent = pX;
253 0 0 if( pTree->pHead == pX ) pTree->pHead = pY;
264 0 0 if( !orig ){
284 0 0 for( i=0; i
291 0 0 if( pNode ){
293 0 0 if( pNode->isBlack ){
338 0 0 while( pNode ){
341 0 0 if( pNode->pLeft ){
348 0 0 if( pNode->pRight ){
357 0 0 if( !pNode->isBlack &&
0 0 if( !pNode->isBlack &&
358 0 0 ( (pNode->pLeft && !pNode->pLeft->isBlack) ||
0 0 ( (pNode->pLeft && !pNode->pLeft->isBlack) ||
359 0 0 (pNode->pRight && !pNode->pRight->isBlack) )
372 0 0 if( pNode->pLeft ){
376 0 0 if( pNode->pRight ){
380 0 0 if( leftHeight != rightHeight ){
390 0 0 if( pNode->pParent ){
391 0 0 if( pNode == pNode->pParent->pLeft ) prev_step = 1;
417 0 0 while( pX != pTree->pHead && !pX->pParent->isBlack ){
0 0 while( pX != pTree->pHead && !pX->pParent->isBlack ){
427 0 0 if( pX->pParent == pGrandparent->pLeft )
443 0 0 if( pUncle && !pUncle->isBlack ){
0 0 if( pUncle && !pUncle->isBlack ){
450 0 0 if( pX->pParent == pGrandparent->pLeft ){
451 0 0 if( pX == pX->pParent->pRight ){
484 0 0 if( pX == pX->pParent->pLeft ){
519 0 0 while( pX != pTree->pHead && (!pX || pX->isBlack) ){
0 0 while( pX != pTree->pHead && (!pX || pX->isBlack) ){
0 0 while( pX != pTree->pHead && (!pX || pX->isBlack) ){
520 0 0 if( pX == pParent->pLeft ){
522 0 0 if( pSib && !(pSib->isBlack) ){
0 0 if( pSib && !(pSib->isBlack) ){
528 0 0 if( !pSib ){
530 0 0 }else if(
531 0 0 (!pSib->pLeft || pSib->pLeft->isBlack) &&
0 0 (!pSib->pLeft || pSib->pLeft->isBlack) &&
532 0 0 (!pSib->pRight || pSib->pRight->isBlack) ) {
536 0 0 if( (!pSib->pRight || pSib->pRight->isBlack) ){
0 0 if( (!pSib->pRight || pSib->pRight->isBlack) ){
537 0 0 if( pSib->pLeft ) pSib->pLeft->isBlack = 1;
544 0 0 if( pSib->pRight ) pSib->pRight->isBlack = 1;
550 0 0 if( pSib && !(pSib->isBlack) ){
0 0 if( pSib && !(pSib->isBlack) ){
556 0 0 if( !pSib ){
558 0 0 }else if(
559 0 0 (!pSib->pLeft || pSib->pLeft->isBlack) &&
0 0 (!pSib->pLeft || pSib->pLeft->isBlack) &&
560 0 0 (!pSib->pRight || pSib->pRight->isBlack) ){
564 0 0 if( (!pSib->pLeft || pSib->pLeft->isBlack) ){
0 0 if( (!pSib->pLeft || pSib->pLeft->isBlack) ){
565 0 0 if( pSib->pRight ) pSib->pRight->isBlack = 1;
572 0 0 if( pSib->pLeft ) pSib->pLeft->isBlack = 1;
579 0 0 if( pX ) pX->isBlack = 1;
599 0 0 if( pRbtree->eTransState == TRANS_INTRANSACTION ){
603 0 0 if( pRbtree->eTransState == TRANS_INCHECKPOINT ){
604 0 0 if( !pRbtree->pCheckRollback ){
620 0 0 if( sqlite_malloc_failed ) goto open_no_mem;
625 0 0 if( sqlite_malloc_failed ) goto open_no_mem;
650 0 0 if( sqlite_malloc_failed ) return SQLITE_NOMEM;
654 0 0 if( tree->eTransState != TRANS_ROLLBACK ){
656 0 0 if( pRollbackOp==0 ) return SQLITE_NOMEM;
679 0 0 if( tree->eTransState != TRANS_ROLLBACK ){
681 0 0 if( pRollbackOp==0 ) return SQLITE_NOMEM;
695 0 0 if( !pCur->pNode ) {
698 0 0 if( (pCur->pNode->nKey - nIgnore) < 0 ){
723 0 0 if( sqlite_malloc_failed ) return SQLITE_NOMEM;
760 0 0 if( checkReadLocks(pCur) ){
767 0 0 if( sqlite_malloc_failed ) return SQLITE_NOMEM;
782 0 0 if( match ){
784 0 0 if( pNode==0 ) return SQLITE_NOMEM;
787 0 0 if( sqlite_malloc_failed ) return SQLITE_NOMEM;
791 0 0 if( pCur->pNode ){
817 0 0 if( pCur->pRbtree->eTransState != TRANS_ROLLBACK ){
819 0 0 if( pOp==0 ) return SQLITE_NOMEM;
824 0 0 if( sqlite_malloc_failed ) return SQLITE_NOMEM;
834 0 0 if( pCur->pRbtree->eTransState != TRANS_ROLLBACK ){
836 0 0 if( pOp==0 ) return SQLITE_NOMEM;
840 0 0 if( sqlite_malloc_failed ) return SQLITE_NOMEM;
881 0 0 while( pCur->pNode && *pRes ) {
0 0 while( pCur->pNode && *pRes ) {
899 0 0 if( !pCur->pNode ) pCur->pNode = pTmp;
930 0 0 if( checkReadLocks(pCur) ){
935 0 0 if( !pZ ){
941 0 0 if( pCur->pRbtree->eTransState != TRANS_ROLLBACK ){
943 0 0 if( pOp==0 ) return SQLITE_NOMEM;
959 0 0 if( pZ->pLeft && pZ->pRight ){
0 0 if( pZ->pLeft && pZ->pRight ){
965 0 0 if( pCur->pRbtree->eTransState == TRANS_ROLLBACK ){
982 0 0 if( res ){
987 0 0 if( pCur->pRbtree->eTransState == TRANS_ROLLBACK ){
998 0 0 pChild = ((pZ->pLeft)?pZ->pLeft:pZ->pRight);
999 0 0 if( pZ->pParent ){
1002 0 0 ?&pZ->pParent->pLeft:&pZ->pParent->pRight);
1007 0 0 if( pChild ) pChild->pParent = pZ->pParent;
1015 0 0 if( pZ->isBlack ){
1035 0 0 while( pNode ){
1036 0 0 if( pNode->pLeft ){
1039 0 0 else if( pNode->pRight ){
1044 0 0 if( tree->eTransState == TRANS_ROLLBACK ){
1049 0 0 if( pRollbackOp==0 ) return SQLITE_NOMEM;
1059 0 0 if( pTmp ){
1060 0 0 if( pTmp->pLeft == pNode ) pTmp->pLeft = 0;
1061 0 0 else if( pTmp->pRight == pNode ) pTmp->pRight = 0;
1073 0 0 if( pCur->pTree->pHead ){
1075 0 0 while( pCur->pNode->pLeft ){
1079 0 0 if( pCur->pNode ){
1090 0 0 if( pCur->pTree->pHead ){
1092 0 0 while( pCur->pNode->pRight ){
1096 0 0 if( pCur->pNode ){
1113 0 0 if( pCur->pNode && pCur->eSkip != SKIP_NEXT ){
0 0 if( pCur->pNode && pCur->eSkip != SKIP_NEXT ){
1114 0 0 if( pCur->pNode->pRight ){
1116 0 0 while( pCur->pNode->pLeft )
1121 0 0 while( pCur->pNode && (pCur->pNode->pRight == pX) ){
0 0 while( pCur->pNode && (pCur->pNode->pRight == pX) ){
1129 0 0 if( !pCur->pNode ){
1140 0 0 if( pCur->pNode && pCur->eSkip != SKIP_PREV ){
0 0 if( pCur->pNode && pCur->eSkip != SKIP_PREV ){
1141 0 0 if( pCur->pNode->pLeft ){
1143 0 0 while( pCur->pNode->pRight )
1148 0 0 while( pCur->pNode && (pCur->pNode->pLeft == pX) ){
0 0 while( pCur->pNode && (pCur->pNode->pLeft == pX) ){
1156 0 0 if( !pCur->pNode ){
1167 0 0 if( pCur->pNode ){
1177 0 0 if( !pCur->pNode ) return 0;
1178 0 0 if( !pCur->pNode->pKey || ((amt + offset) <= pCur->pNode->nKey) ){
0 0 if( !pCur->pNode->pKey || ((amt + offset) <= pCur->pNode->nKey) ){
1189 0 0 if( pCur->pNode ){
1199 0 0 if( !pCur->pNode ) return 0;
1200 0 0 if( (amt + offset) <= pCur->pNode->nData ){
1211 0 0 if( pCur->pTree->pCursors==pCur ){
1215 0 0 while( p && p->pShared!=pCur ){ p = p->pShared; }
0 0 while( p && p->pShared!=pCur ){ p = p->pShared; }
1217 0 0 if( p ){
1247 0 0 for(p=sqliteHashFirst(&tree->tblHash); p; p=sqliteHashNext(p)){
1266 0 0 if( tree->eTransState != TRANS_NONE )
1278 0 0 while( pOp ){
1305 0 0 while( (p=sqliteHashFirst(&tree->tblHash))!=0 ){
1325 0 0 while( pList ){
1375 0 0 if( tree->eTransState != TRANS_INTRANSACTION )
1386 0 0 if( tree->eTransState == TRANS_INCHECKPOINT ){
1387 0 0 if( tree->pCheckRollback ){
1400 0 0 if( tree->eTransState != TRANS_INCHECKPOINT ) return SQLITE_OK;