OpenCoverage

wherecode.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/sqlite/src/src/wherecode.c
Switch to Source codePreprocessed file
LineSourceCount
1-
2-
3-
4-
5-
6-
7static const char *explainIndexColumnName(Index *pIdx, int i){-
8 i = pIdx->aiColumn[i];-
9 if( i==(-2)
i==(-2)Description
TRUEevaluated 15 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 624 times by 1 test
Evaluated by:
  • Self test (438)
) return
executed 15 times by 1 test: return "<expr>";
Executed by:
  • Self test (438)
"<expr>";
executed 15 times by 1 test: return "<expr>";
Executed by:
  • Self test (438)
15-624
10 if( i==(-1)
i==(-1)Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 621 times by 1 test
Evaluated by:
  • Self test (438)
) return
executed 3 times by 1 test: return "rowid";
Executed by:
  • Self test (438)
"rowid";
executed 3 times by 1 test: return "rowid";
Executed by:
  • Self test (438)
3-621
11 return
executed 621 times by 1 test: return pIdx->pTable->aCol[i].zName;
Executed by:
  • Self test (438)
pIdx->pTable->aCol[i].zName;
executed 621 times by 1 test: return pIdx->pTable->aCol[i].zName;
Executed by:
  • Self test (438)
621
12}-
13static void explainAppendTerm(-
14 StrAccum *pStr,-
15 Index *pIdx,-
16 int nTerm,-
17 int iTerm,-
18 int bAnd,-
19 const char *zOp-
20){-
21 int i;-
22-
23 -
24 ((void) (0))-
25 ;-
26 if( bAnd
bAndDescription
TRUEevaluated 98 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 81 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, " AND ", 5);
executed 98 times by 1 test: sqlite3_str_append(pStr, " AND ", 5);
Executed by:
  • Self test (438)
81-98
27-
28 if( nTerm>1
nTerm>1Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 173 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, "(", 1);
executed 6 times by 1 test: sqlite3_str_append(pStr, "(", 1);
Executed by:
  • Self test (438)
6-173
29 for(i=0; i<nTerm
i<nTermDescription
TRUEevaluated 185 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 179 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
179-185
30 if( i
iDescription
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 179 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, ",", 1);
executed 6 times by 1 test: sqlite3_str_append(pStr, ",", 1);
Executed by:
  • Self test (438)
6-179
31 sqlite3_str_appendall(pStr, explainIndexColumnName(pIdx, iTerm+i));-
32 }
executed 185 times by 1 test: end of block
Executed by:
  • Self test (438)
185
33 if( nTerm>1
nTerm>1Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 173 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, ")", 1);
executed 6 times by 1 test: sqlite3_str_append(pStr, ")", 1);
Executed by:
  • Self test (438)
6-173
34-
35 sqlite3_str_append(pStr, zOp, 1);-
36-
37 if( nTerm>1
nTerm>1Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 173 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, "(", 1);
executed 6 times by 1 test: sqlite3_str_append(pStr, "(", 1);
Executed by:
  • Self test (438)
6-173
38 for(i=0; i<nTerm
i<nTermDescription
TRUEevaluated 185 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 179 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
179-185
39 if( i
iDescription
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 179 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, ",", 1);
executed 6 times by 1 test: sqlite3_str_append(pStr, ",", 1);
Executed by:
  • Self test (438)
6-179
40 sqlite3_str_append(pStr, "?", 1);-
41 }
executed 185 times by 1 test: end of block
Executed by:
  • Self test (438)
185
42 if( nTerm>1
nTerm>1Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 173 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, ")", 1);
executed 6 times by 1 test: sqlite3_str_append(pStr, ")", 1);
Executed by:
  • Self test (438)
6-173
43}
executed 179 times by 1 test: end of block
Executed by:
  • Self test (438)
179
44static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop){-
45 Index *pIndex = pLoop->u.btree.pIndex;-
46 u16 nEq = pLoop->u.btree.nEq;-
47 u16 nSkip = pLoop->nSkip;-
48 int i, j;-
49-
50 if( nEq==0
nEq==0Description
TRUEevaluated 197 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 323 times by 1 test
Evaluated by:
  • Self test (438)
&& (
(pLoop->wsFlag...x00000010))==0Description
TRUEevaluated 116 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 81 times by 1 test
Evaluated by:
  • Self test (438)
pLoop->wsFlags&(0x00000020|0x00000010))==0
(pLoop->wsFlag...x00000010))==0Description
TRUEevaluated 116 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 81 times by 1 test
Evaluated by:
  • Self test (438)
) return;
executed 116 times by 1 test: return;
Executed by:
  • Self test (438)
81-323
51 sqlite3_str_append(pStr, " (", 2);-
52 for(i=0; i<nEq
i<nEqDescription
TRUEevaluated 454 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 404 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
404-454
53 const char *z = explainIndexColumnName(pIndex, i);-
54 if( i
iDescription
TRUEevaluated 131 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 323 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3_str_append(pStr, " AND ", 5);
executed 131 times by 1 test: sqlite3_str_append(pStr, " AND ", 5);
Executed by:
  • Self test (438)
131-323
55 sqlite3_str_appendf(pStr, i>=nSkip ? "%s=?" : "ANY(%s)", z);-
56 }
executed 454 times by 1 test: end of block
Executed by:
  • Self test (438)
454
57-
58 j = i;-
59 if( pLoop->wsFlags&0x00000020
pLoop->wsFlags&0x00000020Description
TRUEevaluated 105 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 299 times by 1 test
Evaluated by:
  • Self test (438)
){
105-299
60 explainAppendTerm(pStr, pIndex, pLoop->u.btree.nBtm, j, i, ">");-
61 i = 1;-
62 }
executed 105 times by 1 test: end of block
Executed by:
  • Self test (438)
105
63 if( pLoop->wsFlags&0x00000010
pLoop->wsFlags&0x00000010Description
TRUEevaluated 74 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 330 times by 1 test
Evaluated by:
  • Self test (438)
){
74-330
64 explainAppendTerm(pStr, pIndex, pLoop->u.btree.nTop, j, i, "<");-
65 }
executed 74 times by 1 test: end of block
Executed by:
  • Self test (438)
74
66 sqlite3_str_append(pStr, ")", 1);-
67}
executed 404 times by 1 test: end of block
Executed by:
  • Self test (438)
404
68int sqlite3WhereExplainOneScan(-
69 Parse *pParse,-
70 SrcList *pTabList,-
71 WhereLevel *pLevel,-
72 u16 wctrlFlags-
73){-
74 int ret = 0;-
75-
76 if( ((
(pParse)->pToplevelDescription
TRUEevaluated 746 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 295537 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
pParse)->pToplevel
(pParse)->pToplevelDescription
TRUEevaluated 746 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 295537 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
? (pParse)->pToplevel : (pParse))->explain==2
((pParse)->pTo...))->explain==2Description
TRUEevaluated 950 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 295333 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
)
746-295537
77-
78 {-
79 struct SrcList_item *pItem = &pTabList->a[pLevel->iFrom];-
80 Vdbe *v = pParse->pVdbe;-
81 sqlite3 *db = pParse->db;-
82 int isSearch;-
83 WhereLoop *pLoop;-
84 u32 flags;-
85 char *zMsg;-
86 StrAccum str;-
87 char zBuf[100];-
88-
89 pLoop = pLevel->pWLoop;-
90 flags = pLoop->wsFlags;-
91 if( (
(flags&0x00002000)Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 929 times by 1 test
Evaluated by:
  • Self test (438)
flags&0x00002000)
(flags&0x00002000)Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 929 times by 1 test
Evaluated by:
  • Self test (438)
|| (
(wctrlFlags&0x0020)Description
TRUEevaluated 43 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 886 times by 1 test
Evaluated by:
  • Self test (438)
wctrlFlags&0x0020)
(wctrlFlags&0x0020)Description
TRUEevaluated 43 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 886 times by 1 test
Evaluated by:
  • Self test (438)
) return
executed 64 times by 1 test: return 0;
Executed by:
  • Self test (438)
0;
executed 64 times by 1 test: return 0;
Executed by:
  • Self test (438)
21-929
92-
93 isSearch = (
(flags&(0x0000...x00000010))!=0Description
TRUEevaluated 116 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 770 times by 1 test
Evaluated by:
  • Self test (438)
flags&(0x00000020|0x00000010))!=0
(flags&(0x0000...x00000010))!=0Description
TRUEevaluated 116 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 770 times by 1 test
Evaluated by:
  • Self test (438)
116-770
94 || ((
(flags&0x00000400)==0Description
TRUEevaluated 744 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
flags&0x00000400)==0
(flags&0x00000400)==0Description
TRUEevaluated 744 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
&& (
(pLoop->u.btree.nEq>0)Description
TRUEevaluated 385 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 359 times by 1 test
Evaluated by:
  • Self test (438)
pLoop->u.btree.nEq>0)
(pLoop->u.btree.nEq>0)Description
TRUEevaluated 385 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 359 times by 1 test
Evaluated by:
  • Self test (438)
)
26-744
95 || (
(wctrlFlags&(0x0001|0x0002))Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 380 times by 1 test
Evaluated by:
  • Self test (438)
wctrlFlags&(0x0001|0x0002))
(wctrlFlags&(0x0001|0x0002))Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 380 times by 1 test
Evaluated by:
  • Self test (438)
;
5-380
96-
97 sqlite3StrAccumInit(&str, db, zBuf, sizeof(zBuf), 1000000000);-
98 sqlite3_str_appendall(&str, isSearch ? "SEARCH" : "SCAN");-
99 if( pItem->pSelect
pItem->pSelectDescription
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 865 times by 1 test
Evaluated by:
  • Self test (438)
){
21-865
100 sqlite3_str_appendf(&str, " SUBQUERY %u", pItem->pSelect->selId);-
101 }
executed 21 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
21
102 sqlite3_str_appendf(&str, " TABLE %s", pItem->zName);-
103 }
executed 865 times by 1 test: end of block
Executed by:
  • Self test (438)
865
104-
105 if( pItem->zAlias
pItem->zAliasDescription
TRUEevaluated 42 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 844 times by 1 test
Evaluated by:
  • Self test (438)
){
42-844
106 sqlite3_str_appendf(&str, " AS %s", pItem->zAlias);-
107 }
executed 42 times by 1 test: end of block
Executed by:
  • Self test (438)
42
108 if( (
(flags & (0x00...x00000400))==0Description
TRUEevaluated 523 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 363 times by 1 test
Evaluated by:
  • Self test (438)
flags & (0x00000100|0x00000400))==0
(flags & (0x00...x00000400))==0Description
TRUEevaluated 523 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 363 times by 1 test
Evaluated by:
  • Self test (438)
){
363-523
109 const char *zFmt = 0;-
110 Index *pIdx;-
111-
112 -
113 ((void) (0))-
114 ;-
115 pIdx = pLoop->u.btree.pIndex;-
116 -
117 ((void) (0))-
118 ;-
119 if( !(((pItem->pTab)->tabFlags & 0x0020)==0)
!(((pItem->pTa... & 0x0020)==0)Description
TRUEevaluated 36 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 487 times by 1 test
Evaluated by:
  • Self test (438)
&& ((
((pIdx)->idxType==2)Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 24 times by 1 test
Evaluated by:
  • Self test (438)
pIdx)->idxType==2)
((pIdx)->idxType==2)Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 24 times by 1 test
Evaluated by:
  • Self test (438)
){
12-487
120 if( isSearch
isSearchDescription
TRUEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
){
3-9
121 zFmt = "PRIMARY KEY";-
122 }
executed 9 times by 1 test: end of block
Executed by:
  • Self test (438)
9
123 }
executed 12 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( flags & 0x00020000
flags & 0x00020000Description
TRUEnever evaluated
FALSEevaluated 511 times by 1 test
Evaluated by:
  • Self test (438)
){
0-511
124 zFmt = "AUTOMATIC PARTIAL COVERING INDEX";-
125 }
never executed: end of block
else if( flags & 0x00004000
flags & 0x00004000Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 498 times by 1 test
Evaluated by:
  • Self test (438)
){
0-498
126 zFmt = "AUTOMATIC COVERING INDEX";-
127 }
executed 13 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( flags & 0x00000040
flags & 0x00000040Description
TRUEevaluated 170 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 328 times by 1 test
Evaluated by:
  • Self test (438)
){
13-328
128 zFmt = "COVERING INDEX %s";-
129 }
executed 170 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
170
130 zFmt = "INDEX %s";-
131 }
executed 328 times by 1 test: end of block
Executed by:
  • Self test (438)
328
132 if( zFmt
zFmtDescription
TRUEevaluated 520 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
){
3-520
133 sqlite3_str_append(&str, " USING ", 7);-
134 sqlite3_str_appendf(&str, zFmt, pIdx->zName);-
135 explainIndexRange(&str, pLoop);-
136 }
executed 520 times by 1 test: end of block
Executed by:
  • Self test (438)
520
137 }
executed 523 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( (
(flags & 0x00000100)!=0Description
TRUEevaluated 337 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
flags & 0x00000100)!=0
(flags & 0x00000100)!=0Description
TRUEevaluated 337 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
&& (
(flags & 0x0000000f)!=0Description
TRUEevaluated 97 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 240 times by 1 test
Evaluated by:
  • Self test (438)
flags & 0x0000000f)!=0
(flags & 0x0000000f)!=0Description
TRUEevaluated 97 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 240 times by 1 test
Evaluated by:
  • Self test (438)
){
26-523
138 const char *zRangeOp;-
139 if( flags&(0x00000001|0x00000004)
flags&(0x00000001|0x00000004)Description
TRUEevaluated 94 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
){
3-94
140 zRangeOp = "=";-
141 }
executed 94 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( (
(flags&0x00000030)==0x00000030Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
flags&0x00000030)==0x00000030
(flags&0x00000030)==0x00000030Description
TRUEnever evaluated
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
){
0-94
142 zRangeOp = ">? AND rowid<";-
143 }
never executed: end of block
else if( flags&0x00000020
flags&0x00000020Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
){
0-2
144 zRangeOp = ">";-
145 }
executed 2 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
2
146 -
147 ((void) (0))-
148 ;-
149 zRangeOp = "<";-
150 }
executed 1 time by 1 test: end of block
Executed by:
  • Self test (438)
1
151 sqlite3_str_appendf(&str,-
152 " USING INTEGER PRIMARY KEY (rowid%s?)",zRangeOp);-
153 }
executed 97 times by 1 test: end of block
Executed by:
  • Self test (438)
97
154-
155 else if( (
(flags & 0x00000400)!=0Description
TRUEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 240 times by 1 test
Evaluated by:
  • Self test (438)
flags & 0x00000400)!=0
(flags & 0x00000400)!=0Description
TRUEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 240 times by 1 test
Evaluated by:
  • Self test (438)
){
26-240
156 sqlite3_str_appendf(&str, " VIRTUAL TABLE INDEX %d:%s",-
157 pLoop->u.vtab.idxNum, pLoop->u.vtab.idxStr);-
158 }
executed 26 times by 1 test: end of block
Executed by:
  • Self test (438)
