Branch Coverage

vdbe.c
Criterion Covered Total %
branch 430 1230 34.9


line true false branch
117 0 433 if( p->magic!=VDBE_MAGIC_RUN ){
121 0 433 if( sqliteSafetyOn(db) ){
125 0 433 if( p->explain ){
130 97 336 if( rc==SQLITE_DONE || rc==SQLITE_ROW ){
95 2 if( rc==SQLITE_DONE || rc==SQLITE_ROW ){
131 431 0 if( pazColName ) *pazColName = (const char**)p->azColName;
132 431 0 if( pN ) *pN = p->nResColumn;
134 2 0 if( pazColName) *pazColName = 0;
135 2 0 if( pN ) *pN = 0;
137 433 0 if( pazValue ){
138 95 338 if( rc==SQLITE_ROW ){
144 0 433 if( sqliteSafetyOff(db) ){
162 0 16 if( pElem==0 ) return 1;
167 0 16 if( pOld!=0 ){
172 19 16 for(i=0, pMem=pElem->aMem; inMem; i++, pMem++){
185 0 0 if( pElem==0 ){
189 0 0 return pElem ? sqliteHashData(pElem) : 0;
199 2 56 if( fg & MEM_Real ){
201 43 13 }else if( fg & MEM_Int ){
223 0 0 if( (fg & MEM_Str)==0 ){
228 0 0 if( z==0 ) return 1;
252 0 0 if( z==0 ) return 1;
271 1098 510 while( N>0 ){
273 102 996 Release(pTos);
292 0 27 if( *zNum=='-' ){
295 0 27 }else if( *zNum=='+' ){
301 27 27 for(i=0; (c=zNum[i])>='0' && c<='9'; i++){
27 0 for(i=0; (c=zNum[i])>='0' && c<='9'; i++){
304 0 27 *pNum = neg ? -v : v;
305 27 0 return c==0 && i>0 && (i<10 || (i==10 && memcmp(zNum,"2147483647",10)<=0));
27 0 return c==0 && i>0 && (i<10 || (i==10 && memcmp(zNum,"2147483647",10)<=0));
0 27 return c==0 && i>0 && (i<10 || (i==10 && memcmp(zNum,"2147483647",10)<=0));
0 0 return c==0 && i>0 && (i<10 || (i==10 && memcmp(zNum,"2147483647",10)<=0));
0 0 return c==0 && i>0 && (i<10 || (i==10 && memcmp(zNum,"2147483647",10)<=0));
317 0 0 if( pStack->flags & MEM_Real ){
319 0 0 Release(pStack);
320 0 0 }else if( pStack->flags & MEM_Str ){
322 0 0 Release(pStack);
337 0 0 if( pStack->flags & MEM_Str ){
339 0 0 }else if( pStack->flags & MEM_Int ){
360 31 150 while( pLeft && pRight ){
21 10 while( pLeft && pRight ){
362 10 11 if( c<=0 ){
371 10 150 if( pLeft ){
373 117 33 }else if( pRight ){
389 0 0 for(i=0; i
0 0 for(i=0; i
391 0 0 if( c=='\r' || c=='\n' ){
0 0 if( c=='\r' || c=='\n' ){
392 0 0 if( c=='\r' ){
395 0 0 if( c!=EOF && c!='\n' ) ungetc(c, in);
0 0 if( c!=EOF && c!='\n' ) ungetc(c, in);
402 0 0 return i>0 ? zBuf : 0;
414 201 17 if( mxCursor>=p->nCursor ){
416 0 201 if( aCsr==0 ) return 1;
502 0 433 if( p->magic!=VDBE_MAGIC_RUN ) return SQLITE_MISUSE;
507 0 433 if( sqlite_malloc_failed ) goto no_mem;
509 91 342 if( p->popStack ){
513 0 433 CHECK_FOR_INTERRUPT;
514 4575 1 for(pc=p->pc; rc==SQLITE_OK; pc++){
550 0 4575 if( db->xProgress ){
551 0 0 if( db->nProgressOps==nProgressOps ){
552 0 0 if( db->xProgress(db->pProgressArg)!=0 ){
600 0 37 CHECK_FOR_INTERRUPT;
616 0 0 if( p->returnDepth>=sizeof(p->returnStack)/sizeof(p->returnStack[0]) ){
633 0 0 if( p->returnDepth<=0 ){
663 1 336 if( pOp->p1!=SQLITE_OK ){
666 1 0 if( pOp->p3 ){
685 94 292 if( pOp->p3 ){
701 94 215 if( z==0 ){
723 0 0 if( j>=0 && jnVar && p->azVar[j]!=0 ){
0 0 if( j>=0 && jnVar && p->azVar[j]!=0 ){
0 0 if( j>=0 && jnVar && p->azVar[j]!=0 ){
764 31 49 if( pTos->flags & MEM_Str ){
765 31 0 if( pOp->p2 && (pTos->flags & (MEM_Dyn|MEM_Ephem)) ){
0 31 if( pOp->p2 && (pTos->flags & (MEM_Dyn|MEM_Ephem)) ){
768 0 31 }else if( pTos->flags & MEM_Short ){
771 0 31 }else if( (pTos->flags & MEM_Static)==0 ){
773 0 0 if( sqlite_malloc_failed ) goto no_mem;
798 0 48 Deephemeralize(pTos);
0 0 Deephemeralize(pTos);
799 48 48 for(i=0; ip1; i++, pFrom++){
800 0 48 Deephemeralize(&pFrom[1]);
0 0 Deephemeralize(&pFrom[1]);
803 0 48 if( pFrom->flags & MEM_Short ){
810 3 45 if( pTos->flags & MEM_Short ){
828 0 0 Deephemeralize(pTos);
0 0 Deephemeralize(pTos);
829 0 0 Release(pTo);
831 0 0 if( pTo->flags & MEM_Short ){
854 123 667 if( pOp->p2 ) p->nResColumn = pOp->p1+1;
871 185 80 for(i=0; ip1; i++, pCol++){
872 17 168 if( pCol->flags & MEM_Null ){
875 18 150 Stringify(pCol);
912 0 0 if( zSep==0 ) zSep = "";
917 0 0 for(i=0; i
918 0 0 if( pTerm->flags & MEM_Null ){
922 0 0 Stringify(pTerm);
926 0 0 if( nByte<0 ){
927 0 0 if( pOp->p2==0 ){
935 0 0 if( zNew==0 ) goto no_mem;
938 0 0 for(i=j=0; i
942 0 0 if( nSep>0 && i
0 0 if( nSep>0 && i
948 0 0 if( pOp->p2==0 ){
1011 0 0 if( ((pTos->flags | pNos->flags) & MEM_Null)!=0 ){
1012 0 0 Release(pTos);
1014 0 0 Release(pTos);
1016 0 0 }else if( (pTos->flags & pNos->flags & MEM_Int)==MEM_Int ){
1025 0 0 if( a==0 ) goto divide_by_zero;
1030 0 0 if( a==0 ) goto divide_by_zero;
1035 0 0 Release(pTos);
1037 0 0 Release(pTos);
1042 0 0 Realify(pTos);
1043 0 0 Realify(pNos);
1051 0 0 if( a==0.0 ) goto divide_by_zero;
1058 0 0 if( ia==0.0 ) goto divide_by_zero;
1063 0 0 Release(pTos);
1065 0 0 Release(pTos);
1072 0 0 Release(pTos);
1074 0 0 Release(pTos);
1096 92 65 for(i=0; i
1097 2 90 if( pArg->flags & MEM_Null ){
1100 0 90 Stringify(pArg);
1109 0 65 if( sqliteSafetyOff(db) ) goto abort_due_to_misuse;
1111 0 65 if( sqliteSafetyOn(db) ) goto abort_due_to_misuse;
1115 24 41 if( pTos->flags & MEM_Short ){
1118 1 64 if( ctx.isError ){
1119 1 0 sqliteSetString(&p->zErrMsg,
1162 0 0 if( (pTos->flags | pNos->flags) & MEM_Null ){
1168 0 0 Integerify(pTos);
1169 0 0 Integerify(pNos);
1182 0 0 Release(pTos);
1197 0 0 Integerify(pTos);
1215 0 0 if( (pTos->flags & (MEM_Int|MEM_Real))==0
1216 0 0 && ((pTos->flags & MEM_Str)==0 || sqliteIsNumber(pTos->z)==0) ){
0 0 && ((pTos->flags & MEM_Str)==0 || sqliteIsNumber(pTos->z)==0) ){
1217 0 0 Release(pTos);
1222 0 0 if( pTos->flags & MEM_Int ){
1225 0 0 Realify(pTos);
1227 0 0 if( pTos->r>(double)v ) v++;
1228 0 0 if( pOp->p1 && pTos->r==(double)v ) v++;
0 0 if( pOp->p1 && pTos->r==(double)v ) v++;
1230 0 0 Release(pTos);
1249 0 0 if( pTos->flags & MEM_Int ){
1251 0 0 }else if( pTos->flags & MEM_Real ){
1254 0 0 if( r!=pTos->r ){
1258 0 0 }else if( pTos->flags & MEM_Str ){
1260 0 0 if( !toInt(pTos->z, &v) ){
1262 0 0 if( !sqliteIsNumber(pTos->z) ){
1265 0 0 Realify(pTos);
1268 0 0 if( r!=pTos->r ){
1276 0 0 Release(pTos);
1281 0 0 if( pOp->p2==0 ){
1285 0 0 if( pOp->p1 ) popStack(&pTos, 1);
1414 4 42 if( (ft | fn) & MEM_Null ){
1416 4 0 if( pOp->p2 ){
1417 4 0 if( pOp->p1 ) pc = pOp->p2-1;
1423 0 42 }else if( (ft & fn & MEM_Int)==MEM_Int ){
1425 27 15 }else if( (ft & MEM_Int)!=0 && (fn & MEM_Str)!=0 && toInt(pNos->z,&v) ){
27 0 }else if( (ft & MEM_Int)!=0 && (fn & MEM_Str)!=0 && toInt(pNos->z,&v) ){
27 0 }else if( (ft & MEM_Int)!=0 && (fn & MEM_Str)!=0 && toInt(pNos->z,&v) ){
1427 0 15 }else if( (fn & MEM_Int)!=0 && (ft & MEM_Str)!=0 && toInt(pTos->z,&v) ){
0 0 }else if( (fn & MEM_Int)!=0 && (ft & MEM_Str)!=0 && toInt(pTos->z,&v) ){
0 0 }else if( (fn & MEM_Int)!=0 && (ft & MEM_Str)!=0 && toInt(pTos->z,&v) ){
1430 0 15 Stringify(pTos);
1431 0 15 Stringify(pNos);
1443 42 0 if( pOp->p2 ){
1444 10 32 if( c ) pc = pOp->p2-1;
1568 0 0 if( (pNos->flags | pTos->flags) & MEM_Null ){
1570 0 0 if( pOp->p2 ){
1571 0 0 if( pOp->p1 ) pc = pOp->p2-1;
1578 0 0 Stringify(pTos);
1579 0 0 Stringify(pNos);
1596 0 0 if( pOp->p2 ){
1597 0 0 if( c ) pc = pOp->p2-1;
1624 0 0 if( pTos->flags & MEM_Null ){
1627 0 0 Integerify(pTos);
1630 0 0 if( pNos->flags & MEM_Null ){
1633 0 0 Integerify(pNos);
1636 0 0 if( pOp->opcode==OP_And ){
1645 0 0 if( v1==2 ){
1669 0 0 if( pTos->flags & MEM_Real ){
1670 0 0 Release(pTos);
1671 0 0 if( pOp->opcode==OP_Negative || pTos->r<0.0 ){
0 0 if( pOp->opcode==OP_Negative || pTos->r<0.0 ){
1675 0 0 }else if( pTos->flags & MEM_Int ){
1676 0 0 Release(pTos);
1677 0 0 if( pOp->opcode==OP_Negative || pTos->i<0 ){
0 0 if( pOp->opcode==OP_Negative || pTos->i<0 ){
1681 0 0 }else if( pTos->flags & MEM_Null ){
1684 0 0 Realify(pTos);
1685 0 0 Release(pTos);
1686 0 0 if( pOp->opcode==OP_Negative || pTos->r<0.0 ){
0 0 if( pOp->opcode==OP_Negative || pTos->r<0.0 ){
1702 0 0 if( pTos->flags & MEM_Null ) break; /* Do nothing to NULLs */
1703 0 0 Integerify(pTos);
1704 0 0 Release(pTos);
1718 0 0 if( pTos->flags & MEM_Null ) break; /* Do nothing to NULLs */
1719 0 0 Integerify(pTos);
1720 0 0 Release(pTos);
1759 0 26 if( pTos->flags & MEM_Null ){
1762 0 26 Integerify(pTos);
1764 26 0 if( pOp->opcode==OP_IfNot ) c = !c;
1768 16 10 if( c ) pc = pOp->p2-1;
1782 0 0 if( cnt<0 ) cnt = -cnt;
1785 0 0 for(i=0; i
1786 0 0 if( pTerm->flags & MEM_Null ){
1791 0 0 if( pOp->p1>0 ) popStack(&pTos, cnt);
1804 34 33 if( cnt<0 ) cnt = -cnt;
1806 67 63 for(i=0; i
63 4 for(i=0; i
1807 63 4 if( i>=cnt ) pc = pOp->p2-1;
1808 33 34 if( pOp->p1>0 ) popStack(&pTos, cnt);
1867 306 96 for(i=0; i
1868 15 291 if( pRec->flags & MEM_Null ){
1871 27 264 Stringify(pRec);
1875 0 96 if( addUnique ) nByte += sizeof(p->uniqueCnt);
1876 95 1 if( nByte + nField + 1 < 256 ){
1878 1 0 }else if( nByte + 2*nField + 2 < 65536 ){
1884 0 96 if( nByte>MAX_BYTES_PER_ROW ){
1888 44 52 if( nByte<=NBFS ){
1892 0 52 if( zNewRecord==0 ) goto no_mem;
1896 306 96 for(i=0, pRec=&pTos[1-nField]; i
1898 2 304 if( idxWidth>1 ){
1900 0 2 if( idxWidth>2 ){
1904 291 15 if( (pRec->flags & MEM_Null)==0 ){
1909 1 95 if( idxWidth>1 ){
1911 0 1 if( idxWidth>2 ){
1915 0 96 if( addUnique ){
1920 306 96 for(i=0, pRec=&pTos[1-nField]; i
1921 291 15 if( (pRec->flags & MEM_Null)==0 ){
1929 44 52 if( nByte<=NBFS ){
2030 8 7 for(j=0, i=0; i
2034 1 7 if( flags & MEM_Null ){
2037 7 0 }else if( pOp->p3 && pOp->p3[j]=='t' ){
2 5 }else if( pOp->p3 && pOp->p3[j]=='t' ){
2038 0 2 Stringify(pRec);
2041 4 1 }else if( (flags & (MEM_Real|MEM_Int))!=0 || sqliteIsNumber(pRec->z) ){
3 1 }else if( (flags & (MEM_Real|MEM_Int))!=0 || sqliteIsNumber(pRec->z) ){
2042 1 3 if( (flags & (MEM_Real|MEM_Int))==MEM_Int ){
2044 3 0 }else if( (flags & (MEM_Real|MEM_Int))==0 ){
2047 0 4 Release(pRec);
2059 0 7 if( nByte+sizeof(u32)>MAX_BYTES_PER_ROW ){
2063 4 3 if( addRowid ) nByte += sizeof(u32);
2064 7 0 if( nByte<=NBFS ){
2068 0 0 if( zNewKey==0 ) goto no_mem;
2072 8 7 for(i=0; i
2073 1 7 if( pRec->flags & MEM_Null ){
2076 4 3 }else if( pRec->flags==MEM_Real ){
2087 4 3 if( addRowid ){
2091 0 4 Integerify(pRec);
2095 2 2 if( pOp->p2 && containsNull ) pc = pOp->p2 - 1;
0 2 if( pOp->p2 && containsNull ) pc = pOp->p2 - 1;
2097 3 0 if( pOp->p2==0 ) popStack(&pTos, nField);
2101 7 0 if( nByte<=NBFS ){
2146 0 0 if( i>=0 && inDb && db->aDb[i].pBt && db->aDb[i].inTrans==1 ){
0 0 if( i>=0 && inDb && db->aDb[i].pBt && db->aDb[i].inTrans==1 ){
0 0 if( i>=0 && inDb && db->aDb[i].pBt && db->aDb[i].inTrans==1 ){
0 0 if( i>=0 && inDb && db->aDb[i].pBt && db->aDb[i].inTrans==1 ){
2148 0 0 if( rc==SQLITE_OK ) db->aDb[i].inTrans = 2;
2173 0 153 if( db->aDb[i].inTrans ) break;
2174 306 0 while( db->aDb[i].pBt!=0 && busy ){
153 153 while( db->aDb[i].pBt!=0 && busy ){
2178 0 0 if( db->xBusyCallback==0 ){
2184 0 0 }else if( (*db->xBusyCallback)(db->pBusyArg, "", busy++)==0 ){
2219 0 73 if( db->xCommitCallback!=0 ){
2220 0 0 if( sqliteSafetyOff(db) ) goto abort_due_to_misuse;
2221 0 0 if( db->xCommitCallback(db->pCommitArg)!=0 ){
2224 0 0 if( sqliteSafetyOn(db) ) goto abort_due_to_misuse;
2226 219 0 for(i=0; rc==SQLITE_OK && inDb; i++){
146 73 for(i=0; rc==SQLITE_OK && inDb; i++){
2227 143 3 if( db->aDb[i].inTrans ){
2232 73 0 if( rc==SQLITE_OK ){
2299 0 53 Integerify(pTos)
2301 53 0 if( rc==SQLITE_OK ){
2305 0 53 Release(pTos);
2330 147 0 if( rc==SQLITE_OK && aMeta[1]!=pOp->p2 ){
0 147 if( rc==SQLITE_OK && aMeta[1]!=pOp->p2 ){
2391 0 215 Integerify(pTos);
2398 1 214 if( p2<=0 ){
2400 0 1 Integerify(pTos);
2403 0 1 if( p2<2 ){
2410 0 215 if( expandCursorArraySize(p, i) ) goto no_mem;
2414 0 215 if( pX==0 ) break;
2419 0 0 if( db->xBusyCallback==0 ){
2422 0 0 p->pTos = &pTos[1 + (pOp->p2<=0)]; /* Operands must remain on stack */
2424 0 0 }else if( (*db->xBusyCallback)(db->pBusyArg, pOp->p3, ++busy)==0 ){
2438 0 215 }while( busy );
2464 0 3 if( expandCursorArraySize(p, i) ) goto no_mem;
2471 3 0 if( rc==SQLITE_OK ){
2474 3 0 if( rc==SQLITE_OK ){
2475 0 3 if( pOp->p2 ){
2478 0 0 if( rc==SQLITE_OK ){
2502 0 0 if( expandCursorArraySize(p, i) ) goto no_mem;
2518 198 0 if( i>=0 && inCursor ){
198 0 if( i>=0 && inCursor ){
2553 0 0 if( pC->pCursor!=0 ){
2556 0 0 if( pTos->flags & MEM_Int ){
2558 0 0 if( pOp->p2==0 && pOp->opcode==OP_MoveTo ){
0 0 if( pOp->p2==0 && pOp->opcode==OP_MoveTo ){
2561 0 0 Release(pTos);
2569 0 0 Stringify(pTos);
2576 0 0 if( oc==OP_MoveTo && res<0 ){
0 0 if( oc==OP_MoveTo && res<0 ){
2579 0 0 if( res && pOp->p2>0 ){
0 0 if( res && pOp->p2>0 ){
2582 0 0 }else if( oc==OP_MoveLt ){
2583 0 0 if( res>=0 ){
2591 0 0 res = sqliteBtreeKeySize(pC->pCursor,&keysize)!=0 || keysize==0;
0 0 res = sqliteBtreeKeySize(pC->pCursor,&keysize)!=0 || keysize==0;
2593 0 0 if( res && pOp->p2>0 ){
0 0 if( res && pOp->p2>0 ){
2598 0 0 Release(pTos);
2644 0 0 if( (pC = &p->aCsr[i])->pCursor!=0 ){
2646 0 0 Stringify(pTos);
2648 0 0 alreadyExists = rx==SQLITE_OK && res==0;
0 0 alreadyExists = rx==SQLITE_OK && res==0;
2651 0 0 if( pOp->opcode==OP_Found ){
2652 0 0 if( alreadyExists ) pc = pOp->p2 - 1;
2654 0 0 if( !alreadyExists ) pc = pOp->p2 - 1;
2656 0 0 if( pOp->opcode!=OP_Distinct ){
2657 0 0 Release(pTos);
2692 0 2 Integerify(pTos);
2696 2 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
2704 0 2 Stringify(pNos);
2714 0 2 if( rc!=SQLITE_OK ) goto abort_due_to_error;
2715 1 1 if( res<0 ){
2717 1 0 if( res ){
2723 0 1 if( rc!=SQLITE_OK ) goto abort_due_to_error;
2724 0 1 if( res>0 ){
2736 0 1 if( v==R ){
2771 6 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
2779 6 0 if( rx!=SQLITE_OK || res!=0 ){
0 6 if( rx!=SQLITE_OK || res!=0 ){
2784 0 6 Release(pTos);
2801 0 97 if( (pC = &p->aCsr[i])->pCursor==0 ){
2837 97 0 if( !pC->useRandomRowid ){
2838 27 70 if( pC->nextRowidValid ){
2842 35 35 if( res ){
2847 0 35 if( v==0x7fffffff ){
2854 97 0 if( v<0x7fffffff ){
2861 0 97 if( pC->useRandomRowid ){
2865 0 0 if( v==0 || cnt>2 ){
0 0 if( v==0 || cnt>2 ){
2867 0 0 if( cnt<5 ) v &= 0xffffff;
2873 0 0 if( v==0 ) continue;
2877 0 0 }while( cnt<1000 && rx==SQLITE_OK && res==0 );
0 0 }while( cnt<1000 && rx==SQLITE_OK && res==0 );
0 0 }while( cnt<1000 && rx==SQLITE_OK && res==0 );
2879 0 0 if( rx==SQLITE_OK && res==0 ){
0 0 if( rx==SQLITE_OK && res==0 ){
2925 0 118 if( ((pC = &p->aCsr[i])->pCursor!=0 || pC->pseudoTable) ){
0 0 if( ((pC = &p->aCsr[i])->pCursor!=0 || pC->pseudoTable) ){
2928 0 118 if( pOp->opcode==OP_PutStrKey ){
2929 0 0 Stringify(pNos);
2937 43 75 if( pOp->p2 & OPFLAG_NCHANGE ) db->nChange++;
2938 43 75 if( pOp->p2 & OPFLAG_LASTROWID ) db->lastRowid = pNos->i;
2939 43 75 if( pOp->p2 & OPFLAG_CSCHANGE ) db->csChange++;
2940 118 0 if( pC->nextRowidValid && pTos->i>=pC->nextRowid ){
1 117 if( pC->nextRowidValid && pTos->i>=pC->nextRowid ){
2944 22 96 if( pTos->flags & MEM_Null ){
2950 0 118 if( pC->pseudoTable ){
2959 0 0 if( pTos->flags & MEM_Dyn ){
2964 0 0 if( pC->pData ){
2999 17 0 if( pC->pCursor!=0 ){
3004 6 11 if( pOp->p2 & OPFLAG_NCHANGE ) db->nChange++;
3005 6 11 if( pOp->p2 & OPFLAG_CSCHANGE ) db->csChange++;
3061 0 0 if( pC->nullRow ){
3063 0 0 }else if( pC->pCursor!=0 ){
3066 0 0 if( pC->nullRow ){
3069 0 0 }else if( pC->keyAsData || pOp->opcode==OP_RowKey ){
0 0 }else if( pC->keyAsData || pOp->opcode==OP_RowKey ){
3075 0 0 if( n<=NBFS ){
3080 0 0 if( z==0 ) goto no_mem;
3084 0 0 if( pC->keyAsData || pOp->opcode==OP_RowKey ){
0 0 if( pC->keyAsData || pOp->opcode==OP_RowKey ){
3089 0 0 }else if( pC->pseudoTable ){
3130 0 386 if( i<0 ){
3135 386 0 }else if( (pC = &p->aCsr[i])->pCursor!=0 ){
3139 0 386 if( pC->nullRow ){
3141 0 386 }else if( pC->keyAsData ){
3146 0 0 }else if( pC->pseudoTable ){
3157 0 386 if( payloadSize==0 ){
3160 383 3 }else if( payloadSize<256 ){
3162 3 0 }else if( payloadSize<65536 ){
3170 0 386 if( payloadSize < idxWidth*(p2+1) ){
3174 0 386 if( zRec ){
3176 0 386 }else if( pC->keyAsData ){
3183 3 383 if( idxWidth>1 ){
3186 0 3 if( idxWidth>2 ){
3192 386 0 if( amt<0 || offset<0 || end>payloadSize ){
386 0 if( amt<0 || offset<0 || end>payloadSize ){
0 386 if( amt<0 || offset<0 || end>payloadSize ){
3201 18 368 if( amt==0 ){
3203 0 368 }else if( zRec ){
3207 333 35 if( amt<=NBFS ){
3212 0 35 if( z==0 ) goto no_mem;
3216 0 368 if( pC->keyAsData ){
3241 0 8 if( pC->recnoIsValid ){
3243 0 8 }else if( pC->pseudoTable ){
3245 8 0 }else if( pC->nullRow || pC->pCursor==0 ){
0 8 }else if( pC->nullRow || pC->pCursor==0 ){
3277 0 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
3283 0 0 if( amt<=0 ){
3287 0 0 if( amt>NBFS ){
3289 0 0 if( z==0 ) goto no_mem;
3332 0 0 if( (pCrsr = pC->pCursor)!=0 ){
3337 0 0 if( res && pOp->p2>0 ){
0 0 if( res && pOp->p2>0 ){
3361 141 0 if( (pCrsr = pC->pCursor)!=0 ){
3367 72 69 if( res && pOp->p2>0 ){
72 0 if( res && pOp->p2>0 ){
3397 0 167 CHECK_FOR_INTERRUPT;
3400 167 0 if( (pCrsr = pC->pCursor)!=0 ){
3402 0 167 if( pC->nullRow ){
3406 167 0 rc = pOp->opcode==OP_Next ? sqliteBtreeNext(pCrsr, &res) :
3410 102 65 if( res==0 ){
3438 3 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
3441 2 1 if( pOp->p2 ){
3445 0 2 if( rc!=SQLITE_OK ) goto abort_due_to_error;
3446 4 0 while( res!=0 ){
3449 1 3 if( n==nKey
3450 1 0 && sqliteBtreeKeyCompare(pCrsr, zKey, nKey-4, 4, &c)==SQLITE_OK
3451 0 1 && c==0
3454 0 0 if( pOp->p3 && pOp->p3[0] ){
0 0 if( pOp->p3 && pOp->p3[0] ){
3459 2 2 if( res<0 ){
3470 0 3 Release(pTos);
3486 0 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
3489 0 0 if( rx==SQLITE_OK && res==0 ){
0 0 if( rx==SQLITE_OK && res==0 ){
3494 0 0 Release(pTos);
3514 0 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
3519 0 0 if( sz
3566 0 0 if( (pCrsr = p->aCsr[i].pCursor)!=0 ){
3569 0 0 Stringify(pTos);
3572 0 0 if( rc!=SQLITE_OK ){
3575 0 0 if( pOp->opcode==OP_IdxLT ){
3577 0 0 }else if( pOp->opcode==OP_IdxGE ){
3580 0 0 if( res>0 ){
3584 0 0 Release(pTos);
3607 0 0 for(k=0; k0; i--){
0 0 for(k=0; k0; i--){
3608 0 0 if( z[k]=='a' ){
3612 0 0 while( k
0 0 while( k
3615 0 0 Release(pTos);
3684 22 5 if( pOp->opcode==OP_CreateTable ){
3690 27 0 if( rc==SQLITE_OK ){
3731 0 0 if( aRoot==0 ) goto no_mem;
3732 0 0 for(j=0, i=sqliteHashFirst(&pSet->hash); i; i=sqliteHashNext(i), j++){
3739 0 0 if( z==0 || z[0]==0 ){
0 0 if( z==0 || z[0]==0 ){
3740 0 0 if( z ) sqliteFree(z);
3762 2 4 if( pKeylist==0 || pKeylist->nUsed>=pKeylist->nKey ){
0 2 if( pKeylist==0 || pKeylist->nUsed>=pKeylist->nKey ){
3764 0 4 if( pKeylist==0 ) goto no_mem;
3771 0 6 Integerify(pTos);
3773 0 6 Release(pTos);
3788 4 6 while( p->pList ){
3806 0 12 CHECK_FOR_INTERRUPT;
3808 6 6 if( pKeylist!=0 ){
3815 4 2 if( pKeylist->nRead>=pKeylist->nUsed ){
3830 0 6 if( p->pList ){
3847 0 0 if( p->keylistStack==0 ) goto no_mem;
3864 0 0 if( p->keylistStackDepth == 0 ){
3882 0 0 if( p->contextStack==0 ) goto no_mem;
3901 0 0 if( p->contextStackDepth == 0 ){
3918 0 15 if( Dynamicify(pTos) || Dynamicify(pNos) ) goto no_mem;
0 0 if( Dynamicify(pTos) || Dynamicify(pNos) ) goto no_mem;
0 15 if( Dynamicify(pTos) || Dynamicify(pNos) ) goto no_mem;
0 0 if( Dynamicify(pTos) || Dynamicify(pNos) ) goto no_mem;
3920 0 15 if( pSorter==0 ) goto no_mem;
3951 70 15 for(i=0; i
3952 37 33 if( (pRec->flags & MEM_Null)==0 ){
3953 0 37 Stringify(pRec);
3959 0 15 if( azArg==0 ) goto no_mem;
3961 70 15 for(pRec=&pTos[1-nField], i=0; i
3962 33 37 if( pRec->flags & MEM_Null ){
4003 35 15 for(i=0; i
4004 10 25 if( pRec->flags & MEM_Null ){
4007 0 25 Stringify(pRec);
4012 0 15 if( zNewKey==0 ) goto no_mem;
4015 35 15 for(pRec=&pTos[1-nField], i=0; i
4016 10 25 if( pRec->flags & MEM_Null ){
4046 150 5 for(i=0; i
4049 15 5 while( p->pSort ){
4053 25 0 for(i=0; i
4054 15 10 if( apSorter[i]==0 ){
4062 0 15 if( i>=NSORT-1 ){
4067 150 5 for(i=0; i
4083 0 20 CHECK_FOR_INTERRUPT;
4084 15 5 if( pSorter!=0 ){
4133 0 0 if( p->pFile ){
4134 0 0 if( p->pFile!=stdin ) fclose(p->pFile);
4137 0 0 if( sqliteStrICmp(pOp->p3,"stdin")==0 ){
4142 0 0 if( p->pFile==0 ){
4165 0 0 CHECK_FOR_INTERRUPT;
4166 0 0 if( p->pFile==0 ) goto fileread_jump;
4168 0 0 if( nField<=0 ) goto fileread_jump;
4169 0 0 if( nField!=p->nField || p->azField==0 ){
0 0 if( nField!=p->nField || p->azField==0 ){
4171 0 0 if( azField==0 ){ goto no_mem; }
4177 0 0 while( eol==0 ){
4178 0 0 if( p->zLine==0 || n+200>p->nLineAlloc ){
0 0 if( p->zLine==0 || n+200>p->nLineAlloc ){
4182 0 0 if( zLine==0 ){
4190 0 0 if( vdbe_fgets(&p->zLine[n], p->nLineAlloc-n, p->pFile)==0 ){
4195 0 0 while( (c = p->zLine[n])!=0 ){
4196 0 0 if( c=='\\' ){
4197 0 0 if( p->zLine[n+1]==0 ) break;
4199 0 0 }else if( c=='\n' ){
4209 0 0 if( n==0 ) goto fileread_jump;
4211 0 0 if( z[0]=='\\' && z[1]=='.' && z[2]==0 ){
0 0 if( z[0]=='\\' && z[1]=='.' && z[2]==0 ){
0 0 if( z[0]=='\\' && z[1]=='.' && z[2]==0 ){
4215 0 0 if( zDelim==0 ) zDelim = "\t";
4219 0 0 for(i=1; *z!=0 && i<=nField; i++){
0 0 for(i=1; *z!=0 && i<=nField; i++){
4222 0 0 if( z[0]=='\\' && z[1]=='N'
0 0 if( z[0]=='\\' && z[1]=='N'
4223 0 0 && (z[2]==0 || strncmp(&z[2],zDelim,nDelim)==0) ){
0 0 && (z[2]==0 || strncmp(&z[2],zDelim,nDelim)==0) ){
4224 0 0 if( i<=nField ) p->azField[i-1] = 0;
4226 0 0 if( iazField[i] = z;
4229 0 0 while( z[from] ){
4230 0 0 if( z[from]=='\\' && z[from+1]!=0 ){
0 0 if( z[from]=='\\' && z[from+1]!=0 ){
4245 0 0 if( z[from]==c && strncmp(&z[from],zDelim,nDelim)==0 ) break;
0 0 if( z[from]==c && strncmp(&z[from],zDelim,nDelim)==0 ) break;
4248 0 0 if( z[from] ){
4251 0 0 if( iazField[i] = z;
4257 0 0 while( i
4278 0 0 if( p->azField ){
4284 0 0 if( z ){
4308 11 0 if( i>=p->nMem ){
4313 0 11 if( aMem==0 ) goto no_mem;
4314 11 0 if( aMem!=p->aMem ){
4316 0 11 for(j=0; j
4317 0 0 if( aMem[j].flags & MEM_Short ){
4323 11 0 if( nOldnMem ){
4327 0 11 Deephemeralize(pTos);
0 0 Deephemeralize(pTos);
4329 0 11 Release(pMem);
4331 0 11 if( pMem->flags & MEM_Dyn ){
4332 0 0 if( pOp->p2 ){
4336 0 0 if( pMem->z==0 ) goto no_mem;
4339 0 11 }else if( pMem->flags & MEM_Short ){
4342 11 0 if( pOp->p2 ){
4343 0 11 Release(pTos);
4363 11 0 if( pTos->flags & MEM_Str ){
4386 0 0 if( pOp->p2>0 && pMem->i>0 ){
0 0 if( pOp->p2>0 && pMem->i>0 ){
4401 0 15 if( p->agg.apFunc==0 ) goto no_mem;
4440 6 24 for(i=0; i
4441 2 4 if( pRec->flags & MEM_Null ){
4444 0 4 Stringify(pRec);
4461 0 24 if( ctx.isError ){
4487 13 3 Stringify(pTos);
4491 0 16 if( pElem ){
4496 0 16 if( sqlite_malloc_failed ) goto no_mem;
4498 0 16 Release(pTos);
4509 3 0 AggElem *pFocus = AggInFocus(p->agg);
4513 0 3 if( pFocus==0 ) goto no_mem;
4515 0 3 Deephemeralize(pTos);
0 0 Deephemeralize(pTos);
4517 0 3 Release(pMem);
4519 0 3 if( pMem->flags & MEM_Dyn ){
4521 2 1 }else if( pMem->flags & MEM_Short ){
4524 0 3 Release(pTos);
4536 16 0 AggElem *pFocus = AggInFocus(p->agg);
4539 0 16 if( pFocus==0 ) goto no_mem;
4544 0 16 if( pTos->flags & MEM_Str ){
4564 0 31 CHECK_FOR_INTERRUPT;
4565 15 16 if( p->agg.pSearch==0 ){
4570 15 16 if( p->agg.pSearch==0 ){
4578 19 16 for(i=0; iagg.nMem; i++){
4580 3 16 if( p->agg.apFunc[i]==0 ) continue;
4581 0 16 if( p->agg.apFunc[i]->xFinalize==0 ) continue;
4585 10 6 freeCtx = aMem[i].z && aMem[i].z!=aMem[i].zShort;
0 10 freeCtx = aMem[i].z && aMem[i].z!=aMem[i].zShort;
4590 0 16 if( freeCtx ){
4594 0 16 if( aMem[i].flags & MEM_Short ){
4610 6 6 if( p->nSet<=i ){
4613 0 6 if( aSet==0 ) goto no_mem;
4615 6 6 for(k=p->nSet; k<=i; k++){
4620 12 0 if( pOp->p3 ){
4624 0 0 Stringify(pTos);
4626 0 0 Release(pTos);
4629 0 12 if( sqlite_malloc_failed ) goto no_mem;
4642 0 0 Stringify(pTos);
4643 0 0 if( i>=0 && inSet && sqliteHashFind(&p->aSet[i].hash, pTos->z, pTos->n)){
0 0 if( i>=0 && inSet && sqliteHashFind(&p->aSet[i].hash, pTos->z, pTos->n)){
0 0 if( i>=0 && inSet && sqliteHashFind(&p->aSet[i].hash, pTos->z, pTos->n)){
4646 0 0 Release(pTos);
4660 0 34 Stringify(pTos);
4661 34 0 if( i<0 || i>=p->nSet ||
4665 0 34 Release(pTos);
4685 0 0 CHECK_FOR_INTERRUPT;
4686 0 0 if( pOp->p1<0 || pOp->p1>=p->nSet ){
0 0 if( pOp->p1<0 || pOp->p1>=p->nSet ){
4687 0 0 if( pOp->opcode==OP_SetFirst ) pc = pOp->p2 - 1;
4691 0 0 if( pOp->opcode==OP_SetFirst ){
4693 0 0 if( pSet->prev==0 ){
4698 0 0 if( pSet->prev ){
4701 0 0 if( pSet->prev==0 ){
4721 0 0 if( sqliteSafetyOff(db) ) goto abort_due_to_misuse;
4723 0 0 if( sqliteSafetyOn(db) ) goto abort_due_to_misuse;
4749 0 0 Integerify(pTos);
4869 0 1 CHECK_FOR_INTERRUPT
4870 1 0 if( rc ){
4898 0 0 if( p->zErrMsg==0 ){
4899 0 0 if( sqlite_malloc_failed ) rc = SQLITE_NOMEM;
4910 0 0 if( db->magic!=SQLITE_MAGIC_BUSY ){