26
159 zMsg = sqlite3StrAccumFinish(&str);-
160 ret = sqlite3VdbeAddOp4(v, 172, sqlite3VdbeCurrentAddr(v),-
161 pParse->addrExplain, 0, zMsg,(-7));-
162 }
executed 886 times by 1 test: end of block
Executed by:
  • Self test (438)
886
163 return
executed 296219 times by 435 tests: return ret;
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
ret;
executed 296219 times by 435 tests: return ret;
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
296219
164}-
165static void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm){-
166 int nLoop = 0;-
167 -
168 ((void) (0))-
169 ;-
170 while( (
(pTerm->wtFlags & 0x04)==0Description
TRUEevaluated 93044 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->wtFlags & 0x04)==0
(pTerm->wtFlags & 0x04)==0Description
TRUEevaluated 93044 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
50-93044
171 && (pLevel->iLeftJoin==0
pLevel->iLeftJoin==0Description
TRUEevaluated 92424 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 620 times by 1 test
Evaluated by:
  • Self test (438)
|| (((
(((pTerm->pExp...0x000001))!=0)Description
TRUEevaluated 619 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
pTerm->pExpr)->flags&(0x000001))!=0)
(((pTerm->pExp...0x000001))!=0)Description
TRUEevaluated 619 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
)
1-92424
172 && (
(pLevel->notRe...>prereqAll)==0Description
TRUEevaluated 93024 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 19 times by 1 test
Evaluated by:
  • Self test (438)
pLevel->notReady & pTerm->prereqAll)==0
(pLevel->notRe...>prereqAll)==0Description
TRUEevaluated 93024 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 19 times by 1 test
Evaluated by:
  • Self test (438)
19-93024
173 ){-
174 if( nLoop
nLoopDescription
TRUEevaluated 5270 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 87754 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
&& (
(pTerm->wtFlags & 0x400)!=0Description
TRUEevaluated 225 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 5045 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->wtFlags & 0x400)!=0
(pTerm->wtFlags & 0x400)!=0Description
TRUEevaluated 225 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 5045 times by 1 test
Evaluated by:
  • Self test (438)
){
225-87754
175 pTerm->wtFlags |= 0x200;-
176 }
executed 225 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
225
177 pTerm->wtFlags |= 0x04;-
178 }
executed 92799 times by 30 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
92799
179 if( pTerm->iParent<0
pTerm->iParent<0Description
TRUEevaluated 83755 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 9269 times by 1 test
Evaluated by:
  • Self test (438)
) break;
executed 83755 times by 30 tests: break;
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
9269-83755
180 pTerm = &pTerm->pWC->a[pTerm->iParent];-
181 -
182 ((void) (0))-
183 ;-
184 pTerm->nChild--;-
185 if( pTerm->nChild!=0
pTerm->nChild!=0Description
TRUEevaluated 3995 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 5274 times by 1 test
Evaluated by:
  • Self test (438)
) break;
executed 3995 times by 1 test: break;
Executed by:
  • Self test (438)
3995-5274
186 nLoop++;-
187 }
executed 5274 times by 1 test: end of block
Executed by:
  • Self test (438)
5274
188}
executed 87820 times by 30 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
87820
189static void codeApplyAffinity(Parse *pParse, int base, int n, char *zAff){-
190 Vdbe *v = pParse->pVdbe;-
191 if( zAff==0
zAff==0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 37176 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
8-37176
192 -
193 ((void) (0))-
194 ;-
195 return;
executed 8 times by 1 test: return;
Executed by:
  • Self test (438)
8
196 }-
197 -
198 ((void) (0))-
199 ;-
200-
201-
202-
203-
204 while( n>0
n>0Description
TRUEevaluated 36383 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 36282 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
&& zAff[0]=='A'
zAff[0]=='A'Description
TRUEevaluated 35489 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 894 times by 1 test
Evaluated by:
  • Self test (438)
){
894-36383
205 n--;-
206 base++;-
207 zAff++;-
208 }
executed 35489 times by 1 test: end of block
Executed by:
  • Self test (438)
35489
209 while( n>1
n>1Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 37100 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
&& zAff[n-1]=='A'
zAff[n-1]=='A'Description
TRUEevaluated 42 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 76 times by 1 test
Evaluated by:
  • Self test (438)
){
42-37100
210 n--;-
211 }
executed 42 times by 1 test: end of block
Executed by:
  • Self test (438)
42
212-
213-
214 if( n>0
n>0Description
TRUEevaluated 894 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 36282 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
894-36282
215 sqlite3VdbeAddOp4(v, 91, base, n, 0, zAff, n);-
216 }
executed 894 times by 1 test: end of block
Executed by:
  • Self test (438)
894
217}
executed 37176 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
37176
218static void updateRangeAffinityStr(-
219 Expr *pRight,-
220 int n,-
221 char *zAff-
222){-
223 int i;-
224 for(i=0; i<n
i<nDescription
TRUEevaluated 13882 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11895 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
11895-13882
225 Expr *p = sqlite3VectorFieldSubexpr(pRight, i);-
226 if( sqlite3CompareAffinity(p, zAff[i])=='A'
sqlite3Compare... zAff[i])=='A'Description
TRUEevaluated 8868 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 5014 times by 1 test
Evaluated by:
  • Self test (438)
5014-8868
227 || sqlite3ExprNeedsNoAffinityChange(p, zAff[i])
sqlite3ExprNee...ge(p, zAff[i])Description
TRUEevaluated 4640 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 374 times by 1 test
Evaluated by:
  • Self test (438)
374-4640
228 ){-
229 zAff[i] = 'A';-
230 }
executed 13508 times by 1 test: end of block
Executed by:
  • Self test (438)
13508
231 }
executed 13882 times by 1 test: end of block
Executed by:
  • Self test (438)
13882
232}
executed 11895 times by 1 test: end of block
Executed by:
  • Self test (438)
11895
233static Expr *removeUnindexableInClauseTerms(-
234 Parse *pParse,-
235 int iEq,-
236 WhereLoop *pLoop,-
237 Expr *pX-
238){-
239 sqlite3 *db = pParse->db;-
240 Expr *pNew = sqlite3ExprDup(db, pX, 0);-
241 if( db->mallocFailed==0
db->mallocFailed==0Description
TRUEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-50
242 ExprList *pOrigRhs = pNew->x.pSelect->pEList;-
243 ExprList *pOrigLhs = pNew->pLeft->x.pList;-
244 ExprList *pRhs = 0;-
245 ExprList *pLhs = 0;-
246 int i;-
247 Select *pSelect;-
248-
249 for(i=iEq; i<pLoop->nLTerm
i<pLoop->nLTermDescription
TRUEevaluated 82 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
50-82
250 if( pLoop->aLTerm[i]->pExpr==pX
pLoop->aLTerm[i]->pExpr==pXDescription
TRUEevaluated 79 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
){
3-79
251 int iField = pLoop->aLTerm[i]->iField - 1;-
252 -
253 ((void) (0))-
254 ;-
255 pRhs = sqlite3ExprListAppend(pParse, pRhs, pOrigRhs->a[iField].pExpr);-
256 pOrigRhs->a[iField].pExpr = 0;-
257 -
258 ((void) (0))-
259 ;-
260 pLhs = sqlite3ExprListAppend(pParse, pLhs, pOrigLhs->a[iField].pExpr);-
261 pOrigLhs->a[iField].pExpr = 0;-
262 }
executed 79 times by 1 test: end of block
Executed by:
  • Self test (438)
79
263 }
executed 82 times by 1 test: end of block
Executed by:
  • Self test (438)
82
264 sqlite3ExprListDelete(db, pOrigRhs);-
265 sqlite3ExprListDelete(db, pOrigLhs);-
266 pNew->pLeft->x.pList = pLhs;-
267 pNew->x.pSelect->pEList = pRhs;-
268 if( pLhs
pLhsDescription
TRUEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
&& pLhs->nExpr==1
pLhs->nExpr==1Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 29 times by 1 test
Evaluated by:
  • Self test (438)
){
0-50
269-
270-
271-
272 Expr *p = pLhs->a[0].pExpr;-
273 pLhs->a[0].pExpr = 0;-
274 sqlite3ExprDelete(db, pNew->pLeft);-
275 pNew->pLeft = p;-
276 }
executed 21 times by 1 test: end of block
Executed by:
  • Self test (438)
21
277 pSelect = pNew->x.pSelect;-
278 if( pSelect->pOrderBy
pSelect->pOrderByDescription
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 47 times by 1 test
Evaluated by:
  • Self test (438)
){
3-47
279-
280-
281-
282-
283-
284-
285-
286 ExprList *pOrderBy = pSelect->pOrderBy;-
287 for(i=0; i<pOrderBy->nExpr
i<pOrderBy->nExprDescription
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
3-6
288 pOrderBy->a[i].u.x.iOrderByCol = 0;-
289 }
executed 6 times by 1 test: end of block
Executed by:
  • Self test (438)
6
290 }
executed 3 times by 1 test: end of block
Executed by:
  • Self test (438)
3
291-
292-
293-
294-
295-
296-
297-
298 }
executed 50 times by 1 test: end of block
Executed by:
  • Self test (438)
50
299 return
executed 50 times by 1 test: return pNew;
Executed by:
  • Self test (438)
pNew;
executed 50 times by 1 test: return pNew;
Executed by:
  • Self test (438)
50
300}-
301static int codeEqualityTerm(-
302 Parse *pParse,-
303 WhereTerm *pTerm,-
304 WhereLevel *pLevel,-
305 int iEq,-
306 int bRev,-
307 int iTarget-
308){-
309 Expr *pX = pTerm->pExpr;-
310 Vdbe *v = pParse->pVdbe;-
311 int iReg;-
312-
313 -
314 ((void) (0))-
315 ;-
316 -
317 ((void) (0))-
318 ;-
319 if( pX->op==53
pX->op==53Description
TRUEevaluated 50829 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 2014 times by 1 test
Evaluated by:
  • Self test (438)
|| pX->op==45
pX->op==45Description
TRUEevaluated 1029 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 985 times by 1 test
Evaluated by:
  • Self test (438)
){
985-50829
320 iReg = sqlite3ExprCodeTarget(pParse, pX->pRight, iTarget);-
321 }
executed 51858 times by 30 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
else if( pX->op==50
pX->op==50Description
TRUEevaluated 172 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 813 times by 1 test
Evaluated by:
  • Self test (438)
){
172-51858
322 iReg = iTarget;-
323 sqlite3VdbeAddOp2(v, 73, 0, iReg);-
324-
325 }
executed 172 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
172
326 int eType = 5;-
327 int iTab;-
328 struct InLoop *pIn;-
329 WhereLoop *pLoop = pLevel->pWLoop;-
330 int i;-
331 int nEq = 0;-
332 int *aiMap = 0;-
333-
334 if( (
(pLoop->wsFlag...0x00000400)==0Description
TRUEevaluated 792 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
pLoop->wsFlags & 0x00000400)==0
(pLoop->wsFlag...0x00000400)==0Description
TRUEevaluated 792 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
21-792
335 && pLoop->u.btree.pIndex!=0
pLoop->u.btree.pIndex!=0Description
TRUEevaluated 718 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 74 times by 1 test
Evaluated by:
  • Self test (438)
74-718
336 && pLoop->u.btree.pIndex->aSortOrder[iEq]
pLoop->u.btree...SortOrder[iEq]Description
TRUEevaluated 147 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 571 times by 1 test
Evaluated by:
  • Self test (438)
147-571
337 ){-
338 ;-
339 ;-
340 bRev = !bRev;-
341 }
executed 147 times by 1 test: end of block
Executed by:
  • Self test (438)
147
342 -
343 ((void) (0))-
344 ;-
345 iReg = iTarget;-
346-
347 for(i=0; i<iEq
i<iEqDescription
TRUEevaluated 331 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 775 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
331-775
348 if( pLoop->aLTerm[i]
pLoop->aLTerm[i]Description
TRUEevaluated 324 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 7 times by 1 test
Evaluated by:
  • Self test (438)
&& pLoop->aLTerm[i]->pExpr==pX
pLoop->aLTerm[i]->pExpr==pXDescription
TRUEevaluated 38 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 286 times by 1 test
Evaluated by:
  • Self test (438)
){
7-324
349 disableTerm(pLevel, pTerm);-
350 return
executed 38 times by 1 test: return iTarget;
Executed by:
  • Self test (438)
iTarget;
executed 38 times by 1 test: return iTarget;
Executed by:
  • Self test (438)
38
351 }-
352 }
executed 293 times by 1 test: end of block
Executed by:
  • Self test (438)
293
353 for(i=iEq;i<pLoop->nLTerm
i<pLoop->nLTermDescription
TRUEevaluated 1142 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 775 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
775-1142
354 -
355 ((void) (0))-
356 ;-
357 if( pLoop->aLTerm[i]->pExpr==pX
pLoop->aLTerm[i]->pExpr==pXDescription
TRUEevaluated 813 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 329 times by 1 test
Evaluated by:
  • Self test (438)
) nEq++;
executed 813 times by 1 test: nEq++;
Executed by:
  • Self test (438)
329-813
358 }
executed 1142 times by 1 test: end of block
Executed by:
  • Self test (438)
1142
359-
360 if( (
(pX->flags & 0x000800)==0Description
TRUEevaluated 344 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 431 times by 1 test
Evaluated by:
  • Self test (438)
pX->flags & 0x000800)==0
(pX->flags & 0x000800)==0Description
TRUEevaluated 344 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 431 times by 1 test
Evaluated by:
  • Self test (438)
|| pX->x.pSelect->pEList->nExpr==1
pX->x.pSelect-...List->nExpr==1Description
TRUEevaluated 381 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
){
50-431
361 eType = sqlite3FindInIndex(pParse, pX, 0x0004, 0, 0);-
362 }
executed 725 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
725
363 sqlite3 *db = pParse->db;-
364 pX = removeUnindexableInClauseTerms(pParse, iEq, pLoop, pX);-
365-
366 if( !db->mallocFailed
!db->mallocFailedDescription
TRUEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-50
367 aiMap = (int*)sqlite3DbMallocZero(pParse->db, sizeof(int)*nEq);-
368 eType = sqlite3FindInIndex(pParse, pX, 0x0004, 0, aiMap);-
369 pTerm->pExpr->iTable = pX->iTable;-
370 }
executed 50 times by 1 test: end of block
Executed by:
  • Self test (438)
50
371 sqlite3ExprDelete(db, pX);-
372 pX = pTerm->pExpr;-
373 }
executed 50 times by 1 test: end of block
Executed by:
  • Self test (438)
50
374-
375 if( eType==4
eType==4Description
TRUEevaluated 97 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 678 times by 1 test
Evaluated by:
  • Self test (438)
){
97-678
376 ;-
377 bRev = !bRev;-
378 }
executed 97 times by 1 test: end of block
Executed by:
  • Self test (438)
97
379 iTab = pX->iTable;-
380 sqlite3VdbeAddOp2(v, bRev ? 32 : 36, iTab, 0);-
381 ;-
382 ;-
383 -
384 ((void) (0))-
385 ;-
386-
387 pLoop->wsFlags |= 0x00000800;-
388 if( pLevel->u.in.nIn==0
pLevel->u.in.nIn==0Description
TRUEevaluated 679 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 96 times by 1 test
Evaluated by:
  • Self test (438)
){
96-679
389 pLevel->addrNxt = sqlite3VdbeMakeLabel(v);-
390 }
executed 679 times by 1 test: end of block
Executed by:
  • Self test (438)
679
391-
392 i = pLevel->u.in.nIn;-
393 pLevel->u.in.nIn += nEq;-
394 pLevel->u.in.aInLoop =-
395 sqlite3DbReallocOrFree(pParse->db, pLevel->u.in.aInLoop,-
396 sizeof(pLevel->u.in.aInLoop[0])*pLevel->u.in.nIn);-
397 pIn = pLevel->u.in.aInLoop;-
398 if( pIn
pInDescription
TRUEevaluated 775 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-775
399 int iMap = 0;-
400 pIn += i;-
401 for(i=iEq;i<pLoop->nLTerm
i<pLoop->nLTermDescription
TRUEevaluated 1142 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 775 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
775-1142
402 if( pLoop->aLTerm[i]->pExpr==pX
pLoop->aLTerm[i]->pExpr==pXDescription
TRUEevaluated 813 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 329 times by 1 test
Evaluated by:
  • Self test (438)
){
329-813
403 int iOut = iReg + i - iEq;-
404 if( eType==1
eType==1Description
TRUEevaluated 74 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 739 times by 1 test
Evaluated by:
  • Self test (438)
){
74-739
405 ;-
406 pIn->addrInTop = sqlite3VdbeAddOp2(v, 129, iTab, iOut);-
407 }
executed 74 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
74
408 int iCol = aiMap
aiMapDescription
TRUEevaluated 79 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 660 times by 1 test
Evaluated by:
  • Self test (438)
? aiMap[iMap++] : 0;
79-660
409 pIn->addrInTop = sqlite3VdbeAddOp3(v,90,iTab, iCol, iOut);-
410 }
executed 739 times by 1 test: end of block
Executed by:
  • Self test (438)
739
411 sqlite3VdbeAddOp1(v, 50, iOut); ;-
412 if( i==iEq
i==iEqDescription
TRUEevaluated 775 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 38 times by 1 test
Evaluated by:
  • Self test (438)
){
38-775
413 pIn->iCur = iTab;-
414 pIn->eEndLoopOp = bRev
bRevDescription
TRUEevaluated 162 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 613 times by 1 test
Evaluated by:
  • Self test (438)
? 4 : 5;
162-613
415 if( iEq>0
iEq>0Description
TRUEevaluated 256 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 519 times by 1 test
Evaluated by:
  • Self test (438)
&& (
(pLoop->wsFlag...0x00000400)==0Description
TRUEevaluated 255 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
pLoop->wsFlags & 0x00000400)==0
(pLoop->wsFlag...0x00000400)==0Description
TRUEevaluated 255 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
){
1-519
416 pIn->iBase = iReg - i;-
417 pIn->nPrefix = i;-
418 pLoop->wsFlags |= 0x00040000;-
419 }
executed 255 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
255
420 pIn->nPrefix = 0;-
421 }
executed 520 times by 1 test: end of block
Executed by:
  • Self test (438)
520
422 }else{-
423 pIn->eEndLoopOp = 171;-
424 }
executed 38 times by 1 test: end of block
Executed by:
  • Self test (438)
38
425 pIn++;-
426 }
executed 813 times by 1 test: end of block
Executed by:
  • Self test (438)
813
427 }
executed 1142 times by 1 test: end of block
Executed by:
  • Self test (438)
1142
428 }
executed 775 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
775
429 pLevel->u.in.nIn = 0;-
430 }
never executed: end of block
0
431 sqlite3DbFree(pParse->db, aiMap);-
432-
433 }
executed 775 times by 1 test: end of block
Executed by:
  • Self test (438)
775
434 disableTerm(pLevel, pTerm);-
435 return
executed 52805 times by 30 tests: return iReg;
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
iReg;
executed 52805 times by 30 tests: return iReg;
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
52805
436}-
437static int codeAllEqualityTerms(-
438 Parse *pParse,-
439 WhereLevel *pLevel,-
440 int bRev,-
441 int nExtraReg,-
442 char **pzAff-
443){-
444 u16 nEq;-
445 u16 nSkip;-
446 Vdbe *v = pParse->pVdbe;-
447 Index *pIdx;-
448 WhereTerm *pTerm;-
449 WhereLoop *pLoop;-
450 int j;-
451 int regBase;-
452 int nReg;-
453 char *zAff;-
454-
455-
456 pLoop = pLevel->pWLoop;-
457 -
458 ((void) (0))-
459 ;-
460 nEq = pLoop->u.btree.nEq;-
461 nSkip = pLoop->nSkip;-
462 pIdx = pLoop->u.btree.pIndex;-
463 -
464 ((void) (0))-
465 ;-
466-
467-
468-
469 regBase = pParse->nMem + 1;-
470 nReg = pLoop->u.btree.nEq + nExtraReg;-
471 pParse->nMem += nReg;-
472-
473 zAff = sqlite3DbStrDup(pParse->db,sqlite3IndexAffinityStr(pParse->db,pIdx));-
474 -
475 ((void) (0))-
476 ;-
477-
478 if( nSkip
nSkipDescription
TRUEevaluated 44 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31233 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
44-31233
479 int iIdxCur = pLevel->iIdxCur;-
480 sqlite3VdbeAddOp1(v, (bRev?32:36), iIdxCur);-
481 ;-
482 ;-
483 ;-
484 j = sqlite3VdbeAddOp0(v, 11);-
485 pLevel->addrSkip = sqlite3VdbeAddOp4Int(v, (bRev?22:25),-
486 iIdxCur, 0, regBase, nSkip);-
487 ;-
488 ;-
489 sqlite3VdbeJumpHere(v, j);-
490 for(j=0; j<nSkip
j<nSkipDescription
TRUEevaluated 64 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 44 times by 1 test
Evaluated by:
  • Self test (438)
; j++){
44-64
491 sqlite3VdbeAddOp3(v, 90, iIdxCur, j, regBase+j);-
492 ;-
493 ;-
494 }
executed 64 times by 1 test: end of block
Executed by:
  • Self test (438)
64
495 }
executed 44 times by 1 test: end of block
Executed by:
  • Self test (438)
44
496-
497-
498-
499 -
500 ((void) (0))-
501 ;-
502 for(j=nSkip; j<nEq
j<nEqDescription
TRUEevaluated 22589 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31277 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
; j++){
22589-31277
503 int r1;-
504 pTerm = pLoop->aLTerm[j];-
505 -
506 ((void) (0))-
507 ;-
508-
509-
510 ;-
511 ;-
512 r1 = codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, regBase+j);-
513 if( r1!=regBase+j
r1!=regBase+jDescription
TRUEevaluated 988 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21601 times by 1 test
Evaluated by:
  • Self test (438)
){
988-21601
514 if( nReg==1
nReg==1Description
TRUEevaluated 195 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 793 times by 1 test
Evaluated by:
  • Self test (438)
){
195-793
515 sqlite3ReleaseTempReg(pParse, regBase);-
516 regBase = r1;-
517 }
executed 195 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
195
518 sqlite3VdbeAddOp2(v, 79, r1, regBase+j);-
519 }
executed 793 times by 1 test: end of block
Executed by:
  • Self test (438)
793
520 }-
521 if( pTerm->eOperator & 0x0001
pTerm->eOperator & 0x0001Description
TRUEevaluated 718 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21871 times by 1 test
Evaluated by:
  • Self test (438)
){
718-21871
522 if( pTerm->pExpr->flags & 0x000800
pTerm->pExpr->flags & 0x000800Description
TRUEevaluated 432 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 286 times by 1 test
Evaluated by:
  • Self test (438)
){
286-432
523-
524-
525-
526-
527 if( zAff
zAffDescription
TRUEevaluated 432 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
) zAff[j] = 'A';
executed 432 times by 1 test: zAff[j] = 'A';
Executed by:
  • Self test (438)
0-432
528 }
executed 432 times by 1 test: end of block
Executed by:
  • Self test (438)
432
529 }
executed 718 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( (
(pTerm->eOperator & 0x0100)==0Description
TRUEevaluated 21699 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 172 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->eOperator & 0x0100)==0
(pTerm->eOperator & 0x0100)==0Description
TRUEevaluated 21699 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 172 times by 1 test
Evaluated by:
  • Self test (438)
){
172-21699
530 Expr *pRight = pTerm->pExpr->pRight;-
531 if( (
(pTerm->wtFlags & 0x800)==0Description
TRUEevaluated 20677 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1022 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->wtFlags & 0x800)==0
(pTerm->wtFlags & 0x800)==0Description
TRUEevaluated 20677 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1022 times by 1 test
Evaluated by:
  • Self test (438)
&& sqlite3ExprCanBeNull(pRight)
sqlite3ExprCanBeNull(pRight)Description
TRUEevaluated 6202 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 14475 times by 1 test
Evaluated by:
  • Self test (438)
){
1022-20677
532 sqlite3VdbeAddOp2(v, 50, regBase+j, pLevel->addrBrk);-
533 ;-
534 }
executed 6202 times by 1 test: end of block
Executed by:
  • Self test (438)
6202
535 if( zAff
zAffDescription
TRUEevaluated 21675 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 24 times by 1 test
Evaluated by:
  • Self test (438)
){
24-21675
536 if( sqlite3CompareAffinity(pRight, zAff[j])=='A'
sqlite3Compare... zAff[j])=='A'Description
TRUEevaluated 19779 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1896 times by 1 test
Evaluated by:
  • Self test (438)
){
1896-19779
537 zAff[j] = 'A';-
538 }
executed 19779 times by 1 test: end of block
Executed by:
  • Self test (438)
19779
539 if( sqlite3ExprNeedsNoAffinityChange(pRight, zAff[j])
sqlite3ExprNee...ight, zAff[j])Description
TRUEevaluated 21270 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 405 times by 1 test
Evaluated by:
  • Self test (438)
){
405-21270
540 zAff[j] = 'A';-
541 }
executed 21270 times by 1 test: end of block
Executed by:
  • Self test (438)
21270
542 }
executed 21675 times by 1 test: end of block
Executed by:
  • Self test (438)
21675
543 }
executed 21699 times by 1 test: end of block
Executed by:
  • Self test (438)
21699
544 }
executed 22589 times by 1 test: end of block
Executed by:
  • Self test (438)
22589
545 *pzAff = zAff;-
546 return
executed 31277 times by 2 tests: return regBase;
Executed by:
  • Self test (438)
  • Self test (47)
regBase;
executed 31277 times by 2 tests: return regBase;
Executed by:
  • Self test (438)
  • Self test (47)
31277
547}-
548static void whereLikeOptimizationStringFixup(-
549 Vdbe *v,-
550 WhereLevel *pLevel,-
551 WhereTerm *pTerm-
552){-
553 if( pTerm->wtFlags & 0x100
pTerm->wtFlags & 0x100Description
TRUEevaluated 3452 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 8453 times by 1 test
Evaluated by:
  • Self test (438)
){
3452-8453
554 VdbeOp *pOp;-
555 -
556 ((void) (0))-
557 ;-
558 pOp = sqlite3VdbeGetOp(v, -1);-
559 -
560 ((void) (0))-
561 ;-
562 -
563 ((void) (0))-
564 -
565 ;-
566 pOp->p3 = (int)(pLevel->iLikeRepCntr>>1);-
567 pOp->p5 = (u8)(pLevel->iLikeRepCntr&1);-
568 }
executed 3452 times by 1 test: end of block
Executed by:
  • Self test (438)
3452
569}
executed 11905 times by 1 test: end of block
Executed by:
  • Self test (438)
11905
570static void codeDeferredSeek(-
571 WhereInfo *pWInfo,-
572 Index *pIdx,-
573 int iCur,-
574 int iIdxCur-
575){-
576 Parse *pParse = pWInfo->pParse;-
577 Vdbe *v = pParse->pVdbe;-
578-
579 -
580 ((void) (0))-
581 ;-
582 -
583 ((void) (0))-
584 ;-
585-
586 sqlite3VdbeAddOp3(v, 135, iIdxCur, 0, iCur);-
587 if( (
(pWInfo->wctrlFlags & 0x0020)Description
TRUEevaluated 13263 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 7809 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pWInfo->wctrlFlags & 0x0020)
(pWInfo->wctrlFlags & 0x0020)Description
TRUEevaluated 13263 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 7809 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
7809-13263
588 && (((
(((pParse)->pT...>writeMask)==0Description
TRUEevaluated 13243 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 20 times by 1 test
Evaluated by:
  • Self test (438)
pParse)->pToplevel ? (pParse)->pToplevel : (pParse))->writeMask)==0
(((pParse)->pT...>writeMask)==0Description
TRUEevaluated 13243 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 20 times by 1 test
Evaluated by:
  • Self test (438)
4-13259
589 ){-
590 int i;-
591 Table *pTab = pIdx->pTable;-
592 int *ai = (int*)sqlite3DbMallocZero(pParse->db, sizeof(int)*(pTab->nCol+1));-
593 if( ai
aiDescription
TRUEevaluated 13243 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-13243
594 ai[0] = pTab->nCol;-
595 for(i=0; i<pIdx->nColumn-1
i<pIdx->nColumn-1Description
TRUEevaluated 19594 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 13243 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
13243-19594
596 -
597 ((void) (0))-
598 ;-
599 if( pIdx->aiColumn[i]>=0
pIdx->aiColumn[i]>=0Description
TRUEevaluated 19594 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
) ai[pIdx->aiColumn[i]+1] = i+1;
executed 19594 times by 1 test: ai[pIdx->aiColumn[i]+1] = i+1;
Executed by:
  • Self test (438)
0-19594
600 }
executed 19594 times by 1 test: end of block
Executed by:
  • Self test (438)
19594
601 sqlite3VdbeChangeP4(v, -1, (char*)ai, (-15));-
602 }
executed 13243 times by 1 test: end of block
Executed by:
  • Self test (438)
13243
603 }
executed 13243 times by 1 test: end of block
Executed by:
  • Self test (438)
13243
604}
executed 21072 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
21072
605static void codeExprOrVector(Parse *pParse, Expr *p, int iReg, int nReg){-
606 -
607 ((void) (0))-
608 ;-
609 if( p
pDescription
TRUEevaluated 32652 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
&& sqlite3ExprIsVector(p)
sqlite3ExprIsVector(p)Description
TRUEevaluated 2054 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 30598 times by 1 test
Evaluated by:
  • Self test (438)
){
3-32652
610-
611 if( (
(p->flags & 0x000800)Description
TRUEevaluated 907 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1147 times by 1 test
Evaluated by:
  • Self test (438)
p->flags & 0x000800)
(p->flags & 0x000800)Description
TRUEevaluated 907 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1147 times by 1 test
Evaluated by:
  • Self test (438)
){
907-1147
612 Vdbe *v = pParse->pVdbe;-
613 int iSelect = sqlite3CodeSubselect(pParse, p, 0, 0);-
614 sqlite3VdbeAddOp3(v, 78, iSelect, iReg, nReg-1);-
615 }
executed 907 times by 1 test: end of block
Executed by:
  • Self test (438)
else
907
616-
617 {-
618 int i;-
619 ExprList *pList = p->x.pList;-
620 -
621 ((void) (0))-
622 ;-
623 for(i=0; i<nReg
i<nRegDescription
TRUEevaluated 2227 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1147 times by 1 test
Evaluated by:
  • Self test (438)
; i++){
1147-2227
624 sqlite3ExprCode(pParse, pList->a[i].pExpr, iReg+i);-
625 }
executed 2227 times by 1 test: end of block
Executed by:
  • Self test (438)
2227
626 }
executed 1147 times by 1 test: end of block
Executed by:
  • Self test (438)
1147
627 }else{-
628 -
629 ((void) (0))-
630 ;-
631 sqlite3ExprCode(pParse, p, iReg);-
632 }
executed 30601 times by 1 test: end of block
Executed by:
  • Self test (438)
30601
633}-
634-
635-
636-
637-
638-
639typedef struct IdxExprTrans {-
640 Expr *pIdxExpr;-
641 int iTabCur;-
642 int iIdxCur;-
643 int iIdxCol;-
644} IdxExprTrans;-
645-
646-
647-
648-
649-
650-
651-
652static int whereIndexExprTransNode(Walker *p, Expr *pExpr){-
653 IdxExprTrans *pX = p->u.pIdxTrans;-
654 if( sqlite3ExprCompare(0, pExpr, pX->pIdxExpr, pX->iTabCur)==0
sqlite3ExprCom...X->iTabCur)==0Description
TRUEevaluated 72 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 303 times by 1 test
Evaluated by:
  • Self test (438)
){
72-303
655 pExpr->op = 158;-
656 pExpr->iTable = pX->iIdxCur;-
657 pExpr->iColumn = pX->iIdxCol;-
658 pExpr->y.pTab = 0;-
659 return
executed 72 times by 1 test: return 1;
Executed by:
  • Self test (438)
1;
executed 72 times by 1 test: return 1;
Executed by:
  • Self test (438)
72
660 }else{-
661 return
executed 303 times by 1 test: return 0;
Executed by:
  • Self test (438)
0;
executed 303 times by 1 test: return 0;
Executed by:
  • Self test (438)
303
662 }-
663}-
664-
665-
666-
667-
668-
669-
670static void whereIndexExprTrans(-
671 Index *pIdx,-
672 int iTabCur,-
673 int iIdxCur,-
674 WhereInfo *pWInfo-
675){-
676 int iIdxCol;-
677 ExprList *aColExpr;-
678 Walker w;-
679 IdxExprTrans x;-
680 aColExpr = pIdx->aColExpr;-
681 if( aColExpr==0
aColExpr==0Description
TRUEevaluated 30967 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 62 times by 1 test
Evaluated by:
  • Self test (438)
) return;
executed 30967 times by 2 tests: return;
Executed by:
  • Self test (438)
  • Self test (47)
62-30967
682 memset(&w, 0, sizeof(w));-
683 w.xExprCallback = whereIndexExprTransNode;-
684 w.u.pIdxTrans = &x;-
685 x.iTabCur = iTabCur;-
686 x.iIdxCur = iIdxCur;-
687 for(iIdxCol=0; iIdxCol<aColExpr->nExpr
iIdxCol<aColExpr->nExprDescription
TRUEevaluated 79 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 62 times by 1 test
Evaluated by:
  • Self test (438)
; iIdxCol++){
62-79
688 if( pIdx->aiColumn[iIdxCol]!=(-2)
pIdx->aiColumn[iIdxCol]!=(-2)Description
TRUEevaluated 16 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 63 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 16 times by 1 test: continue;
Executed by:
  • Self test (438)
16-63
689 -
690 ((void) (0))-
691 ;-
692 x.iIdxCol = iIdxCol;-
693 x.pIdxExpr = aColExpr->a[iIdxCol].pExpr;-
694 sqlite3WalkExpr(&w, pWInfo->pWhere);-
695 sqlite3WalkExprList(&w, pWInfo->pOrderBy);-
696 sqlite3WalkExprList(&w, pWInfo->pResultSet);-
697 }
executed 63 times by 1 test: end of block
Executed by:
  • Self test (438)
63
698}
executed 62 times by 1 test: end of block
Executed by:
  • Self test (438)
62
699-
700-
701-
702-
703-
704Bitmask sqlite3WhereCodeOneLoopStart(-
705 WhereInfo *pWInfo,-
706 int iLevel,-
707 Bitmask notReady-
708){-
709 int j, k;-
710 int iCur;-
711 int addrNxt;-
712 int omitTable;-
713 int bRev;-
714 WhereLevel *pLevel;-
715 WhereLoop *pLoop;-
716 WhereClause *pWC;-
717 WhereTerm *pTerm;-
718 Parse *pParse;-
719 sqlite3 *db;-
720 Vdbe *v;-
721 struct SrcList_item *pTabItem;-
722 int addrBrk;-
723 int addrHalt;-
724 int addrCont;-
725 int iRowidReg = 0;-
726 int iReleaseReg = 0;-
727 Index *pIdx = 0;-
728 int iLoop;-
729-
730 pParse = pWInfo->pParse;-
731 v = pParse->pVdbe;-
732 pWC = &pWInfo->sWC;-
733 db = pParse->db;-
734 pLevel = &pWInfo->a[iLevel];-
735 pLoop = pLevel->pWLoop;-
736 pTabItem = &pWInfo->pTabList->a[pLevel->iFrom];-
737 iCur = pTabItem->iCursor;-
738 pLevel->notReady = notReady & ~sqlite3WhereGetMask(&pWInfo->sMaskSet, iCur);-
739 bRev = (pWInfo->revMask>>iLevel)&1;-
740 omitTable = (
(pLoop->wsFlag...0x00000040)!=0Description
TRUEevaluated 11022 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 267474 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
pLoop->wsFlags & 0x00000040)!=0
(pLoop->wsFlag...0x00000040)!=0Description
TRUEevaluated 11022 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 267474 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
11022-267474
741 && (
(pWInfo->wctrl...s & 0x0020)==0Description
TRUEevaluated 9827 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1195 times by 1 test
Evaluated by:
  • Self test (438)
pWInfo->wctrlFlags & 0x0020)==0
(pWInfo->wctrl...s & 0x0020)==0Description
TRUEevaluated 9827 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1195 times by 1 test
Evaluated by:
  • Self test (438)
;
1195-9827
742 ;-
743 addrBrk = pLevel->addrBrk = pLevel->addrNxt = sqlite3VdbeMakeLabel(v);-
744 addrCont = pLevel->addrCont = sqlite3VdbeMakeLabel(v);-
745-
746-
747-
748-
749-
750 -
751 ((void) (0))-
752-
753 -
754 ;-
755 if( pLevel->iFrom>0
pLevel->iFrom>0Description
TRUEevaluated 11128 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 267368 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
&& (
(pTabItem[0].f...e & 0x0008)!=0Description
TRUEevaluated 425 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 10703 times by 1 test
Evaluated by:
  • Self test (438)
pTabItem[0].fg.jointype & 0x0008)!=0
(pTabItem[0].f...e & 0x0008)!=0Description
TRUEevaluated 425 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 10703 times by 1 test
Evaluated by:
  • Self test (438)
){
425-267368
756 pLevel->iLeftJoin = ++pParse->nMem;-
757 sqlite3VdbeAddOp2(v, 70, 0, pLevel->iLeftJoin);-
758 ;-
759 }
executed 425 times by 1 test: end of block
Executed by:
  • Self test (438)
425
760-
761-
762-
763 for(j=iLevel; j>0
j>0Description
TRUEevaluated 99327 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 278036 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
&& pWInfo->a[j].iLeftJoin==0
pWInfo->a[j].iLeftJoin==0Description
TRUEevaluated 98867 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 460 times by 1 test
Evaluated by:
  • Self test (438)
; j--){}
executed 98867 times by 1 test: end of block
Executed by:
  • Self test (438)
460-278036
764 addrHalt = pWInfo->a[j].addrBrk;-
765-
766-
767 if( pTabItem->fg.viaCoroutine
pTabItem->fg.viaCoroutineDescription
TRUEevaluated 35364 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 243132 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
){
35364-243132
768 int regYield = pTabItem->regReturn;-
769 sqlite3VdbeAddOp3(v, 13, regYield, 0, pTabItem->addrFillSub);-
770 pLevel->p2 = sqlite3VdbeAddOp2(v, 14, regYield, addrBrk);-
771 ;-
772 ;-
773 pLevel->op = 11;-
774 }
executed 35364 times by 1 test: end of block
Executed by:
  • Self test (438)
else
35364
775-
776-
777 if( (
(pLoop->wsFlag...0x00000400)!=0Description
TRUEevaluated 11058 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 232074 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
pLoop->wsFlags & 0x00000400)!=0
(pLoop->wsFlag...0x00000400)!=0Description
TRUEevaluated 11058 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 232074 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
){
11058-232074
778-
779-
780-
781 int iReg;-
782 int addrNotFound;-
783 int nConstraint = pLoop->nLTerm;-
784 int iIn;-
785-
786 iReg = sqlite3GetTempRange(pParse, nConstraint+2);-
787 addrNotFound = pLevel->addrBrk;-
788 for(j=0; j<nConstraint
j<nConstraintDescription
TRUEevaluated 18422 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11058 times by 1 test
Evaluated by:
  • Self test (438)
; j++){
11058-18422
789 int iTarget = iReg+j+2;-
790 pTerm = pLoop->aLTerm[j];-
791 if( (
(pTerm==0)Description
TRUEnever evaluated
FALSEevaluated 18422 times by 1 test
Evaluated by:
  • Self test (438)
pTerm==0)
(pTerm==0)Description
TRUEnever evaluated
FALSEevaluated 18422 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
never executed: continue;
0-18422
792 if( pTerm->eOperator & 0x0001
pTerm->eOperator & 0x0001Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 18401 times by 1 test
Evaluated by:
  • Self test (438)
){
21-18401
793 codeEqualityTerm(pParse, pTerm, pLevel, j, bRev, iTarget);-
794 addrNotFound = pLevel->addrNxt;-
795 }
executed 21 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
21
796 Expr *pRight = pTerm->pExpr->pRight;-
797 codeExprOrVector(pParse, pRight, iTarget, 1);-
798 }
executed 18401 times by 1 test: end of block
Executed by:
  • Self test (438)
18401
799 }-
800 sqlite3VdbeAddOp2(v, 70, pLoop->u.vtab.idxNum, iReg);-
801 sqlite3VdbeAddOp2(v, 70, nConstraint, iReg+1);-
802 sqlite3VdbeAddOp4(v, 9, iCur, addrNotFound, iReg,-
803 pLoop->u.vtab.idxStr,-
804 pLoop->u.vtab.needFree ? (-7) : (-1));-
805 ;-
806 pLoop->u.vtab.needFree = 0;-
807 pLevel->p1 = iCur;-
808 pLevel->op = pWInfo->eOnePass
pWInfo->eOnePassDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11050 times by 1 test
Evaluated by:
  • Self test (438)
? 171 : 60;
8-11050
809 pLevel->p2 = sqlite3VdbeCurrentAddr(v);-
810 iIn = pLevel->u.in.nIn;-
811 for(j=nConstraint-1; j>=0
j>=0Description
TRUEevaluated 18422 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11058 times by 1 test
Evaluated by:
  • Self test (438)
; j--){
11058-18422
812 pTerm = pLoop->aLTerm[j];-
813 if( j<16
j<16Description
TRUEevaluated 18422 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
&& (
(pLoop->u.vtab.omitMask>>j)&1Description
TRUEevaluated 17776 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 646 times by 1 test
Evaluated by:
  • Self test (438)
pLoop->u.vtab.omitMask>>j)&1
(pLoop->u.vtab.omitMask>>j)&1Description
TRUEevaluated 17776 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 646 times by 1 test
Evaluated by:
  • Self test (438)
){
0-18422
814 disableTerm(pLevel, pTerm);-
815 }
executed 17776 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( (
(pTerm->eOperator & 0x0001)!=0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 638 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->eOperator & 0x0001)!=0
(pTerm->eOperator & 0x0001)!=0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 638 times by 1 test
Evaluated by:
  • Self test (438)
){
8-17776
816 Expr *pCompare;-
817 Expr *pRight;-
818 VdbeOp *pOp;-
819-
820-
821-
822-
823-
824 -
825 ((void) (0))-
826 ;-
827 if( !db->mallocFailed
!db->mallocFailedDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-8
828 -
829 ((void) (0))-
830 ;-
831 pOp = sqlite3VdbeGetOp(v, pLevel->u.in.aInLoop[--iIn].addrInTop);-
832 -
833 ((void) (0))-
834 ;-
835 -
836 ((void) (0))-
837 ;-
838 -
839 ((void) (0))-
840 ;-
841 ;-
842 sqlite3VdbeAddOp3(v, pOp->opcode, pOp->p1, pOp->p2, pOp->p3);-
843 }
executed 8 times by 1 test: end of block
Executed by:
  • Self test (438)
8
844-
845-
846-
847 pCompare = sqlite3PExpr(pParse, 53, 0, 0);-
848 -
849 ((void) (0))-
850 ;-
851 if( pCompare
pCompareDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-8
852 pCompare->pLeft = pTerm->pExpr->pLeft;-
853 pCompare->pRight = pRight = sqlite3Expr(db, 164, 0);-
854 if( pRight
pRightDescription
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-8
855 pRight->iTable = iReg+j+2;-
856 sqlite3ExprIfFalse(pParse, pCompare, pLevel->addrCont, 0);-
857 }
executed 8 times by 1 test: end of block
Executed by:
  • Self test (438)
8
858 pCompare->pLeft = 0;-
859 sqlite3ExprDelete(db, pCompare);-
860 }
executed 8 times by 1 test: end of block
Executed by:
  • Self test (438)
8
861 }
executed 8 times by 1 test: end of block
Executed by:
  • Self test (438)
8
862 }
executed 18422 times by 1 test: end of block
Executed by:
  • Self test (438)
18422
863-
864-
865-
866-
867-
868-
869-
870 }
executed 11058 times by 1 test: end of block
Executed by:
  • Self test (438)
else
11058
871-
872-
873 if( (
(pLoop->wsFlag...0x00000100)!=0Description
TRUEevaluated 198431 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
FALSEevaluated 33643 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pLoop->wsFlags & 0x00000100)!=0
(pLoop->wsFlag...0x00000100)!=0Description
TRUEevaluated 198431 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
FALSEevaluated 33643 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
33643-198431
874 && (
(pLoop->wsFlag...x00000001))!=0Description
TRUEevaluated 30233 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 168198 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
pLoop->wsFlags & (0x00000004|0x00000001))!=0
(pLoop->wsFlag...x00000001))!=0Description
TRUEevaluated 30233 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 168198 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
30233-168198
875 ){-
876-
877-
878-
879-
880-
881 -
882 ((void) (0))-
883 ;-
884 pTerm = pLoop->aLTerm[0];-
885 -
886 ((void) (0))-
887 ;-
888 -
889 ((void) (0))-
890 ;-
891 -
892 ((void) (0))-
893 ;-
894 ;-
895 iReleaseReg = ++pParse->nMem;-
896 iRowidReg = codeEqualityTerm(pParse, pTerm, pLevel, 0, bRev, iReleaseReg);-
897 if( iRowidReg!=iReleaseReg
iRowidReg!=iReleaseRegDescription
TRUEevaluated 23620 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 6613 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3ReleaseTempReg(pParse, iReleaseReg);
executed 23620 times by 30 tests: sqlite3ReleaseTempReg(pParse, iReleaseReg);
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
6613-23620
898 addrNxt = pLevel->addrNxt;-
899 sqlite3VdbeAddOp3(v, 30, iCur, addrNxt, iRowidReg);-
900 ;-
901 pLevel->op = 171;-
902 }
executed 30233 times by 30 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
else if( (
(pLoop->wsFlag...0x00000100)!=0Description
TRUEevaluated 168198 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
FALSEevaluated 33643 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pLoop->wsFlags & 0x00000100)!=0
(pLoop->wsFlag...0x00000100)!=0Description
TRUEevaluated 168198 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
FALSEevaluated 33643 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
30233-168198
903 && (
(pLoop->wsFlag...0x00000002)!=0Description
TRUEevaluated 3124 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 165074 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
pLoop->wsFlags & 0x00000002)!=0
(pLoop->wsFlag...0x00000002)!=0Description
TRUEevaluated 3124 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 165074 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
3124-165074
904 ){-
905-
906-
907 int testOp = 171;-
908 int start;-
909 int memEndValue = 0;-
910 WhereTerm *pStart, *pEnd;-
911-
912 -
913 ((void) (0))-
914 ;-
915 j = 0;-
916 pStart = pEnd = 0;-
917 if( pLoop->wsFlags & 0x00000020
pLoop->wsFlags & 0x00000020Description
TRUEevaluated 2561 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 563 times by 1 test
Evaluated by:
  • Self test (438)
) pStart = pLoop->aLTerm[j++];
executed 2561 times by 1 test: pStart = pLoop->aLTerm[j++];
Executed by:
  • Self test (438)
563-2561
918 if( pLoop->wsFlags & 0x00000010
pLoop->wsFlags & 0x00000010Description
TRUEevaluated 2458 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 666 times by 1 test
Evaluated by:
  • Self test (438)
) pEnd = pLoop->aLTerm[j++];
executed 2458 times by 1 test: pEnd = pLoop->aLTerm[j++];
Executed by:
  • Self test (438)
666-2458
919 -
920 ((void) (0))-
921 ;-
922 if( bRev
bRevDescription
TRUEevaluated 440 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2684 times by 1 test
Evaluated by:
  • Self test (438)
){
440-2684
923 pTerm = pStart;-
924 pStart = pEnd;-
925 pEnd = pTerm;-
926 }
executed 440 times by 1 test: end of block
Executed by:
  • Self test (438)
440
927 ;-
928 if( pStart
pStartDescription
TRUEevaluated 2708 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 416 times by 1 test
Evaluated by:
  • Self test (438)
){
416-2708
929 Expr *pX;-
930 int r1, rTemp;-
931 int op;-
932-
933-
934-
935-
936 const u8 aMoveOp[] = {-
937 25,-
938 23,-
939 22,-
940 24-
941 };-
942 -
943 ((void) (0))-
944 ;-
945 -
946 ((void) (0))-
947 ;-
948 -
949 ((void) (0))-
950 ;-
951-
952 -
953 ((void) (0))-
954 ;-
955 ;-
956 pX = pStart->pExpr;-
957 -
958 ((void) (0))-
959 ;-
960 ;-
961 if( sqlite3ExprIsVector(pX->pRight)
sqlite3ExprIsV...or(pX->pRight)Description
TRUEevaluated 38 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2670 times by 1 test
Evaluated by:
  • Self test (438)
){
38-2670
962 r1 = rTemp = sqlite3GetTempReg(pParse);-
963 codeExprOrVector(pParse, pX->pRight, r1, 1);-
964 ;-
965 ;-
966 ;-
967 ;-
968 op = aMoveOp[((pX->op - 54 - 1) & 0x3) | 0x1];-
969 -
970 ((void) (0))-
971 ;-
972 -
973 ((void) (0))-
974 ;-
975 -
976 ((void) (0))-
977 ;-
978 -
979 ((void) (0))-
980 ;-
981 }
executed 38 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
38
982 r1 = sqlite3ExprCodeTemp(pParse, pX->pRight, &rTemp);-
983 disableTerm(pLevel, pStart);-
984 op = aMoveOp[(pX->op - 54)];-
985 }
executed 2670 times by 1 test: end of block
Executed by:
  • Self test (438)
2670
986 sqlite3VdbeAddOp3(v, op, iCur, addrBrk, r1);-
987 ;-
988 ;-
989 ;-
990 ;-
991 ;-
992 sqlite3ReleaseTempReg(pParse, rTemp);-
993 }
executed 2708 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
2708
994 sqlite3VdbeAddOp2(v, bRev ? 32 : 36, iCur, addrHalt);-
995 ;-
996 ;-
997 }
executed 416 times by 1 test: end of block
Executed by:
  • Self test (438)
416
998 if( pEnd
pEndDescription
TRUEevaluated 2311 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 813 times by 1 test
Evaluated by:
  • Self test (438)
){
813-2311
999 Expr *pX;-
1000 pX = pEnd->pExpr;-
1001 -
1002 ((void) (0))-
1003 ;-
1004 -
1005 ((void) (0))-
1006 ;-
1007 ;-
1008 ;-
1009 memEndValue = ++pParse->nMem;-
1010 codeExprOrVector(pParse, pX->pRight, memEndValue, 1);-
1011 if( 0==sqlite3ExprIsVector(pX->pRight)
0==sqlite3Expr...or(pX->pRight)Description
TRUEevaluated 2307 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
4-2307
1012 && (pX->op==56
pX->op==56Description
TRUEevaluated 120 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2187 times by 1 test
Evaluated by:
  • Self test (438)
|| pX->op==54
pX->op==54Description
TRUEevaluated 74 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2113 times by 1 test
Evaluated by:
  • Self test (438)
)
74-2187
1013 ){-
1014 testOp = bRev
bRevDescription
TRUEevaluated 74 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 120 times by 1 test
Evaluated by:
  • Self test (438)
? 55 : 57;
74-120
1015 }
executed 194 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
194
1016 testOp = bRev
bRevDescription
TRUEevaluated 73 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2044 times by 1 test
Evaluated by:
  • Self test (438)
? 56 : 54;
73-2044
1017 }
executed 2117 times by 1 test: end of block
Executed by:
  • Self test (438)
2117
1018 if( 0==sqlite3ExprIsVector(pX->pRight)
0==sqlite3Expr...or(pX->pRight)Description
TRUEevaluated 2307 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
){
4-2307
1019 disableTerm(pLevel, pEnd);-
1020 }
executed 2307 times by 1 test: end of block
Executed by:
  • Self test (438)
2307
1021 }
executed 2311 times by 1 test: end of block
Executed by:
  • Self test (438)
2311
1022 start = sqlite3VdbeCurrentAddr(v);-
1023 pLevel->op = bRev
bRevDescription
TRUEevaluated 440 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2684 times by 1 test
Evaluated by:
  • Self test (438)
? 4 : 5;
440-2684
1024 pLevel->p1 = iCur;-
1025 pLevel->p2 = start;-
1026 -
1027 ((void) (0))-
1028 ;-
1029 if( testOp!=171
testOp!=171Description
TRUEevaluated 2311 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 813 times by 1 test
Evaluated by:
  • Self test (438)
){
813-2311
1030 iRowidReg = ++pParse->nMem;-
1031 sqlite3VdbeAddOp2(v, 129, iCur, iRowidReg);-
1032 sqlite3VdbeAddOp3(v, testOp, memEndValue, addrBrk, iRowidReg);-
1033 ;-
1034 ;-
1035 ;-
1036 ;-
1037 sqlite3VdbeChangeP5(v, 'C' | 0x10);-
1038 }
executed 2311 times by 1 test: end of block
Executed by:
  • Self test (438)
2311
1039 }
executed 3124 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( pLoop->wsFlags & 0x00000200
pLoop->wsFlags & 0x00000200Description
TRUEevaluated 31277 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 167440 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
){
3124-167440
1040 static const u8 aStartOp[] = {-
1041 0,-
1042 0,-
1043 36,-
1044 32,-
1045 25,-
1046 22,-
1047 24,-
1048 23-
1049 };-
1050 static const u8 aEndOp[] = {-
1051 40,-
1052 38,-
1053 37,-
1054 39,-
1055 };-
1056 u16 nEq = pLoop->u.btree.nEq;-
1057 u16 nBtm = pLoop->u.btree.nBtm;-
1058 u16 nTop = pLoop->u.btree.nTop;-
1059 int regBase;-
1060 WhereTerm *pRangeStart = 0;-
1061 WhereTerm *pRangeEnd = 0;-
1062 int startEq;-
1063 int endEq;-
1064 int start_constraints;-
1065 int nConstraint;-
1066 int iIdxCur;-
1067 int nExtraReg = 0;-
1068 int op;-
1069 char *zStartAff;-
1070 char *zEndAff = 0;-
1071 u8 bSeekPastNull = 0;-
1072 u8 bStopAtNull = 0;-
1073-
1074 pIdx = pLoop->u.btree.pIndex;-
1075 iIdxCur = pLevel->iIdxCur;-
1076 -
1077 ((void) (0))-
1078 ;-
1079 -
1080 ((void) (0))-
1081-
1082 -
1083 ;-
1084 if( (
(pWInfo->wctrlFlags&0x0001)!=0Description
TRUEevaluated 57 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31220 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pWInfo->wctrlFlags&0x0001)!=0
(pWInfo->wctrlFlags&0x0001)!=0Description
TRUEevaluated 57 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31220 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
57-31220
1085 && pWInfo->nOBSat>0
pWInfo->nOBSat>0Description
TRUEevaluated 52 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
5-52
1086 && (
(pIdx->nKeyCol>nEq)Description
TRUEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
pIdx->nKeyCol>nEq)
(pIdx->nKeyCol>nEq)Description
TRUEevaluated 50 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
2-50
1087 ){-
1088 -
1089 ((void) (0))-
1090 ;-
1091 bSeekPastNull = 1;-
1092 nExtraReg = 1;-
1093 }
executed 50 times by 1 test: end of block
Executed by:
  • Self test (438)
50
1094-
1095-
1096-
1097-
1098 j = nEq;-
1099 if( pLoop->wsFlags & 0x00000020
pLoop->wsFlags & 0x00000020Description
TRUEevaluated 5997 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25280 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
5997-25280
1100 pRangeStart = pLoop->aLTerm[j++];-
1101 nExtraReg = ((
(nExtraReg)>(p...>u.btree.nBtm)Description
TRUEnever evaluated
FALSEevaluated 5997 times by 1 test
Evaluated by:
  • Self test (438)
nExtraReg)>(pLoop->u.btree.nBtm)
(nExtraReg)>(p...>u.btree.nBtm)Description
TRUEnever evaluated
FALSEevaluated 5997 times by 1 test
Evaluated by:
  • Self test (438)
?(nExtraReg):(pLoop->u.btree.nBtm));
0-5997
1102-
1103 -
1104 ((void) (0))-
1105 -
1106 ;-
1107 }
executed 5997 times by 1 test: end of block
Executed by:
  • Self test (438)
5997
1108 if( pLoop->wsFlags & 0x00000010
pLoop->wsFlags & 0x00000010Description
TRUEevaluated 5908 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25369 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
5908-25369
1109 pRangeEnd = pLoop->aLTerm[j++];-
1110 nExtraReg = ((
(nExtraReg)>(p...>u.btree.nTop)Description
TRUEnever evaluated
FALSEevaluated 5908 times by 1 test
Evaluated by:
  • Self test (438)
nExtraReg)>(pLoop->u.btree.nTop)
(nExtraReg)>(p...>u.btree.nTop)Description
TRUEnever evaluated
FALSEevaluated 5908 times by 1 test
Evaluated by:
  • Self test (438)
?(nExtraReg):(pLoop->u.btree.nTop));
0-5908
1111-
1112 if( (
(pRangeEnd->wt...gs & 0x100)!=0Description
TRUEevaluated 1726 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4182 times by 1 test
Evaluated by:
  • Self test (438)
pRangeEnd->wtFlags & 0x100)!=0
(pRangeEnd->wt...gs & 0x100)!=0Description
TRUEevaluated 1726 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4182 times by 1 test
Evaluated by:
  • Self test (438)
){
1726-4182
1113 -
1114 ((void) (0))-
1115 ;-
1116 -
1117 ((void) (0))-
1118 ;-
1119 pLevel->iLikeRepCntr = (u32)++pParse->nMem;-
1120 sqlite3VdbeAddOp2(v, 70, 1, (int)pLevel->iLikeRepCntr);-
1121 ;-
1122 pLevel->addrLikeRep = sqlite3VdbeCurrentAddr(v);-
1123-
1124-
1125 ;-
1126 ;-
1127 -
1128 ((void) (0))-
1129 ;-
1130 pLevel->iLikeRepCntr <<=1;-
1131 pLevel->iLikeRepCntr |= bRev ^ (pIdx->aSortOrder[nEq]==1);-
1132 }
executed 1726 times by 1 test: end of block
Executed by:
  • Self test (438)
1726
1133-
1134 if( pRangeStart==0
pRangeStart==0Description
TRUEevaluated 1812 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4096 times by 1 test
Evaluated by:
  • Self test (438)
){
1812-4096
1135 j = pIdx->aiColumn[nEq];-
1136 if( (j>=0
j>=0Description
TRUEevaluated 1658 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 154 times by 1 test
Evaluated by:
  • Self test (438)
&& pIdx->pTable->aCol[j].notNull==0
pIdx->pTable->...[j].notNull==0Description
TRUEevaluated 1649 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
) || j==(-2)
j==(-2)Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 157 times by 1 test
Evaluated by:
  • Self test (438)
){
6-1658
1137 bSeekPastNull = 1;-
1138 }
executed 1655 times by 1 test: end of block
Executed by:
  • Self test (438)
1655
1139 }
executed 1812 times by 1 test: end of block
Executed by:
  • Self test (438)
1812
1140 }
executed 5908 times by 1 test: end of block
Executed by:
  • Self test (438)
5908
1141 -
1142 ((void) (0))-
1143 ;-
1144-
1145-
1146-
1147-
1148-
1149 if( (nEq<pIdx->nKeyCol
nEq<pIdx->nKeyColDescription
TRUEevaluated 15722 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 15555 times by 1 test
Evaluated by:
  • Self test (438)
&& bRev==(pIdx->aSortOrder[nEq]==0)
bRev==(pIdx->a...Order[nEq]==0)Description
TRUEevaluated 1399 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 14323 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
)
1399-15722
1150 || (bRev
bRevDescription
TRUEevaluated 207 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 29671 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
&& pIdx->nKeyCol==nEq
pIdx->nKeyCol==nEqDescription
TRUEevaluated 171 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 36 times by 1 test
Evaluated by:
  • Self test (438)
)
36-29671
1151 ){-
1152 {WhereTerm * t=pRangeEnd; pRangeEnd=pRangeStart; pRangeStart=t;};-
1153 {u8 t=bSeekPastNull; bSeekPastNull=bStopAtNull; bStopAtNull=t;};-
1154 {u8 t=nBtm; nBtm=nTop; nTop=t;};-
1155 }
executed 1570 times by 1 test: end of block
Executed by:
  • Self test (438)
1570
1156-
1157-
1158-
1159-
1160-
1161 ;-
1162 regBase = codeAllEqualityTerms(pParse,pLevel,bRev,nExtraReg,&zStartAff);-
1163 -
1164 ((void) (0))-
1165 ;-
1166 if( zStartAff
zStartAffDescription
TRUEevaluated 31269 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
&& nTop
nTopDescription
TRUEevaluated 5909 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25360 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
8-31269
1167 zEndAff = sqlite3DbStrDup(db, &zStartAff[nEq]);-
1168 }
executed 5909 times by 1 test: end of block
Executed by:
  • Self test (438)
5909
1169 addrNxt = pLevel->addrNxt;-
1170-
1171 ;-
1172 ;-
1173 ;-
1174 ;-
1175 startEq = !pRangeStart
!pRangeStartDescription
TRUEevaluated 25285 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 5992 times by 1 test
Evaluated by:
  • Self test (438)
|| pRangeStart->eOperator & ((0x0002<<(55 -53))|(0x0002<<(57 -53)))
pRangeStart->e...02<<(57 -53)))Description
TRUEevaluated 4895 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1097 times by 1 test
Evaluated by:
  • Self test (438)
;
1097-25285
1176 endEq = !pRangeEnd
!pRangeEndDescription
TRUEevaluated 25364 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 5913 times by 1 test
Evaluated by:
  • Self test (438)
|| pRangeEnd->eOperator & ((0x0002<<(55 -53))|(0x0002<<(57 -53)))
pRangeEnd->eOp...02<<(57 -53)))Description
TRUEevaluated 1192 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4721 times by 1 test
Evaluated by:
  • Self test (438)
;
1192-25364
1177 start_constraints = pRangeStart
pRangeStartDescription
TRUEevaluated 5992 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25285 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
|| nEq>0
nEq>0Description
TRUEevaluated 18947 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 6338 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
;
5992-25285
1178-
1179-
1180 nConstraint = nEq;-
1181 if( pRangeStart
pRangeStartDescription
TRUEevaluated 5992 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25285 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
5992-25285
1182 Expr *pRight = pRangeStart->pExpr->pRight;-
1183 codeExprOrVector(pParse, pRight, regBase+nEq, nBtm);-
1184 whereLikeOptimizationStringFixup(v, pLevel, pRangeStart);-
1185 if( (
(pRangeStart->...ags & 0x00)==0Description
TRUEevaluated 5992 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
pRangeStart->wtFlags & 0x00)==0
(pRangeStart->...ags & 0x00)==0Description
TRUEevaluated 5992 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-5992
1186 && sqlite3ExprCanBeNull(pRight)
sqlite3ExprCanBeNull(pRight)Description
TRUEevaluated 1141 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4851 times by 1 test
Evaluated by:
  • Self test (438)
1141-4851
1187 ){-
1188 sqlite3VdbeAddOp2(v, 50, regBase+nEq, addrNxt);-
1189 ;-
1190 }
executed 1141 times by 1 test: end of block
Executed by:
  • Self test (438)
1141
1191 if( zStartAff
zStartAffDescription
TRUEevaluated 5988 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
){
4-5988
1192 updateRangeAffinityStr(pRight, nBtm, &zStartAff[nEq]);-
1193 }
executed 5988 times by 1 test: end of block
Executed by:
  • Self test (438)
5988
1194 nConstraint += nBtm;-
1195 ;-
1196 if( sqlite3ExprIsVector(pRight)==0
sqlite3ExprIsVector(pRight)==0Description
TRUEevaluated 4984 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1008 times by 1 test
Evaluated by:
  • Self test (438)
){
1008-4984
1197 disableTerm(pLevel, pRangeStart);-
1198 }
executed 4984 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
4984
1199 startEq = 1;-
1200 }
executed 1008 times by 1 test: end of block
Executed by:
  • Self test (438)
1008
1201 bSeekPastNull = 0;-
1202 }
executed 5992 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( bSeekPastNull
bSeekPastNullDescription
TRUEevaluated 1527 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 23758 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
1527-23758
1203 sqlite3VdbeAddOp2(v, 73, 0, regBase+nEq);-
1204 nConstraint++;-
1205 startEq = 0;-
1206 start_constraints = 1;-
1207 }
executed 1527 times by 1 test: end of block
Executed by:
  • Self test (438)
1527
1208 codeApplyAffinity(pParse, regBase, nConstraint - bSeekPastNull, zStartAff);-
1209 if( pLoop->nSkip>0
pLoop->nSkip>0Description
TRUEevaluated 44 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31233 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
&& nConstraint==pLoop->nSkip
nConstraint==pLoop->nSkipDescription
TRUEnever evaluated
FALSEevaluated 44 times by 1 test
Evaluated by:
  • Self test (438)
){
0-31233
1210-
1211-
1212-
1213 }
never executed: end of block
else{
0
1214 if( pLoop->wsFlags & 0x00040000
pLoop->wsFlags & 0x00040000Description
TRUEevaluated 223 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31054 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
223-31054
1215 sqlite3VdbeAddOp1(v, 119, iIdxCur);-
1216 }
executed 223 times by 1 test: end of block
Executed by:
  • Self test (438)
223
1217 op = aStartOp[(start_constraints<<2) + (startEq<<1) + bRev];-
1218 -
1219 ((void) (0))-
1220 ;-
1221 sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);-
1222 ;-
1223 ; ;-
1224 ; ;-
1225 ; ;-
1226 ; ;-
1227 ; ;-
1228 ; ;-
1229 }
executed 31277 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
31277
1230-
1231-
1232-
1233-
1234 nConstraint = nEq;-
1235 if( pRangeEnd
pRangeEndDescription
TRUEevaluated 5913 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25364 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
5913-25364
1236 Expr *pRight = pRangeEnd->pExpr->pRight;-
1237 codeExprOrVector(pParse, pRight, regBase+nEq, nTop);-
1238 whereLikeOptimizationStringFixup(v, pLevel, pRangeEnd);-
1239 if( (
(pRangeEnd->wtFlags & 0x00)==0Description
TRUEevaluated 5913 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
pRangeEnd->wtFlags & 0x00)==0
(pRangeEnd->wtFlags & 0x00)==0Description
TRUEevaluated 5913 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-5913
1240 && sqlite3ExprCanBeNull(pRight)
sqlite3ExprCanBeNull(pRight)Description
TRUEevaluated 1122 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4791 times by 1 test
Evaluated by:
  • Self test (438)
1122-4791
1241 ){-
1242 sqlite3VdbeAddOp2(v, 50, regBase+nEq, addrNxt);-
1243 ;-
1244 }
executed 1122 times by 1 test: end of block
Executed by:
  • Self test (438)
1122
1245 if( zEndAff
zEndAffDescription
TRUEevaluated 5907 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
){
6-5907
1246 updateRangeAffinityStr(pRight, nTop, zEndAff);-
1247 codeApplyAffinity(pParse, regBase+nEq, nTop, zEndAff);-
1248 }
executed 5907 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
5907
1249 -
1250 ((void) (0))-
1251 ;-
1252 }
executed 6 times by 1 test: end of block
Executed by:
  • Self test (438)
6
1253 nConstraint += nTop;-
1254 ;-
1255-
1256 if( sqlite3ExprIsVector(pRight)==0
sqlite3ExprIsVector(pRight)==0Description
TRUEevaluated 4913 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1000 times by 1 test
Evaluated by:
  • Self test (438)
){
1000-4913
1257 disableTerm(pLevel, pRangeEnd);-
1258 }
executed 4913 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
4913
1259 endEq = 1;-
1260 }
executed 1000 times by 1 test: end of block
Executed by:
  • Self test (438)
1000
1261 }else if( bStopAtNull
bStopAtNullDescription
TRUEevaluated 163 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25201 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
163-25201
1262 sqlite3VdbeAddOp2(v, 73, 0, regBase+nEq);-
1263 endEq = 0;-
1264 nConstraint++;-
1265 }
executed 163 times by 1 test: end of block
Executed by:
  • Self test (438)
163
1266 sqlite3DbFree(db, zStartAff);-
1267 sqlite3DbFree(db, zEndAff);-
1268-
1269-
1270 pLevel->p2 = sqlite3VdbeCurrentAddr(v);-
1271-
1272-
1273 if( nConstraint
nConstraintDescription
TRUEevaluated 25051 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 6226 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
6226-25051
1274 op = aEndOp[bRev*2 + endEq];-
1275 sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint);-
1276 ; ;-
1277 ; ;-
1278 ; ;-
1279 ; ;-
1280 }
executed 25051 times by 1 test: end of block
Executed by:
  • Self test (438)
25051
1281-
1282 if( pLoop->wsFlags & 0x00040000
pLoop->wsFlags & 0x00040000Description
TRUEevaluated 223 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 31054 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
223-31054
1283 sqlite3VdbeAddOp2(v, 119, iIdxCur, 1);-
1284 }
executed 223 times by 1 test: end of block
Executed by:
  • Self test (438)
223
1285-
1286-
1287 if( omitTable
omitTableDescription
TRUEevaluated 9827 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21450 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
9827-21450
1288-
1289 }
executed 9827 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( (((
(((pIdx->pTabl... & 0x0020)==0)Description
TRUEevaluated 21405 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 45 times by 1 test
Evaluated by:
  • Self test (438)
pIdx->pTable)->tabFlags & 0x0020)==0)
(((pIdx->pTabl... & 0x0020)==0)Description
TRUEevaluated 21405 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 45 times by 1 test
Evaluated by:
  • Self test (438)
){
45-21405
1290 if( (
(pWInfo->wctrlFlags & 0x0400)Description
TRUEevaluated 247 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21158 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pWInfo->wctrlFlags & 0x0400)
(pWInfo->wctrlFlags & 0x0400)Description
TRUEevaluated 247 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21158 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
|| (
247-21158
1291 (
(pWInfo->wctrlFlags & 0x1000)Description
TRUEevaluated 131 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21027 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pWInfo->wctrlFlags & 0x1000)
(pWInfo->wctrlFlags & 0x1000)Description
TRUEevaluated 131 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21027 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
131-21027
1292 && (
(pWInfo->eOnePass==1)Description
TRUEevaluated 86 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 45 times by 1 test
Evaluated by:
  • Self test (438)
pWInfo->eOnePass==1)
(pWInfo->eOnePass==1)Description
TRUEevaluated 86 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 45 times by 1 test
Evaluated by:
  • Self test (438)
45-86
1293 )){-
1294 iRowidReg = ++pParse->nMem;-
1295 sqlite3VdbeAddOp2(v, 136, iIdxCur, iRowidReg);-
1296 sqlite3VdbeAddOp3(v, 31, iCur, 0, iRowidReg);-
1297 ;-
1298 }
executed 333 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
333
1299 codeDeferredSeek(pWInfo, pIdx, iCur, iIdxCur);-
1300 }
executed 21072 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
21072
1301 }else if( iCur!=iIdxCur
iCur!=iIdxCurDescription
TRUEevaluated 38 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 7 times by 1 test
Evaluated by:
  • Self test (438)
){
7-38
1302 Index *pPk = sqlite3PrimaryKeyIndex(pIdx->pTable);-
1303 iRowidReg = sqlite3GetTempRange(pParse, pPk->nKeyCol);-
1304 for(j=0; j<pPk->nKeyCol
j<pPk->nKeyColDescription
TRUEevaluated 42 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 38 times by 1 test
Evaluated by:
  • Self test (438)
; j++){
38-42
1305 k = sqlite3ColumnOfIndex(pIdx, pPk->aiColumn[j]);-
1306 sqlite3VdbeAddOp3(v, 90, iIdxCur, k, iRowidReg+j);-
1307 }
executed 42 times by 1 test: end of block
Executed by:
  • Self test (438)
42
1308 sqlite3VdbeAddOp4Int(v, 28, iCur, addrCont,-
1309 iRowidReg, pPk->nKeyCol); ;-
1310 }
executed 38 times by 1 test: end of block
Executed by:
  • Self test (438)
38
1311 if( pLevel->iLeftJoin==0
pLevel->iLeftJoin==0Description
TRUEevaluated 31029 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 248 times by 1 test
Evaluated by:
  • Self test (438)
){
248-31029
1312 whereIndexExprTrans(pIdx, iCur, iIdxCur, pWInfo);-
1313 }
executed 31029 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
31029
1314-
1315-
1316 if( pLoop->wsFlags & 0x00001000
pLoop->wsFlags & 0x00001000Description
TRUEevaluated 878 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 30399 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
878-30399
1317 pLevel->op = 171;-
1318 }
executed 878 times by 1 test: end of block
Executed by:
  • Self test (438)
else if( bRev
bRevDescription
TRUEevaluated 1498 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 28901 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
){
878-28901
1319 pLevel->op = 4;-
1320 }
executed 1498 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
1498
1321 pLevel->op = 5;-
1322 }
executed 28901 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
28901
1323 pLevel->p1 = iIdxCur;-
1324 pLevel->p3 = (
(pLoop->wsFlags&0x00010000)!=0Description
TRUEevaluated 11785 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 19492 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
pLoop->wsFlags&0x00010000)!=0
(pLoop->wsFlags&0x00010000)!=0Description
TRUEevaluated 11785 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 19492 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
? 1:0;
11785-19492
1325 if( (
(pLoop->wsFlag...0x0000000f)==0Description
TRUEevaluated 4766 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 26511 times by 1 test
Evaluated by:
  • Self test (438)
pLoop->wsFlags & 0x0000000f)==0
(pLoop->wsFlag...0x0000000f)==0Description
TRUEevaluated 4766 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 26511 times by 1 test
Evaluated by:
  • Self test (438)
){
4766-26511
1326 pLevel->p5 = 1;-
1327 }
executed 4766 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
else{
4766
1328 -
1329 ((void) (0))-
1330 ;-
1331 }
executed 26511 times by 1 test: end of block
Executed by:
  • Self test (438)
26511
1332 if( omitTable
omitTableDescription
TRUEevaluated 9827 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21450 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
) pIdx = 0;
executed 9827 times by 1 test: pIdx = 0;
Executed by:
  • Self test (438)
9827-21450
1333 }
executed 31277 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
else
31277
1334-
1335-
1336 if( pLoop->wsFlags & 0x00002000
pLoop->wsFlags & 0x00002000Description
TRUEevaluated 2366 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 165074 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
){
2366-165074
1337 WhereClause *pOrWc;-
1338 SrcList *pOrTab;-
1339 Index *pCov = 0;-
1340 int iCovCur = pParse->nTab++;-
1341-
1342 int regReturn = ++pParse->nMem;-
1343 int regRowset = 0;-
1344 int regRowid = 0;-
1345 int iLoopBody = sqlite3VdbeMakeLabel(v);-
1346 int iRetInit;-
1347 int untestedTerms = 0;-
1348 int ii;-
1349 u16 wctrlFlags;-
1350 Expr *pAndExpr = 0;-
1351 Table *pTab = pTabItem->pTab;-
1352-
1353 pTerm = pLoop->aLTerm[0];-
1354 -
1355 ((void) (0))-
1356 ;-
1357 -
1358 ((void) (0))-
1359 ;-
1360 -
1361 ((void) (0))-
1362 ;-
1363 pOrWc = &pTerm->u.pOrInfo->wc;-
1364 pLevel->op = 66;-
1365 pLevel->p1 = regReturn;-
1366-
1367-
1368-
1369-
1370-
1371 if( pWInfo->nLevel>1
pWInfo->nLevel>1Description
TRUEevaluated 120 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2246 times by 1 test
Evaluated by:
  • Self test (438)
){
120-2246
1372 int nNotReady;-
1373 struct SrcList_item *origSrc;-
1374 nNotReady = pWInfo->nLevel - iLevel - 1;-
1375 pOrTab = sqlite3DbMallocRaw(db,sizeof(*pOrTab)+ nNotReady*sizeof(pOrTab->a[0]))-
1376 ;-
1377 if( pOrTab==0
pOrTab==0Description
TRUEnever evaluated
FALSEevaluated 120 times by 1 test
Evaluated by:
  • Self test (438)
) return
never executed: return notReady;
notReady;
never executed: return notReady;
0-120
1378 pOrTab->nAlloc = (u8)(nNotReady + 1);-
1379 pOrTab->nSrc = pOrTab->nAlloc;-
1380 memcpy(pOrTab->a, pTabItem, sizeof(*pTabItem));-
1381 origSrc = pWInfo->pTabList->a;-
1382 for(k=1; k<=nNotReady
k<=nNotReadyDescription
TRUEevaluated 83 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 120 times by 1 test
Evaluated by:
  • Self test (438)
; k++){
83-120
1383 memcpy(&pOrTab->a[k], &origSrc[pLevel[k].iFrom], sizeof(pOrTab->a[k]));-
1384 }
executed 83 times by 1 test: end of block
Executed by:
  • Self test (438)
83
1385 }
executed 120 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
120
1386 pOrTab = pWInfo->pTabList;-
1387 }
executed 2246 times by 1 test: end of block
Executed by:
  • Self test (438)
2246
1388 if( (
(pWInfo->wctrl...s & 0x0010)==0Description
TRUEevaluated 2352 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
pWInfo->wctrlFlags & 0x0010)==0
(pWInfo->wctrl...s & 0x0010)==0Description
TRUEevaluated 2352 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
){
14-2352
1389 if( (((
(((pTab)->tabF... & 0x0020)==0)Description
TRUEevaluated 2340 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
pTab)->tabFlags & 0x0020)==0)
(((pTab)->tabF... & 0x0020)==0)Description
TRUEevaluated 2340 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
){
12-2340
1390 regRowset = ++pParse->nMem;-
1391 sqlite3VdbeAddOp2(v, 73, 0, regRowset);-
1392 }
executed 2340 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
2340
1393 Index *pPk = sqlite3PrimaryKeyIndex(pTab);-
1394 regRowset = pParse->nTab++;-
1395 sqlite3VdbeAddOp2(v, 113, regRowset, pPk->nKeyCol);-
1396 sqlite3VdbeSetP4KeyInfo(pParse, pPk);-
1397 }
executed 12 times by 1 test: end of block
Executed by:
  • Self test (438)
12
1398 regRowid = ++pParse->nMem;-
1399 }
executed 2352 times by 1 test: end of block
Executed by:
  • Self test (438)
2352
1400 iRetInit = sqlite3VdbeAddOp2(v, 70, 0, regReturn);-
1401 if( pWC->nTerm>1
pWC->nTerm>1Description
TRUEevaluated 66 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2300 times by 1 test
Evaluated by:
  • Self test (438)
){
66-2300
1402 int iTerm;-
1403 for(iTerm=0; iTerm<pWC->nTerm
iTerm<pWC->nTermDescription
TRUEevaluated 166 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 66 times by 1 test
Evaluated by:
  • Self test (438)
; iTerm++){
66-166
1404 Expr *pExpr = pWC->a[iTerm].pExpr;-
1405 if( &pWC->a[iTerm] == pTerm
&pWC->a[iTerm] == pTermDescription
TRUEevaluated 66 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 100 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 66 times by 1 test: continue;
Executed by:
  • Self test (438)
66-100
1406 ;-
1407 ;-
1408 if( (
(pWC->a[iTerm]...0x02|0x04))!=0Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 40 times by 1 test
Evaluated by:
  • Self test (438)
pWC->a[iTerm].wtFlags & (0x02|0x04))!=0
(pWC->a[iTerm]...0x02|0x04))!=0Description
TRUEevaluated 60 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 40 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 60 times by 1 test: continue;
Executed by:
  • Self test (438)
40-60
1409 if( (
(pWC->a[iTerm]...r & 0x1fff)==0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 32 times by 1 test
Evaluated by:
  • Self test (438)
pWC->a[iTerm].eOperator & 0x1fff)==0
(pWC->a[iTerm]...r & 0x1fff)==0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 32 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 8 times by 1 test: continue;
Executed by:
  • Self test (438)
8-32
1410 ;-
1411 pExpr = sqlite3ExprDup(db, pExpr, 0);-
1412 pAndExpr = sqlite3ExprAnd(db, pAndExpr, pExpr);-
1413 }
executed 32 times by 1 test: end of block
Executed by:
  • Self test (438)
32
1414 if( pAndExpr
pAndExprDescription
TRUEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 40 times by 1 test
Evaluated by:
  • Self test (438)
){
26-40
1415 pAndExpr = sqlite3PExpr(pParse, 44|0x100, 0, pAndExpr);-
1416 }
executed 26 times by 1 test: end of block
Executed by:
  • Self test (438)
26
1417 }
executed 66 times by 1 test: end of block
Executed by:
  • Self test (438)
66
1418-
1419-
1420-
1421-
1422-
1423 wctrlFlags = 0x0020 | (pWInfo->wctrlFlags & 0x0400);-
1424 sqlite3VdbeExplain (pParse, 1, "MULTI-INDEX OR");-
1425 for(ii=0; ii<pOrWc->nTerm
ii<pOrWc->nTermDescription
TRUEevaluated 17848 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2366 times by 1 test
Evaluated by:
  • Self test (438)
; ii++){
2366-17848
1426 WhereTerm *pOrTerm = &pOrWc->a[ii];-
1427 if( pOrTerm->leftCursor==iCur
pOrTerm->leftCursor==iCurDescription
TRUEevaluated 9714 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 8134 times by 1 test
Evaluated by:
  • Self test (438)
|| (
(pOrTerm->eOpe...r & 0x0400)!=0Description
TRUEevaluated 8073 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 61 times by 1 test
Evaluated by:
  • Self test (438)
pOrTerm->eOperator & 0x0400)!=0
(pOrTerm->eOpe...r & 0x0400)!=0Description
TRUEevaluated 8073 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 61 times by 1 test
Evaluated by:
  • Self test (438)
){
61-9714
1428 WhereInfo *pSubWInfo;-
1429 Expr *pOrExpr = pOrTerm->pExpr;-
1430 int jmp1 = 0;-
1431 -
1432 ((void) (0))-
1433-
1434 -
1435 ;-
1436 if( pAndExpr
pAndExprDescription
TRUEevaluated 1608 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 16179 times by 1 test
Evaluated by:
  • Self test (438)
){
1608-16179
1437 pAndExpr->pLeft = pOrExpr;-
1438 pOrExpr = pAndExpr;-
1439 }
executed 1608 times by 1 test: end of block
Executed by:
  • Self test (438)
1608
1440-
1441 ;-
1442 pSubWInfo = sqlite3WhereBegin(pParse, pOrTab, pOrExpr, 0, 0,-
1443 wctrlFlags, iCovCur);-
1444 -
1445 ((void) (0))-
1446 ;-
1447 if( pSubWInfo
pSubWInfoDescription
TRUEevaluated 17787 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-17787
1448 WhereLoop *pSubLoop;-
1449 int addrExplain = sqlite3WhereExplainOneScan(-
1450 pParse, pOrTab, &pSubWInfo->a[0], 0-
1451 );-
1452 ((void)addrExplain);-
1453-
1454-
1455-
1456-
1457-
1458-
1459 if( (
(pWInfo->wctrl...s & 0x0010)==0Description
TRUEevaluated 17751 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 36 times by 1 test
Evaluated by:
  • Self test (438)
pWInfo->wctrlFlags & 0x0010)==0
(pWInfo->wctrl...s & 0x0010)==0Description
TRUEevaluated 17751 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 36 times by 1 test
Evaluated by:
  • Self test (438)
){
36-17751
1460 int iSet = ((
(ii==pOrWc->nTerm-1)Description
TRUEevaluated 2335 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 15416 times by 1 test
Evaluated by:
  • Self test (438)
ii==pOrWc->nTerm-1)
(ii==pOrWc->nTerm-1)Description
TRUEevaluated 2335 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 15416 times by 1 test
Evaluated by:
  • Self test (438)
?-1:ii);
2335-15416
1461 if( (((
(((pTab)->tabF... & 0x0020)==0)Description
TRUEevaluated 17726 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25 times by 1 test
Evaluated by:
  • Self test (438)
pTab)->tabFlags & 0x0020)==0)
(((pTab)->tabF... & 0x0020)==0)Description
TRUEevaluated 17726 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25 times by 1 test
Evaluated by:
  • Self test (438)
){
25-17726
1462 sqlite3ExprCodeGetColumnOfTable(v, pTab, iCur, -1, regRowid);-
1463 jmp1 = sqlite3VdbeAddOp4Int(v, 42, regRowset, 0,-
1464 regRowid, iSet);-
1465 ;-
1466 }
executed 17726 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
17726
1467 Index *pPk = sqlite3PrimaryKeyIndex(pTab);-
1468 int nPk = pPk->nKeyCol;-
1469 int iPk;-
1470 int r;-
1471-
1472-
1473 r = sqlite3GetTempRange(pParse, nPk);-
1474 for(iPk=0; iPk<nPk
iPk<nPkDescription
TRUEevaluated 33 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25 times by 1 test
Evaluated by:
  • Self test (438)
; iPk++){
25-33
1475 int iCol = pPk->aiColumn[iPk];-
1476 sqlite3ExprCodeGetColumnOfTable(v, pTab, iCur, iCol, r+iPk);-
1477 }
executed 33 times by 1 test: end of block
Executed by:
  • Self test (438)
33
1478 if( iSet
iSetDescription
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
){
12-13
1479 jmp1 = sqlite3VdbeAddOp4Int(v, 29, regRowset, 0, r, nPk);-
1480 ;-
1481 }
executed 13 times by 1 test: end of block
Executed by:
  • Self test (438)
13
1482 if( iSet>=0
iSet>=0Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
){
12-13
1483 sqlite3VdbeAddOp3(v, 102, r, nPk, regRowid);-
1484 sqlite3VdbeAddOp4Int(v, 133, regRowset, regRowid,-
1485 r, nPk);-
1486 if( iSet
iSetDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3VdbeChangeP5(v, 0x10);
executed 1 time by 1 test: sqlite3VdbeChangeP5(v, 0x10);
Executed by:
  • Self test (438)
1-12
1487 }
executed 13 times by 1 test: end of block
Executed by:
  • Self test (438)
13
1488-
1489-
1490 sqlite3ReleaseTempRange(pParse, r, nPk);-
1491 }
executed 25 times by 1 test: end of block
Executed by:
  • Self test (438)
25
1492 }-
1493-
1494-
1495 sqlite3VdbeAddOp2(v, 12, regReturn, iLoopBody);-
1496-
1497-
1498-
1499 if( jmp1
jmp1Description
TRUEevaluated 17739 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 48 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3VdbeJumpHere(v, jmp1);
executed 17739 times by 1 test: sqlite3VdbeJumpHere(v, jmp1);
Executed by:
  • Self test (438)
48-17739
1500-
1501-
1502-
1503-
1504-
1505-
1506 if( pSubWInfo->untestedTerms
pSubWInfo->untestedTermsDescription
TRUEevaluated 73 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 17714 times by 1 test
Evaluated by:
  • Self test (438)
) untestedTerms = 1;
executed 73 times by 1 test: untestedTerms = 1;
Executed by:
  • Self test (438)
73-17714
1507 pSubLoop = pSubWInfo->a[0].pWLoop;-
1508 -
1509 ((void) (0))-
1510 ;-
1511 if( (
(pSubLoop->wsF...0x00000200)!=0Description
TRUEevaluated 13320 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4467 times by 1 test
Evaluated by:
  • Self test (438)
pSubLoop->wsFlags & 0x00000200)!=0
(pSubLoop->wsF...0x00000200)!=0Description
TRUEevaluated 13320 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4467 times by 1 test
Evaluated by:
  • Self test (438)
4467-13320
1512 && (ii==0
ii==0Description
TRUEevaluated 1805 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11515 times by 1 test
Evaluated by:
  • Self test (438)
|| pSubLoop->u.btree.pIndex==pCov
pSubLoop->u.btree.pIndex==pCovDescription
TRUEevaluated 1007 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 10508 times by 1 test
Evaluated by:
  • Self test (438)
)
1007-11515
1513 && ((((
(((pTab)->tabF... & 0x0020)==0)Description
TRUEevaluated 2797 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 15 times by 1 test
Evaluated by:
  • Self test (438)
pTab)->tabFlags & 0x0020)==0)
(((pTab)->tabF... & 0x0020)==0)Description
TRUEevaluated 2797 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 15 times by 1 test
Evaluated by:
  • Self test (438)
|| !((pSubLoop->u.btree.pIndex)->idxType==2)
!((pSubLoop->u...)->idxType==2)Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
)
4-2797
1514 ){-
1515 -
1516 ((void) (0))-
1517 ;-
1518 pCov = pSubLoop->u.btree.pIndex;-
1519 }
executed 2808 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
2808
1520 pCov = 0;-
1521 }
executed 14979 times by 1 test: end of block
Executed by:
  • Self test (438)
14979
1522-
1523-
1524 sqlite3WhereEnd(pSubWInfo);-
1525 }
executed 17787 times by 1 test: end of block
Executed by:
  • Self test (438)
17787
1526 }
executed 17787 times by 1 test: end of block
Executed by:
  • Self test (438)
17787
1527 }
executed 17848 times by 1 test: end of block
Executed by:
  • Self test (438)
17848
1528 sqlite3VdbeExplainPop(pParse);-
1529 pLevel->u.pCovidx = pCov;-
1530 if( pCov
pCovDescription
TRUEevaluated 202 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2164 times by 1 test
Evaluated by:
  • Self test (438)
) pLevel->iIdxCur = iCovCur;
executed 202 times by 1 test: pLevel->iIdxCur = iCovCur;
Executed by:
  • Self test (438)
202-2164
1531 if( pAndExpr
pAndExprDescription
TRUEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2340 times by 1 test
Evaluated by:
  • Self test (438)
){
26-2340
1532 pAndExpr->pLeft = 0;-
1533 sqlite3ExprDelete(db, pAndExpr);-
1534 }
executed 26 times by 1 test: end of block
Executed by:
  • Self test (438)
26
1535 sqlite3VdbeChangeP1(v, iRetInit, sqlite3VdbeCurrentAddr(v));-
1536 sqlite3VdbeGoto(v, pLevel->addrBrk);-
1537 sqlite3VdbeResolveLabel(v, iLoopBody);-
1538-
1539 if( pWInfo->nLevel>1
pWInfo->nLevel>1Description
TRUEevaluated 120 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2246 times by 1 test
Evaluated by:
  • Self test (438)
) sqlite3DbFree(db,pOrTab);
executed 120 times by 1 test: sqlite3DbFree(db,pOrTab);
Executed by:
  • Self test (438)
120-2246
1540 if( !untestedTerms
!untestedTermsDescription
TRUEevaluated 2327 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 39 times by 1 test
Evaluated by:
  • Self test (438)
) disableTerm(pLevel, pTerm);
executed 2327 times by 1 test: disableTerm(pLevel, pTerm);
Executed by:
  • Self test (438)
39-2327
1541 }
executed 2366 times by 1 test: end of block
Executed by:
  • Self test (438)
else
2366
1542-
1543-
1544 {-
1545-
1546-
1547-
1548 static const u8 aStep[] = { 5, 4 };-
1549 static const u8 aStart[] = { 36, 32 };-
1550 -
1551 ((void) (0))-
1552 ;-
1553 if( pTabItem->fg.isRecursive
pTabItem->fg.isRecursiveDescription
TRUEevaluated 272 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 164802 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
){
272-164802
1554-
1555-
1556 pLevel->op = 171;-
1557 }
executed 272 times by 1 test: end of block
Executed by:
  • Self test (438)
else{
272
1558 ;-
1559 pLevel->op = aStep[bRev];-
1560 pLevel->p1 = iCur;-
1561 pLevel->p2 = 1 + sqlite3VdbeAddOp2(v, aStart[bRev], iCur, addrHalt);-
1562 ;-
1563 ;-
1564 pLevel->p5 = 1;-
1565 }
executed 164802 times by 435 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
164802
1566 }-
1567 iLoop = (pIdx
pIdxDescription
TRUEevaluated 21450 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 257046 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
? 1 : 2);
21450-257046
1568 do{-
1569 int iNext = 0;-
1570 for(pTerm=pWC->a, j=pWC->nTerm; j>0
j>0Description
TRUEevaluated 348383 times by 368 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
FALSEevaluated 285808 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
; j--, pTerm++){
285808-348383
1571 Expr *pE;-
1572 int skipLikeAddr = 0;-
1573 ;-
1574 ;-
1575 if( pTerm->wtFlags & (0x02|0x04)
pTerm->wtFlags & (0x02|0x04)Description
TRUEevaluated 172476 times by 30 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
FALSEevaluated 175907 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
) continue;
executed 172476 times by 30 tests: continue;
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • ...
172476-175907
1576 if( (
(pTerm->prereq...->notReady)!=0Description
TRUEevaluated 53673 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 122234 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
pTerm->prereqAll & pLevel->notReady)!=0
(pTerm->prereq...->notReady)!=0Description
TRUEevaluated 53673 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 122234 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
){
53673-122234
1577 -
1578 ;-
1579 pWInfo->untestedTerms = 1;-
1580 continue;
executed 53673 times by 1 test: continue;
Executed by:
  • Self test (438)
53673
1581 }-
1582 pE = pTerm->pExpr;-
1583 -
1584 ((void) (0))-
1585 ;-
1586 if( (
(pTabItem->fg.jointype&0x0008)Description
TRUEevaluated 190 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 122044 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
pTabItem->fg.jointype&0x0008)
(pTabItem->fg.jointype&0x0008)Description
TRUEevaluated 190 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 122044 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
&& !(((pE)->flags&(0x000001))!=0)
!(((pE)->flags&(0x000001))!=0)Description
TRUEevaluated 47 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 143 times by 1 test
Evaluated by:
  • Self test (438)
){
47-122044
1587 continue;
executed 47 times by 1 test: continue;
Executed by:
  • Self test (438)
47
1588 }-
1589-
1590 if( iLoop==1
iLoop==1Description
TRUEevaluated 13077 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 109110 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
&& !sqlite3ExprCoveredByIndex(pE, pLevel->iTabCur, pIdx)
!sqlite3ExprCo...iTabCur, pIdx)Description
TRUEevaluated 10038 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 3039 times by 1 test
Evaluated by:
  • Self test (438)
){
3039-109110
1591 iNext = 2;-
1592 continue;
executed 10038 times by 1 test: continue;
Executed by:
  • Self test (438)
10038
1593 }-
1594 if( iLoop<3
iLoop<3Description
TRUEevaluated 112072 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
FALSEevaluated 77 times by 1 test
Evaluated by:
  • Self test (438)
&& (
(pTerm->wtFlags & 0x1000)Description
TRUEevaluated 77 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 111995 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
pTerm->wtFlags & 0x1000)
(pTerm->wtFlags & 0x1000)Description
TRUEevaluated 77 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 111995 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
){
77-112072
1595 if( iNext==0
iNext==0Description
TRUEevaluated 69 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
) iNext = 3;
executed 69 times by 1 test: iNext = 3;
Executed by:
  • Self test (438)
8-69
1596 continue;
executed 77 times by 1 test: continue;
Executed by:
  • Self test (438)
77
1597 }-
1598-
1599 if( (
(pTerm->wtFlags & 0x200)!=0Description
TRUEevaluated 225 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 111847 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
pTerm->wtFlags & 0x200)!=0
(pTerm->wtFlags & 0x200)!=0Description
TRUEevaluated 225 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 111847 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
){
225-111847
1600 u32 x = pLevel->iLikeRepCntr;-
1601 if( x>0
x>0Description
TRUEevaluated 225 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
){
0-225
1602 skipLikeAddr = sqlite3VdbeAddOp1(v, (x&1)?20:18,(int)(x>>1));-
1603 }
executed 225 times by 1 test: end of block
Executed by:
  • Self test (438)
225
1604 ;-
1605-
1606 }
executed 225 times by 1 test: end of block
Executed by:
  • Self test (438)
225
1607-
1608-
1609-
1610-
1611-
1612-
1613 sqlite3ExprIfFalse(pParse, pE, addrCont, 0x10);-
1614 if( skipLikeAddr
skipLikeAddrDescription
TRUEevaluated 225 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 111847 times by 366 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
) sqlite3VdbeJumpHere(v, skipLikeAddr);
executed 225 times by 1 test: sqlite3VdbeJumpHere(v, skipLikeAddr);
Executed by:
  • Self test (438)
225-111847
1615 pTerm->wtFlags |= 0x04;-
1616 }
executed 112072 times by 366 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
112072
1617 iLoop = iNext;-
1618 }
executed 285808 times by 435 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
while( iLoop>0
iLoop>0Description
TRUEevaluated 7312 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 278496 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
);
7312-285808
1619 for(pTerm=pWC->a, j=pWC->nTerm; j>0
j>0Description
TRUEevaluated 329064 times by 368 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
FALSEevaluated 278496 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
; j--, pTerm++){
278496-329064
1620 Expr *pE, sEAlt;-
1621 WhereTerm *pAlt;-
1622 if( pTerm->wtFlags & (0x02|0x04)
pTerm->wtFlags & (0x02|0x04)Description
TRUEevaluated 275381 times by 368 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
FALSEevaluated 53683 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 275381 times by 368 tests: continue;
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (120)
  • Self test (121)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • ...
53683-275381
1623 if( (
(pTerm->eOpera...02|0x0080))==0Description
TRUEevaluated 2681 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 51002 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->eOperator & (0x0002|0x0080))==0
(pTerm->eOpera...02|0x0080))==0Description
TRUEevaluated 2681 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 51002 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 2681 times by 1 test: continue;
Executed by:
  • Self test (438)
2681-51002
1624 if( (
(pTerm->eOperator & 0x0800)==0Description
TRUEevaluated 46966 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4036 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->eOperator & 0x0800)==0
(pTerm->eOperator & 0x0800)==0Description
TRUEevaluated 46966 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4036 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 46966 times by 1 test: continue;
Executed by:
  • Self test (438)
4036-46966
1625 if( pTerm->leftCursor!=iCur
pTerm->leftCursor!=iCurDescription
TRUEevaluated 2411 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1625 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 2411 times by 1 test: continue;
Executed by:
  • Self test (438)
1625-2411
1626 if( pLevel->iLeftJoin
pLevel->iLeftJoinDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1624 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 1 time by 1 test: continue;
Executed by:
  • Self test (438)
1-1624
1627 pE = pTerm->pExpr;-
1628 -
1629 ((void) (0))-
1630 ;-
1631 -
1632 ((void) (0))-
1633 ;-
1634 pAlt = sqlite3WhereFindTerm(pWC, iCur, pTerm->u.leftColumn, notReady,-
1635 0x0002|0x0001|0x0080, 0);-
1636 if( pAlt==0
pAlt==0Description
TRUEevaluated 1599 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 1599 times by 1 test: continue;
Executed by:
  • Self test (438)
25-1599
1637 if( pAlt->wtFlags & (0x04)
pAlt->wtFlags & (0x04)Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 21 times by 1 test: continue;
Executed by:
  • Self test (438)
4-21
1638 if( (
(pAlt->eOperator & 0x0001)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
pAlt->eOperator & 0x0001)
(pAlt->eOperator & 0x0001)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-4
1639 && (
(pAlt->pExpr->...gs & 0x000800)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
pAlt->pExpr->flags & 0x000800)
(pAlt->pExpr->...gs & 0x000800)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
2
1640 && (
(pAlt->pExpr->...List->nExpr>1)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
pAlt->pExpr->x.pSelect->pEList->nExpr>1)
(pAlt->pExpr->...List->nExpr>1)Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-2
1641 ){-
1642 continue;
executed 2 times by 1 test: continue;
Executed by:
  • Self test (438)
2
1643 }-
1644 ;-
1645 ;-
1646 ;-
1647 ;-
1648 sEAlt = *pAlt->pExpr;-
1649 sEAlt.pLeft = pE->pLeft;-
1650 sqlite3ExprIfFalse(pParse, &sEAlt, addrCont, 0x10);-
1651 }
executed 2 times by 1 test: end of block
Executed by:
  • Self test (438)
2
1652-
1653-
1654-
1655-
1656 if( pLevel->iLeftJoin
pLevel->iLeftJoinDescription
TRUEevaluated 425 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 278071 times by 435 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
){
425-278071
1657 pLevel->addrFirst = sqlite3VdbeCurrentAddr(v);-
1658 sqlite3VdbeAddOp2(v, 70, 1, pLevel->iLeftJoin);-
1659 ;-
1660 for(pTerm=pWC->a, j=0; j<pWC->nTerm
j<pWC->nTermDescription
TRUEevaluated 1514 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 425 times by 1 test
Evaluated by:
  • Self test (438)
; j++, pTerm++){
425-1514
1661 ;-
1662 ;-
1663 if( pTerm->wtFlags & (0x02|0x04)
pTerm->wtFlags & (0x02|0x04)Description
TRUEevaluated 1347 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 167 times by 1 test
Evaluated by:
  • Self test (438)
) continue;
executed 1347 times by 1 test: continue;
Executed by:
  • Self test (438)
167-1347
1664 if( (
(pTerm->prereq...->notReady)!=0Description
TRUEevaluated 122 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 45 times by 1 test
Evaluated by:
  • Self test (438)
pTerm->prereqAll & pLevel->notReady)!=0
(pTerm->prereq...->notReady)!=0Description
TRUEevaluated 122 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 45 times by 1 test
Evaluated by:
  • Self test (438)
){
45-122
1665 -
1666 ((void) (0))-
1667 ;-
1668 continue;
executed 122 times by 1 test: continue;
Executed by:
  • Self test (438)
122
1669 }-
1670 -
1671 ((void) (0))-
1672 ;-
1673 sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, 0x10);-
1674 pTerm->wtFlags |= 0x04;-
1675 }
executed 45 times by 1 test: end of block
Executed by:
  • Self test (438)
45
1676 }
executed 425 times by 1 test: end of block
Executed by:
  • Self test (438)
425
1677-
1678 return
executed 278496 times by 435 tests: return pLevel->notReady;
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
pLevel->notReady;
executed 278496 times by 435 tests: return pLevel->notReady;
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (106)
  • Self test (107)
  • Self test (108)
  • Self test (109)
  • Self test (11)
  • Self test (110)
  • Self test (111)
  • Self test (112)
  • Self test (113)
  • Self test (114)
  • Self test (115)
  • Self test (116)
  • Self test (117)
  • Self test (118)
  • Self test (119)
  • Self test (12)
  • Self test (120)
  • Self test (121)
  • ...
278496
1679}-
Switch to Source codePreprocessed file

Generated by Squish Coco 4.2.2