OpenCoverage

build.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/sqlite/src/src/build.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2** 2001 September 15-
3**-
4** The author disclaims copyright to this source code. In place of-
5** a legal notice, here is a blessing:-
6**-
7** May you do good and not evil.-
8** May you find forgiveness for yourself and forgive others.-
9** May you share freely, never taking more than you give.-
10**-
11*************************************************************************-
12** This file contains C code routines that are called by the SQLite parser-
13** when syntax rules are reduced. The routines in this file handle the-
14** following kinds of SQL syntax:-
15**-
16** CREATE TABLE-
17** DROP TABLE-
18** CREATE INDEX-
19** DROP INDEX-
20** creating ID lists-
21** BEGIN TRANSACTION-
22** COMMIT-
23** ROLLBACK-
24*/-
25#include "sqliteInt.h"-
26-
27#ifndef SQLITE_OMIT_SHARED_CACHE-
28/*-
29** The TableLock structure is only used by the sqlite3TableLock() and-
30** codeTableLocks() functions.-
31*/-
32struct TableLock {-
33 int iDb; /* The database containing the table to be locked */-
34 int iTab; /* The root page of the table to be locked */-
35 u8 isWriteLock; /* True for write lock. False for a read lock */-
36 const char *zLockName; /* Name of the table */-
37};-
38-
39/*-
40** Record the fact that we want to lock a table at run-time. -
41**-
42** The table to be locked has root page iTab and is found in database iDb.-
43** A read or a write lock can be taken depending on isWritelock.-
44**-
45** This routine just records the fact that the lock is desired. The-
46** code to make the lock occur is generated by a later call to-
47** codeTableLocks() which occurs during sqlite3FinishCoding().-
48*/-
49void sqlite3TableLock(-
50 Parse *pParse, /* Parsing context */-
51 int iDb, /* Index of the database containing the table to lock */-
52 int iTab, /* Root page number of the table to be locked */-
53 u8 isWriteLock, /* True for a write lock */-
54 const char *zName /* Name of the table to be locked */-
55){-
56 Parse *pToplevel = sqlite3ParseToplevel(pParse);
(pParse)->pToplevelDescription
TRUEevaluated 6851 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 398102 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)
  • ...
6851-398102
57 int i;-
58 int nBytes;-
59 TableLock *p;-
60 assert( iDb>=0 );-
61-
62 if( iDb==1 ) return;
executed 12617 times by 12 tests: return;
Executed by:
  • Self test (43)
  • Self test (438)
  • Self test (45)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • Self test (74)
iDb==1Description
TRUEevaluated 12617 times by 12 tests
Evaluated by:
  • Self test (43)
  • Self test (438)
  • Self test (45)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • Self test (74)
FALSEevaluated 392336 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)
  • ...
12617-392336
63 if( !sqlite3BtreeSharable(pParse->db->aDb[iDb].pBt) ) return;
executed 390157 times by 435 tests: return;
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)
  • ...
!sqlite3BtreeS...>aDb[iDb].pBt)Description
TRUEevaluated 390157 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 2179 times by 1 test
Evaluated by:
  • Self test (438)
2179-390157
64 for(i=0; i<pToplevel->nTableLock; i++){
i<pToplevel->nTableLockDescription
TRUEevaluated 744 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1594 times by 1 test
Evaluated by:
  • Self test (438)
744-1594
65 p = &pToplevel->aTableLock[i];-
66 if( p->iDb==iDb && p->iTab==iTab ){
p->iDb==iDbDescription
TRUEevaluated 653 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 91 times by 1 test
Evaluated by:
  • Self test (438)
p->iTab==iTabDescription
TRUEevaluated 585 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 68 times by 1 test
Evaluated by:
  • Self test (438)
68-653
67 p->isWriteLock = (p->isWriteLock || isWriteLock);
p->isWriteLockDescription
TRUEevaluated 572 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
isWriteLockDescription
TRUEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
4-572
68 return;
executed 585 times by 1 test: return;
Executed by:
  • Self test (438)
585
69 }-
70 }
executed 159 times by 1 test: end of block
Executed by:
  • Self test (438)
159
71-
72 nBytes = sizeof(TableLock) * (pToplevel->nTableLock+1);-
73 pToplevel->aTableLock =-
74 sqlite3DbReallocOrFree(pToplevel->db, pToplevel->aTableLock, nBytes);-
75 if( pToplevel->aTableLock ){
pToplevel->aTableLockDescription
TRUEevaluated 1594 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-1594
76 p = &pToplevel->aTableLock[pToplevel->nTableLock++];-
77 p->iDb = iDb;-
78 p->iTab = iTab;-
79 p->isWriteLock = isWriteLock;-
80 p->zLockName = zName;-
81 }else{
executed 1594 times by 1 test: end of block
Executed by:
  • Self test (438)
1594
82 pToplevel->nTableLock = 0;-
83 sqlite3OomFault(pToplevel->db);-
84 }
never executed: end of block
0
85}-
86-
87/*-
88** Code an OP_TableLock instruction for each table locked by the-
89** statement (configured by calls to sqlite3TableLock()).-
90*/-
91static void codeTableLocks(Parse *pParse){-
92 int i;-
93 Vdbe *pVdbe; -
94-
95 pVdbe = sqlite3GetVdbe(pParse);-
96 assert( pVdbe!=0 ); /* sqlite3GetVdbe cannot fail: VDBE already allocated */-
97-
98 for(i=0; i<pParse->nTableLock; i++){
i<pParse->nTableLockDescription
TRUEevaluated 1594 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 299991 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)
  • ...
1594-299991
99 TableLock *p = &pParse->aTableLock[i];-
100 int p1 = p->iDb;-
101 sqlite3VdbeAddOp4(pVdbe, OP_TableLock, p1, p->iTab, p->isWriteLock,-
102 p->zLockName, P4_STATIC);-
103 }
executed 1594 times by 1 test: end of block
Executed by:
  • Self test (438)
1594
104}
executed 299991 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)
  • ...
299991
105#else-
106 #define codeTableLocks(x)-
107#endif-
108-
109/*-
110** Return TRUE if the given yDbMask object is empty - if it contains no-
111** 1 bits. This routine is used by the DbMaskAllZero() and DbMaskNotZero()-
112** macros when SQLITE_MAX_ATTACHED is greater than 30.-
113*/-
114#if SQLITE_MAX_ATTACHED>30-
115int sqlite3DbMaskAllZero(yDbMask m){-
116 int i;-
117 for(i=0; i<sizeof(yDbMask); i++) if( m[i] ) return 0;-
118 return 1;-
119}-
120#endif-
121-
122/*-
123** This routine is called after a single SQL statement has been-
124** parsed and a VDBE program to execute that statement has been-
125** prepared. This routine puts the finishing touches on the-
126** VDBE program and resets the pParse structure for the next-
127** parse.-
128**-
129** Note that if an error occurred, it might be the case that-
130** no VDBE code was generated.-
131*/-
132void sqlite3FinishCoding(Parse *pParse){-
133 sqlite3 *db;-
134 Vdbe *v;-
135-
136 assert( pParse->pToplevel==0 );-
137 db = pParse->db;-
138 if( pParse->nested ) return;
executed 41295 times by 33 tests: return;
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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
pParse->nestedDescription
TRUEevaluated 41295 times by 33 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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
FALSEevaluated 455292 times by 436 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)
  • ...
41295-455292
139 if( db->mallocFailed || pParse->nErr ){
db->mallocFailedDescription
TRUEevaluated 2131 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 453161 times by 436 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->nErrDescription
TRUEevaluated 1621 times by 13 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 451540 times by 436 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)
  • ...
1621-453161
140 if( pParse->rc==SQLITE_OK ) pParse->rc = SQLITE_ERROR;
executed 1345 times by 1 test: pParse->rc = 1;
Executed by:
  • Self test (438)
pParse->rc==0Description
TRUEevaluated 1345 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2407 times by 13 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1345-2407
141 return;
executed 3752 times by 13 tests: return;
Executed by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
3752
142 }-
143-
144 /* Begin by generating some termination code at the end of the-
145 ** vdbe program-
146 */-
147 v = sqlite3GetVdbe(pParse);-
148 assert( !pParse->isMultiWrite -
149 || sqlite3VdbeAssertMayAbort(v, pParse->mayAbort));-
150 if( v ){
vDescription
TRUEevaluated 451512 times by 436 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 28 times by 1 test
Evaluated by:
  • Self test (438)
28-451512
151 sqlite3VdbeAddOp0(v, OP_Halt);-
152-
153#if SQLITE_USER_AUTHENTICATION-
154 if( pParse->nTableLock>0 && db->init.busy==0 ){-
155 sqlite3UserAuthInit(db);-
156 if( db->auth.authLevel<UAUTH_User ){-
157 sqlite3ErrorMsg(pParse, "user not authenticated");-
158 pParse->rc = SQLITE_AUTH_USER;-
159 return;-
160 }-
161 }-
162#endif-
163-
164 /* The cookie mask contains one bit for each database file open.-
165 ** (Bit 0 is for main, bit 1 is for temp, and so forth.) Bits are-
166 ** set for each database that is used. Generate code to start a-
167 ** transaction on each used database and to verify the schema cookie-
168 ** on each used database.-
169 */-
170 if( db->mallocFailed==0
db->mallocFailed==0Description
TRUEevaluated 451484 times by 436 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 28 times by 1 test
Evaluated by:
  • Self test (438)
28-451484
171 && (DbMaskNonZero(pParse->cookieMask) || pParse->pConstExpr)
(pParse->cookieMask)!=0Description
TRUEevaluated 238195 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 213289 times by 436 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->pConstExprDescription
TRUEevaluated 61796 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 151493 times by 436 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)
  • ...
61796-238195
172 ){-
173 int iDb, i;-
174 assert( sqlite3VdbeGetOp(v, 0)->opcode==OP_Init );-
175 sqlite3VdbeJumpHere(v, 0);-
176 for(iDb=0; iDb<db->nDb; iDb++){
iDb<db->nDbDescription
TRUEevaluated 628588 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 299991 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)
  • ...
299991-628588
177 Schema *pSchema;-
178 if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue;
executed 382291 times by 435 tests: continue;
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)
  • ...
(((pParse->coo...(iDb)))!=0)==0Description
TRUEevaluated 382291 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 246297 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)
  • ...
246297-382291
179 sqlite3VdbeUsesBtree(v, iDb);-
180 pSchema = db->aDb[iDb].pSchema;-
181 sqlite3VdbeAddOp4Int(v,-
182 OP_Transaction, /* Opcode */-
183 iDb, /* P1 */-
184 DbMaskTest(pParse->writeMask,iDb), /* P2 */-
185 pSchema->schema_cookie, /* P3 */-
186 pSchema->iGeneration /* P4 */-
187 );-
188 if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1);
executed 207979 times by 430 tests: sqlite3VdbeChangeP5(v, 1);
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)
  • ...
db->init.busy==0Description
TRUEevaluated 207979 times by 430 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 38318 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)
  • ...
38318-207979
189 VdbeComment((v,-
190 "usesStmtJournal=%d", pParse->mayAbort && pParse->isMultiWrite));-
191 }
executed 246297 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)
  • ...
246297
192#ifndef SQLITE_OMIT_VIRTUALTABLE-
193 for(i=0; i<pParse->nVtabLock; i++){
i<pParse->nVtabLockDescription
TRUEevaluated 659 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 299991 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)
  • ...
659-299991
194 char *vtab = (char *)sqlite3GetVTable(db, pParse->apVtabLock[i]);-
195 sqlite3VdbeAddOp4(v, OP_VBegin, 0, 0, 0, vtab, P4_VTAB);-
196 }
executed 659 times by 1 test: end of block
Executed by:
  • Self test (438)
659
197 pParse->nVtabLock = 0;-
198#endif-
199-
200 /* Once all the cookies have been verified and transactions opened, -
201 ** obtain the required table-locks. This is a no-op unless the -
202 ** shared-cache feature is enabled.-
203 */-
204 codeTableLocks(pParse);-
205-
206 /* Initialize any AUTOINCREMENT data structures required.-
207 */-
208 sqlite3AutoincrementBegin(pParse);-
209-
210 /* Code constant expressions that where factored out of inner loops */-
211 if( pParse->pConstExpr ){
pParse->pConstExprDescription
TRUEevaluated 129600 times by 389 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • 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)
  • Self test (122)
  • Self test (123)
  • ...
FALSEevaluated 170391 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)
  • ...
129600-170391
212 ExprList *pEL = pParse->pConstExpr;-
213 pParse->okConstFactor = 0;-
214 for(i=0; i<pEL->nExpr; i++){
i<pEL->nExprDescription
TRUEevaluated 266281 times by 389 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • 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)
  • Self test (122)
  • Self test (123)
  • ...
FALSEevaluated 129600 times by 389 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • 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)
  • Self test (122)
  • Self test (123)
  • ...
129600-266281
215 sqlite3ExprCode(pParse, pEL->a[i].pExpr, pEL->a[i].u.iConstExprReg);-
216 }
executed 266281 times by 389 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • 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)
  • Self test (122)
  • Self test (123)
  • ...
266281
217 }
executed 129600 times by 389 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • 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)
  • Self test (122)
  • Self test (123)
  • ...
129600
218-
219 /* Finally, jump back to the beginning of the executable code. */-
220 sqlite3VdbeGoto(v, 1);-
221 }
executed 299991 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)
  • ...
299991
222 }
executed 451512 times by 436 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)
  • ...
451512
223-
224-
225 /* Get the VDBE program ready for execution-
226 */-
227 if( v && pParse->nErr==0 && !db->mallocFailed ){
vDescription
TRUEevaluated 451512 times by 436 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 28 times by 1 test
Evaluated by:
  • Self test (438)
pParse->nErr==0Description
TRUEevaluated 451510 times by 436 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 2 times by 1 test
Evaluated by:
  • Self test (438)
!db->mallocFailedDescription
TRUEevaluated 451478 times by 436 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 32 times by 1 test
Evaluated by:
  • Self test (438)
2-451512
228 /* A minimum of one cursor is required if autoincrement is used-
229 * See ticket [a696379c1f08866] */-
230 if( pParse->pAinc!=0 && pParse->nTab==0 ) pParse->nTab = 1;
executed 1 time by 1 test: pParse->nTab = 1;
Executed by:
  • Self test (438)
pParse->pAinc!=0Description
TRUEevaluated 85 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 451393 times by 436 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->nTab==0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 84 times by 1 test
Evaluated by:
  • Self test (438)
1-451393
231 sqlite3VdbeMakeReady(v, pParse);-
232 pParse->rc = SQLITE_DONE;-
233 }else{
executed 451478 times by 436 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)
  • ...
451478
234 pParse->rc = SQLITE_ERROR;-
235 }
executed 62 times by 1 test: end of block
Executed by:
  • Self test (438)
62
236}-
237-
238/*-
239** Run the parser and code generator recursively in order to generate-
240** code for the SQL statement given onto the end of the pParse context-
241** currently under construction. When the parser is run recursively-
242** this way, the final OP_Halt is not appended and other initialization-
243** and finalization steps are omitted because those are handling by the-
244** outermost parser.-
245**-
246** Not everything is nestable. This facility is designed to permit-
247** INSERT, UPDATE, and DELETE operations against SQLITE_MASTER. Use-
248** care if you decide to try to use this routine for some other purposes.-
249*/-
250void sqlite3NestedParse(Parse *pParse, const char *zFormat, ...){-
251 va_list ap;-
252 char *zSql;-
253 char *zErrMsg = 0;-
254 sqlite3 *db = pParse->db;-
255 char saveBuf[PARSE_TAIL_SZ];-
256-
257 if( pParse->nErr ) return;
executed 14 times by 1 test: return;
Executed by:
  • Self test (438)
pParse->nErrDescription
TRUEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 41340 times by 33 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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
14-41340
258 assert( pParse->nested<10 ); /* Nesting should only be of limited depth */-
259 va_start(ap, zFormat);-
260 zSql = sqlite3VMPrintf(db, zFormat, ap);-
261 va_end(ap);-
262 if( zSql==0 ){
zSql==0Description
TRUEevaluated 28 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 41312 times by 33 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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
28-41312
263 return; /* A malloc must have failed */
executed 28 times by 1 test: return;
Executed by:
  • Self test (438)
28
264 }-
265 pParse->nested++;-
266 memcpy(saveBuf, PARSE_TAIL(pParse), PARSE_TAIL_SZ);-
267 memset(PARSE_TAIL(pParse), 0, PARSE_TAIL_SZ);-
268 sqlite3RunParser(pParse, zSql, &zErrMsg);-
269 sqlite3DbFree(db, zErrMsg);-
270 sqlite3DbFree(db, zSql);-
271 memcpy(PARSE_TAIL(pParse), saveBuf, PARSE_TAIL_SZ);-
272 pParse->nested--;-
273}
executed 41312 times by 33 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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
41312
274-
275#if SQLITE_USER_AUTHENTICATION-
276/*-
277** Return TRUE if zTable is the name of the system table that stores the-
278** list of users and their access credentials.-
279*/-
280int sqlite3UserAuthTable(const char *zTable){-
281 return sqlite3_stricmp(zTable, "sqlite_user")==0;-
282}-
283#endif-
284-
285/*-
286** Locate the in-memory structure that describes a particular database-
287** table given the name of that table and (optionally) the name of the-
288** database containing the table. Return NULL if not found.-
289**-
290** If zDatabase is 0, all databases are searched for the table and the-
291** first matching table is returned. (No checking for duplicate table-
292** names is done.) The search order is TEMP first, then MAIN, then any-
293** auxiliary databases added using the ATTACH command.-
294**-
295** See also sqlite3LocateTable().-
296*/-
297Table *sqlite3FindTable(sqlite3 *db, const char *zName, const char *zDatabase){-
298 Table *p = 0;-
299 int i;-
300-
301 /* All mutexes are required for schema access. Make sure we hold them. */-
302 assert( zDatabase!=0 || sqlite3BtreeHoldsAllMutexes(db) );-
303#if SQLITE_USER_AUTHENTICATION-
304 /* Only the admin user is allowed to know that the sqlite_user table-
305 ** exists */-
306 if( db->auth.authLevel<UAUTH_Admin && sqlite3UserAuthTable(zName)!=0 ){-
307 return 0;-
308 }-
309#endif-
310 while(1){-
311 for(i=OMIT_TEMPDB; i<db->nDb; i++){
i<db->nDbDescription
TRUEevaluated 2507495 times by 436 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 149986 times by 436 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)
  • ...
149986-2507495
312 int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
(i<2)Description
TRUEevaluated 2461431 times by 436 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 46064 times by 12 tests
Evaluated by:
  • Self test (27)
  • Self test (34)
  • Self test (4)
  • Self test (438)
  • Self test (5)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
46064-2461431
313 if( zDatabase==0 || sqlite3StrICmp(zDatabase, db->aDb[j].zDbSName)==0 ){
zDatabase==0Description
TRUEevaluated 963531 times by 420 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 1543964 times by 436 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)
  • ...
sqlite3StrICmp...].zDbSName)==0Description
TRUEevaluated 751826 times by 436 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 792138 times by 436 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)
  • ...
751826-1543964
314 assert( sqlite3SchemaMutexHeld(db, j, 0) );-
315 p = sqlite3HashFind(&db->aDb[j].pSchema->tblHash, zName);-
316 if( p ) return p;
executed 1084288 times by 435 tests: return p;
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)
  • ...
pDescription
TRUEevaluated 1084288 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 631069 times by 436 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)
  • ...
631069-1084288
317 }
executed 631069 times by 436 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)
  • ...
631069
318 }
executed 1423207 times by 436 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)
  • ...
1423207
319 /* Not found. If the name we were looking for was temp.sqlite_master-
320 ** then change the name to sqlite_temp_master and try again. */-
321 if( sqlite3StrICmp(zName, MASTER_NAME)!=0 ) break;
executed 126674 times by 435 tests: break;
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)
  • ...
sqlite3StrICmp...te_master")!=0Description
TRUEevaluated 126674 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 23312 times by 436 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)
  • ...
23312-126674
322 if( sqlite3_stricmp(zDatabase, db->aDb[1].zDbSName)!=0 ) break;
executed 21305 times by 436 tests: break;
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)
  • ...
sqlite3_stricm...].zDbSName)!=0Description
TRUEevaluated 21305 times by 436 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 2007 times by 1 test
Evaluated by:
  • Self test (438)
2007-21305
323 zName = TEMP_MASTER_NAME;-
324 }
executed 2007 times by 1 test: end of block
Executed by:
  • Self test (438)
2007
325 return 0;
executed 147979 times by 436 tests: return 0;
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)
  • ...
147979
326}-
327-
328/*-
329** Locate the in-memory structure that describes a particular database-
330** table given the name of that table and (optionally) the name of the-
331** database containing the table. Return NULL if not found. Also leave an-
332** error message in pParse->zErrMsg.-
333**-
334** The difference between this routine and sqlite3FindTable() is that this-
335** routine leaves an error message in pParse->zErrMsg where-
336** sqlite3FindTable() does not.-
337*/-
338Table *sqlite3LocateTable(-
339 Parse *pParse, /* context in which to report errors */-
340 u32 flags, /* LOCATE_VIEW or LOCATE_NOERR */-
341 const char *zName, /* Name of the table we are looking for */-
342 const char *zDbase /* Name of the database. Might be NULL */-
343){-
344 Table *p;-
345 sqlite3 *db = pParse->db;-
346-
347 /* Read the database schema. If an error occurs, leave an error message-
348 ** and code in pParse and return NULL. */-
349 if( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0
(db->mDbFlags & 0x0008)==0Description
TRUEevaluated 54363 times by 436 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 1026019 times by 68 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (105)
  • Self test (11)
  • Self test (12)
  • Self test (13)
  • Self test (14)
  • Self test (15)
  • Self test (16)
  • Self test (17)
  • Self test (18)
  • Self test (19)
  • Self test (2)
  • Self test (20)
  • Self test (21)
  • Self test (22)
  • Self test (23)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • ...
54363-1026019
350 && SQLITE_OK!=sqlite3ReadSchema(pParse)
0!=sqlite3ReadSchema(pParse)Description
TRUEevaluated 838 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
FALSEevaluated 53525 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)
  • ...
838-53525
351 ){-
352 return 0;
executed 838 times by 2 tests: return 0;
Executed by:
  • Self test (438)
  • Self test (61)
838
353 }-
354-
355 p = sqlite3FindTable(db, zName, zDbase);-
356 if( p==0 ){
p==0Description
TRUEevaluated 9454 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 1070090 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)
  • ...
9454-1070090
357 const char *zMsg = flags & LOCATE_VIEW ? "no such view" : "no such table";
flags & 0x01Description
TRUEevaluated 22 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 9432 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
22-9432
358#ifndef SQLITE_OMIT_VIRTUALTABLE-
359 if( sqlite3FindDbName(db, zDbase)<1 ){
sqlite3FindDbN...(db, zDbase)<1Description
TRUEevaluated 9398 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 56 times by 2 tests
Evaluated by:
  • Self test (27)
  • Self test (438)
56-9398
360 /* If zName is the not the name of a table in the schema created using-
361 ** CREATE, then check to see if it is the name of an virtual table that-
362 ** can be an eponymous virtual table. */-
363 Module *pMod = (Module*)sqlite3HashFind(&db->aModule, zName);-
364 if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){
pMod==0Description
TRUEevaluated 9147 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 251 times by 1 test
Evaluated by:
  • Self test (438)
sqlite3_strnic...ragma_", 7)==0Description
TRUEevaluated 8595 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 552 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
251-9147
365 pMod = sqlite3PragmaVtabRegister(db, zName);-
366 }
executed 8595 times by 1 test: end of block
Executed by:
  • Self test (438)
8595
367 if( pMod && sqlite3VtabEponymousTableInit(pParse, pMod) ){
pModDescription
TRUEevaluated 8845 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 553 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
sqlite3VtabEpo...(pParse, pMod)Description
TRUEevaluated 8845 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-8845
368 return pMod->pEpoTab;
executed 8845 times by 1 test: return pMod->pEpoTab;
Executed by:
  • Self test (438)
8845
369 }-
370 }
executed 553 times by 12 tests: end of block
Executed by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
553
371#endif-
372 if( (flags & LOCATE_NOERR)==0 ){
(flags & 0x02)==0Description
TRUEevaluated 607 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
2-607
373 if( zDbase ){
zDbaseDescription
TRUEevaluated 116 times by 5 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (438)
  • Self test (47)
FALSEevaluated 491 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
116-491
374 sqlite3ErrorMsg(pParse, "%s: %s.%s", zMsg, zDbase, zName);-
375 }else{
executed 116 times by 5 tests: end of block
Executed by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (438)
  • Self test (47)
116
376 sqlite3ErrorMsg(pParse, "%s: %s", zMsg, zName);-
377 }
executed 491 times by 12 tests: end of block
Executed by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
491
378 pParse->checkSchema = 1;-
379 }
executed 607 times by 12 tests: end of block
Executed by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
607
380 }
executed 609 times by 12 tests: end of block
Executed by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
609
381-
382 return p;
executed 1070699 times by 435 tests: return p;
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)
  • ...
1070699
383}-
384-
385/*-
386** Locate the table identified by *p.-
387**-
388** This is a wrapper around sqlite3LocateTable(). The difference between-
389** sqlite3LocateTable() and this function is that this function restricts-
390** the search to schema (p->pSchema) if it is not NULL. p->pSchema may be-
391** non-NULL if it is part of a view or trigger program definition. See-
392** sqlite3FixSrcList() for details.-
393*/-
394Table *sqlite3LocateTableItem(-
395 Parse *pParse, -
396 u32 flags,-
397 struct SrcList_item *p-
398){-
399 const char *zDb;-
400 assert( p->pSchema==0 || p->zDatabase==0 );-
401 if( p->pSchema ){
p->pSchemaDescription
TRUEevaluated 512810 times by 24 tests
Evaluated by:
  • Self test
  • Self test (2)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (57)
  • Self test (58)
  • Self test (74)
  • Self test (86)
  • Self test (87)
  • Self test (88)
FALSEevaluated 555956 times by 436 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)
  • ...
512810-555956
402 int iDb = sqlite3SchemaToIndex(pParse->db, p->pSchema);-
403 zDb = pParse->db->aDb[iDb].zDbSName;-
404 }else{
executed 512810 times by 24 tests: end of block
Executed by:
  • Self test
  • Self test (2)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (57)
  • Self test (58)
  • Self test (74)
  • Self test (86)
  • Self test (87)
  • Self test (88)
512810
405 zDb = p->zDatabase;-
406 }
executed 555956 times by 436 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)
  • ...
555956
407 return sqlite3LocateTable(pParse, flags, p->zName, zDb);
executed 1068766 times by 436 tests: return sqlite3LocateTable(pParse, flags, p->zName, zDb);
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)
  • ...
1068766
408}-
409-
410/*-
411** Locate the in-memory structure that describes -
412** a particular index given the name of that index-
413** and the name of the database that contains the index.-
414** Return NULL if not found.-
415**-
416** If zDatabase is 0, all databases are searched for the-
417** table and the first matching index is returned. (No checking-
418** for duplicate index names is done.) The search order is-
419** TEMP first, then MAIN, then any auxiliary databases added-
420** using the ATTACH command.-
421*/-
422Index *sqlite3FindIndex(sqlite3 *db, const char *zName, const char *zDb){-
423 Index *p = 0;-
424 int i;-
425 /* All mutexes are required for schema access. Make sure we hold them. */-
426 assert( zDb!=0 || sqlite3BtreeHoldsAllMutexes(db) );-
427 for(i=OMIT_TEMPDB; i<db->nDb; i++){
i<db->nDbDescription
TRUEevaluated 228990 times by 436 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 100599 times by 436 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)
  • ...
100599-228990
428 int j = (i<2) ? i^1 : i; /* Search TEMP before MAIN */
(i<2)Description
TRUEevaluated 211550 times by 436 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 17440 times by 12 tests
Evaluated by:
  • Self test (27)
  • Self test (34)
  • Self test (4)
  • Self test (438)
  • Self test (5)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
17440-211550
429 Schema *pSchema = db->aDb[j].pSchema;-
430 assert( pSchema );-
431 if( zDb && sqlite3StrICmp(zDb, db->aDb[j].zDbSName) ) continue;
executed 122732 times by 436 tests: continue;
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)
  • ...
zDbDescription
TRUEevaluated 228080 times by 436 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 910 times by 4 tests
Evaluated by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
sqlite3StrICmp...b[j].zDbSName)Description
TRUEevaluated 122732 times by 436 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 105348 times by 436 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)
  • ...
910-228080
432 assert( sqlite3SchemaMutexHeld(db, j, 0) );-
433 p = sqlite3HashFind(&pSchema->idxHash, zName);-
434 if( p ) break;
executed 5200 times by 379 tests: break;
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • ...
pDescription
TRUEevaluated 5200 times by 379 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • ...
FALSEevaluated 101058 times by 436 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)
  • ...
5200-101058
435 }
executed 101058 times by 436 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)
  • ...
101058
436 return p;
executed 105799 times by 436 tests: return p;
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)
  • ...
105799
437}-
438-
439/*-
440** Reclaim the memory used by an index-
441*/-
442void sqlite3FreeIndex(sqlite3 *db, Index *p){-
443#ifndef SQLITE_OMIT_ANALYZE-
444 sqlite3DeleteIndexSamples(db, p);-
445#endif-
446 sqlite3ExprDelete(db, p->pPartIdxWhere);-
447 sqlite3ExprListDelete(db, p->aColExpr);-
448 sqlite3DbFree(db, p->zColAff);-
449 if( p->isResized ) sqlite3DbFree(db, (void *)p->azColl);
executed 313 times by 1 test: sqlite3DbFree(db, (void *)p->azColl);
Executed by:
  • Self test (438)
p->isResizedDescription
TRUEevaluated 313 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 12681 times by 38 tests
Evaluated by:
  • Self test (100)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • ...
313-12681
450#ifdef SQLITE_ENABLE_STAT3_OR_STAT4-
451 sqlite3_free(p->aiRowEst);-
452#endif-
453 sqlite3DbFree(db, p);-
454}
executed 12994 times by 38 tests: end of block
Executed by:
  • Self test (100)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • ...
12994
455-
456/*-
457** For the index called zIdxName which is found in the database iDb,-
458** unlike that index from its Table then remove the index from-
459** the index hash table and free all memory structures associated-
460** with the index.-
461*/-
462void sqlite3UnlinkAndDeleteIndex(sqlite3 *db, int iDb, const char *zIdxName){-
463 Index *pIndex;-
464 Hash *pHash;-
465-
466 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );-
467 pHash = &db->aDb[iDb].pSchema->idxHash;-
468 pIndex = sqlite3HashInsert(pHash, zIdxName, 0);-
469 if( ALWAYS(pIndex) ){
(pIndex)Description
TRUEevaluated 199 times by 4 tests
Evaluated by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
FALSEnever evaluated
0-199
470 if( pIndex->pTable->pIndex==pIndex ){
pIndex->pTable->pIndex==pIndexDescription
TRUEevaluated 179 times by 4 tests
Evaluated by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
FALSEevaluated 20 times by 1 test
Evaluated by:
  • Self test (438)
20-179
471 pIndex->pTable->pIndex = pIndex->pNext;-
472 }else{
executed 179 times by 4 tests: end of block
Executed by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
179
473 Index *p;-
474 /* Justification of ALWAYS(); The index must be on the list of-
475 ** indices. */-
476 p = pIndex->pTable->pIndex;-
477 while( ALWAYS(p) && p->pNext!=pIndex ){ p = p->pNext; }
executed 1 time by 1 test: end of block
Executed by:
  • Self test (438)
(p)Description
TRUEevaluated 21 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
p->pNext!=pIndexDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 20 times by 1 test
Evaluated by:
  • Self test (438)
0-21
478 if( ALWAYS(p && p->pNext==pIndex) ){
pDescription
TRUEevaluated 20 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
p->pNext==pIndexDescription
TRUEevaluated 20 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-20
479 p->pNext = pIndex->pNext;-
480 }
executed 20 times by 1 test: end of block
Executed by:
  • Self test (438)
20
481 }
executed 20 times by 1 test: end of block
Executed by:
  • Self test (438)
20
482 sqlite3FreeIndex(db, pIndex);-
483 }
executed 199 times by 4 tests: end of block
Executed by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
199
484 db->mDbFlags |= DBFLAG_SchemaChange;-
485}
executed 199 times by 4 tests: end of block
Executed by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
199
486-
487/*-
488** Look through the list of open database files in db->aDb[] and if-
489** any have been closed, remove them from the list. Reallocate the-
490** db->aDb[] structure to a smaller size, if possible.-
491**-
492** Entry 0 (the "main" database) and entry 1 (the "temp" database)-
493** are never candidates for being collapsed.-
494*/-
495void sqlite3CollapseDatabaseArray(sqlite3 *db){-
496 int i, j;-
497 for(i=j=2; i<db->nDb; i++){
i<db->nDbDescription
TRUEevaluated 2105 times by 10 tests
Evaluated by:
  • Self test (27)
  • Self test (34)
  • Self test (438)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 34431 times by 66 tests
Evaluated by:
  • Self test (101)
  • Self test (102)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (25)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
2105-34431
498 struct Db *pDb = &db->aDb[i];-
499 if( pDb->pBt==0 ){
pDb->pBt==0Description
TRUEevaluated 1631 times by 10 tests
Evaluated by:
  • Self test (27)
  • Self test (34)
  • Self test (438)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 474 times by 1 test
Evaluated by:
  • Self test (438)
474-1631
500 sqlite3DbFree(db, pDb->zDbSName);-
501 pDb->zDbSName = 0;-
502 continue;
executed 1631 times by 10 tests: continue;
Executed by:
  • Self test (27)
  • Self test (34)
  • Self test (438)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1631
503 }-
504 if( j<i ){
j<iDescription
TRUEevaluated 25 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 449 times by 1 test
Evaluated by:
  • Self test (438)
25-449
505 db->aDb[j] = db->aDb[i];-
506 }
executed 25 times by 1 test: end of block
Executed by:
  • Self test (438)
25
507 j++;-
508 }
executed 474 times by 1 test: end of block
Executed by:
  • Self test (438)
474
509 db->nDb = j;-
510 if( db->nDb<=2 && db->aDb!=db->aDbStatic ){
db->nDb<=2Description
TRUEevaluated 34013 times by 66 tests
Evaluated by:
  • Self test (101)
  • Self test (102)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (25)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
FALSEevaluated 418 times by 1 test
Evaluated by:
  • Self test (438)
db->aDb!=db->aDbStaticDescription
TRUEevaluated 1535 times by 10 tests
Evaluated by:
  • Self test (27)
  • Self test (34)
  • Self test (438)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 32478 times by 58 tests
Evaluated by:
  • Self test (101)
  • Self test (102)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (25)
  • Self test (26)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • ...
418-34013
511 memcpy(db->aDbStatic, db->aDb, 2*sizeof(db->aDb[0]));-
512 sqlite3DbFree(db, db->aDb);-
513 db->aDb = db->aDbStatic;-
514 }
executed 1535 times by 10 tests: end of block
Executed by:
  • Self test (27)
  • Self test (34)
  • Self test (438)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1535
515}
executed 34431 times by 66 tests: end of block
Executed by:
  • Self test (101)
  • Self test (102)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (25)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
34431
516-
517/*-
518** Reset the schema for the database at index iDb. Also reset the-
519** TEMP schema. The reset is deferred if db->nSchemaLock is not zero.-
520** Deferred resets may be run by calling with iDb<0.-
521*/-
522void sqlite3ResetOneSchema(sqlite3 *db, int iDb){-
523 int i;-
524 assert( iDb<db->nDb );-
525-
526 if( iDb>=0 ){
iDb>=0Description
TRUEevaluated 1324 times by 18 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 152 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
152-1324
527 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );-
528 DbSetProperty(db, iDb, DB_ResetWanted);-
529 DbSetProperty(db, 1, DB_ResetWanted);-
530 db->mDbFlags &= ~DBFLAG_SchemaKnownOk;-
531 }
executed 1324 times by 18 tests: end of block
Executed by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1324
532-
533 if( db->nSchemaLock==0 ){
db->nSchemaLock==0Description
TRUEevaluated 1476 times by 18 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEnever evaluated
0-1476
534 for(i=0; i<db->nDb; i++){
i<db->nDbDescription
TRUEevaluated 3170 times by 18 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 1476 times by 18 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1476-3170
535 if( DbHasProperty(db, i, DB_ResetWanted) ){
(((db)->aDb[i]...8))==(0x0008))Description
TRUEevaluated 2525 times by 18 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
FALSEevaluated 645 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
645-2525
536 sqlite3SchemaClear(db->aDb[i].pSchema);-
537 }
executed 2525 times by 18 tests: end of block
Executed by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
2525
538 }
executed 3170 times by 18 tests: end of block
Executed by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
3170
539 }
executed 1476 times by 18 tests: end of block
Executed by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1476
540}
executed 1476 times by 18 tests: end of block
Executed by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1476
541-
542/*-
543** Erase all schema information from all attached databases (including-
544** "main" and "temp") for a single database connection.-
545*/-
546void sqlite3ResetAllSchemasOfConnection(sqlite3 *db){-
547 int i;-
548 sqlite3BtreeEnterAll(db);-
549 assert( db->nSchemaLock==0 );-
550 for(i=0; i<db->nDb; i++){
i<db->nDbDescription
TRUEevaluated 5525 times by 3 tests
Evaluated by:
  • Self test (34)
  • Self test (438)
  • Self test (61)
FALSEevaluated 2125 times by 3 tests
Evaluated by:
  • Self test (34)
  • Self test (438)
  • Self test (61)
2125-5525
551 Db *pDb = &db->aDb[i];-
552 if( pDb->pSchema ){
pDb->pSchemaDescription
TRUEevaluated 4648 times by 3 tests
Evaluated by:
  • Self test (34)
  • Self test (438)
  • Self test (61)
FALSEevaluated 877 times by 2 tests
Evaluated by:
  • Self test (34)
  • Self test (438)
877-4648
553 sqlite3SchemaClear(pDb->pSchema);-
554 }
executed 4648 times by 3 tests: end of block
Executed by:
  • Self test (34)
  • Self test (438)
  • Self test (61)
4648
555 }
executed 5525 times by 3 tests: end of block
Executed by:
  • Self test (34)
  • Self test (438)
  • Self test (61)
5525
556 db->mDbFlags &= ~(DBFLAG_SchemaChange|DBFLAG_SchemaKnownOk);-
557 sqlite3VtabUnlockList(db);-
558 sqlite3BtreeLeaveAll(db);-
559 sqlite3CollapseDatabaseArray(db);-
560}
executed 2125 times by 3 tests: end of block
Executed by:
  • Self test (34)
  • Self test (438)
  • Self test (61)
2125
561-
562/*-
563** This routine is called when a commit occurs.-
564*/-
565void sqlite3CommitInternalChanges(sqlite3 *db){-
566 db->mDbFlags &= ~DBFLAG_SchemaChange;-
567}
executed 415167 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)
  • ...
415167
568-
569/*-
570** Delete memory allocated for the column names of a table or view (the-
571** Table.aCol[] array).-
572*/-
573void sqlite3DeleteColumnNames(sqlite3 *db, Table *pTable){-
574 int i;-
575 Column *pCol;-
576 assert( pTable!=0 );-
577 if( (pCol = pTable->aCol)!=0 ){
(pCol = pTable->aCol)!=0Description
TRUEevaluated 101299 times by 77 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
FALSEevaluated 16488 times by 10 tests
Evaluated by:
  • Self test
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (438)
  • Self test (47)
  • Self test (57)
  • Self test (58)
16488-101299
578 for(i=0; i<pTable->nCol; i++, pCol++){
i<pTable->nColDescription
TRUEevaluated 445232 times by 77 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
FALSEevaluated 101299 times by 77 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
101299-445232
579 sqlite3DbFree(db, pCol->zName);-
580 sqlite3ExprDelete(db, pCol->pDflt);-
581 sqlite3DbFree(db, pCol->zColl);-
582 }
executed 445232 times by 77 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
445232
583 sqlite3DbFree(db, pTable->aCol);-
584 }
executed 101299 times by 77 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
101299
585}
executed 117787 times by 77 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
117787
586-
587/*-
588** Remove the memory data structures associated with the given-
589** Table. No changes are made to disk by this routine.-
590**-
591** This routine just deletes the data structure. It does not unlink-
592** the table data structure from the hash table. But it does destroy-
593** memory structures of the indices and foreign keys associated with -
594** the table.-
595**-
596** The db parameter is optional. It is needed if the Table object -
597** contains lookaside memory. (Table objects in the schema do not use-
598** lookaside memory, but some ephemeral Table objects do.) Or the-
599** db parameter can be used with db->pnBytesFreed to measure the memory-
600** used by the Table object.-
601*/-
602static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){-
603 Index *pIndex, *pNext;-
604-
605#ifdef SQLITE_DEBUG-
606 /* Record the number of outstanding lookaside allocations in schema Tables-
607 ** prior to doing any free() operations. Since schema Tables do not use-
608 ** lookaside, this number should not change. */-
609 int nLookaside = 0;-
610 if( db && (pTable->tabFlags & TF_Ephemeral)==0 ){-
611 nLookaside = sqlite3LookasideUsed(db, 0);-
612 }-
613#endif-
614-
615 /* Delete all indices associated with this table. */-
616 for(pIndex = pTable->pIndex; pIndex; pIndex=pNext){
pIndexDescription
TRUEevaluated 10174 times by 38 tests
Evaluated by:
  • Self test (100)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • ...
FALSEevaluated 117647 times by 77 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
10174-117647
617 pNext = pIndex->pNext;-
618 assert( pIndex->pSchema==pTable->pSchema-
619 || (IsVirtual(pTable) && pIndex->idxType!=SQLITE_IDXTYPE_APPDEF) );-
620 if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){
db==0Description
TRUEevaluated 7482 times by 28 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • Self test (74)
  • ...
FALSEevaluated 2692 times by 13 tests
Evaluated by:
  • Self test (100)
  • Self test (32)
  • Self test (33)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
db->pnBytesFreed==0Description
TRUEevaluated 2692 times by 13 tests
Evaluated by:
  • Self test (100)
  • Self test (32)
  • Self test (33)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
FALSEnever evaluated
!((pTable)->nModuleArg)Description
TRUEevaluated 10135 times by 38 tests
Evaluated by:
  • Self test (100)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • ...
FALSEevaluated 39 times by 1 test
Evaluated by:
  • Self test (438)
0-10135
621 char *zName = pIndex->zName; -
622 TESTONLY ( Index *pOld = ) sqlite3HashInsert(-
623 &pIndex->pSchema->idxHash, zName, 0-
624 );-
625 assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pIndex->pSchema) );-
626 assert( pOld==pIndex || pOld==0 );-
627 }
executed 10135 times by 38 tests: end of block
Executed by:
  • Self test (100)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • ...
10135
628 sqlite3FreeIndex(db, pIndex);-
629 }
executed 10174 times by 38 tests: end of block
Executed by:
  • Self test (100)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • ...
10174
630-
631 /* Delete any foreign keys attached to this table. */-
632 sqlite3FkDelete(db, pTable);-
633-
634 /* Delete the Table structure itself.-
635 */-
636 sqlite3DeleteColumnNames(db, pTable);-
637 sqlite3DbFree(db, pTable->zName);-
638 sqlite3DbFree(db, pTable->zColAff);-
639 sqlite3SelectDelete(db, pTable->pSelect);-
640 sqlite3ExprListDelete(db, pTable->pCheck);-
641#ifndef SQLITE_OMIT_VIRTUALTABLE-
642 sqlite3VtabClear(db, pTable);-
643#endif-
644 sqlite3DbFree(db, pTable);-
645-
646 /* Verify that no lookaside memory was used by schema tables */-
647 assert( nLookaside==0 || nLookaside==sqlite3LookasideUsed(db,0) );-
648}
executed 117647 times by 77 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
117647
649void sqlite3DeleteTable(sqlite3 *db, Table *pTable){-
650 /* Do not delete the table until the reference count reaches zero. */-
651 if( !pTable ) return;
executed 713213 times by 436 tests: return;
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)
  • ...
!pTableDescription
TRUEevaluated 713213 times by 436 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 1140874 times by 436 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)
  • ...
713213-1140874
652 if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return;
executed 1023227 times by 435 tests: return;
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)
  • ...
!dbDescription
TRUEevaluated 74468 times by 64 tests
Evaluated by:
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • ...
FALSEevaluated 1066406 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)
  • ...
db->pnBytesFreed==0Description
TRUEevaluated 1066406 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)
  • ...
FALSEnever evaluated
(--pTable->nTabRef)>0Description
TRUEevaluated 1023227 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 117647 times by 77 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
0-1066406
653 deleteTable(db, pTable);-
654}
executed 117647 times by 77 tests: end of block
Executed by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (103)
  • Self test (104)
  • Self test (105)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (35)
  • Self test (36)
  • Self test (37)
  • Self test (38)
  • Self test (39)
  • Self test (40)
  • Self test (41)
  • Self test (42)
  • Self test (43)
  • ...
117647
655-
656-
657/*-
658** Unlink the given table from the hash tables and the delete the-
659** table structure with all its indices and foreign keys.-
660*/-
661void sqlite3UnlinkAndDeleteTable(sqlite3 *db, int iDb, const char *zTabName){-
662 Table *p;-
663 Db *pDb;-
664-
665 assert( db!=0 );-
666 assert( iDb>=0 && iDb<db->nDb );-
667 assert( zTabName );-
668 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );-
669 testcase( zTabName[0]==0 ); /* Zero-length table names are allowed */-
670 pDb = &db->aDb[iDb];-
671 p = sqlite3HashInsert(&pDb->pSchema->tblHash, zTabName, 0);-
672 sqlite3DeleteTable(db, p);-
673 db->mDbFlags |= DBFLAG_SchemaChange;-
674}
executed 4808 times by 4 tests: end of block
Executed by:
  • Self test (24)
  • Self test (28)
  • Self test (438)
  • Self test (47)
4808
675-
676/*-
677** Given a token, return a string that consists of the text of that-
678** token. Space to hold the returned string-
679** is obtained from sqliteMalloc() and must be freed by the calling-
680** function.-
681**-
682** Any quotation marks (ex: "name", 'name', [name], or `name`) that-
683** surround the body of the token are removed.-
684**-
685** Tokens are often just pointers into the original SQL text and so-
686** are not \000 terminated and are not persistent. The returned string-
687** is \000 terminated and is persistent.-
688*/-
689char *sqlite3NameFromToken(sqlite3 *db, Token *pName){-
690 char *zName;-
691 if( pName ){
pNameDescription
TRUEevaluated 857781 times by 436 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 23940 times by 21 tests
Evaluated by:
  • Self test (101)
  • Self test (104)
  • Self test (35)
  • Self test (43)
  • Self test (438)
  • Self test (45)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • Self test (72)
  • Self test (73)
  • Self test (74)
  • Self test (84)
  • Self test (85)
  • Self test (89)
  • Self test (90)
23940-857781
692 zName = sqlite3DbStrNDup(db, (char*)pName->z, pName->n);-
693 sqlite3Dequote(zName);-
694 }else{
executed 857781 times by 436 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)
  • ...
857781
695 zName = 0;-
696 }
executed 23940 times by 21 tests: end of block
Executed by:
  • Self test (101)
  • Self test (104)
  • Self test (35)
  • Self test (43)
  • Self test (438)
  • Self test (45)
  • Self test (53)
  • Self test (65)
  • Self test (66)
  • Self test (67)
  • Self test (68)
  • Self test (69)
  • Self test (70)
  • Self test (71)
  • Self test (72)
  • Self test (73)
  • Self test (74)
  • Self test (84)
  • Self test (85)
  • Self test (89)
  • Self test (90)
23940
697 return zName;
executed 881721 times by 436 tests: return zName;
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)
  • ...
881721
698}-
699-
700/*-
701** Open the sqlite_master table stored in database number iDb for-
702** writing. The table is opened using cursor 0.-
703*/-
704void sqlite3OpenMasterTable(Parse *p, int iDb){-
705 Vdbe *v = sqlite3GetVdbe(p);-
706 sqlite3TableLock(p, iDb, MASTER_ROOT, 1, MASTER_NAME);-
707 sqlite3VdbeAddOp4Int(v, OP_OpenWrite, 0, MASTER_ROOT, iDb, 5);-
708 if( p->nTab==0 ){
p->nTab==0Description
TRUEevaluated 23567 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 106 times by 1 test
Evaluated by:
  • Self test (438)
106-23567
709 p->nTab = 1;-
710 }
executed 23567 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)
  • ...
23567
711}
executed 23673 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)
  • ...
23673
712-
713/*-
714** Parameter zName points to a nul-terminated buffer containing the name-
715** of a database ("main", "temp" or the name of an attached db). This-
716** function returns the index of the named database in db->aDb[], or-
717** -1 if the named db cannot be found.-
718*/-
719int sqlite3FindDbName(sqlite3 *db, const char *zName){-
720 int i = -1; /* Database number */-
721 if( zName ){
zNameDescription
TRUEevaluated 7295 times by 16 tests
Evaluated by:
  • Self test (100)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
FALSEevaluated 9338 times by 12 tests
Evaluated by:
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
7295-9338
722 Db *pDb;-
723 for(i=(db->nDb-1), pDb=&db->aDb[i]; i>=0; i--, pDb--){
i>=0Description
TRUEevaluated 14083 times by 16 tests
Evaluated by:
  • Self test (100)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
FALSEevaluated 104 times by 1 test
Evaluated by:
  • Self test (438)
104-14083
724 if( 0==sqlite3_stricmp(pDb->zDbSName, zName) ) break;
executed 7182 times by 16 tests: break;
Executed by:
  • Self test (100)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
0==sqlite3_str...bSName, zName)Description
TRUEevaluated 7182 times by 16 tests
Evaluated by:
  • Self test (100)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
FALSEevaluated 6901 times by 15 tests
Evaluated by:
  • Self test (100)
  • Self test (26)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
6901-7182
725 /* "main" is always an acceptable alias for the primary database-
726 ** even if it has been renamed using SQLITE_DBCONFIG_MAINDBNAME. */-
727 if( i==0 && 0==sqlite3_stricmp("main", zName) ) break;
executed 9 times by 1 test: break;
Executed by:
  • Self test (438)
i==0Description
TRUEevaluated 113 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 6788 times by 15 tests
Evaluated by:
  • Self test (100)
  • Self test (26)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
0==sqlite3_str..."main", zName)Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 104 times by 1 test
Evaluated by:
  • Self test (438)
9-6788
728 }
executed 6892 times by 15 tests: end of block
Executed by:
  • Self test (100)
  • Self test (26)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
6892
729 }
executed 7295 times by 16 tests: end of block
Executed by:
  • Self test (100)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (34)
  • Self test (438)
  • Self test (47)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
7295
730 return i;
executed 16633 times by 23 tests: return i;
Executed by:
  • Self test (100)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (34)
  • Self test (39)
  • Self test (438)
  • Self test (47)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
16633
731}-
732-
733/*-
734** The token *pName contains the name of a database (either "main" or-
735** "temp" or the name of an attached db). This routine returns the-
736** index of the named database in db->aDb[], or -1 if the named db -
737** does not exist.-
738*/-
739int sqlite3FindDb(sqlite3 *db, Token *pName){-
740 int i; /* Database number */-
741 char *zName; /* Name we are searching for */-
742 zName = sqlite3NameFromToken(db, pName);-
743 i = sqlite3FindDbName(db, zName);-
744 sqlite3DbFree(db, zName);-
745 return i;
executed 2397 times by 12 tests: return i;
Executed by:
  • Self test (100)
  • Self test (27)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
2397
746}-
747-
748/* The table or view or trigger name is passed to this routine via tokens-
749** pName1 and pName2. If the table name was fully qualified, for example:-
750**-
751** CREATE TABLE xxx.yyy (...);-
752** -
753** Then pName1 is set to "xxx" and pName2 "yyy". On the other hand if-
754** the table name is not fully qualified, i.e.:-
755**-
756** CREATE TABLE yyy(...);-
757**-
758** Then pName1 is set to "yyy" and pName2 is "".-
759**-
760** This routine sets the *ppUnqual pointer to point at the token (pName1 or-
761** pName2) that stores the unqualified table name. The index of the-
762** database "xxx" is returned.-
763*/-
764int sqlite3TwoPartName(-
765 Parse *pParse, /* Parsing and code generating context */-
766 Token *pName1, /* The "xxx" in the name "xxx.yyy" or "xxx" */-
767 Token *pName2, /* The "yyy" in the name "xxx.yyy" */-
768 Token **pUnqual /* Write the unqualified object name here */-
769){-
770 int iDb; /* Database holding the object */-
771 sqlite3 *db = pParse->db;-
772-
773 assert( pName2!=0 );-
774 if( pName2->n>0 ){
pName2->n>0Description
TRUEevaluated 2317 times by 12 tests
Evaluated by:
  • Self test (100)
  • Self test (27)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
FALSEevaluated 117992 times by 434 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)
  • ...
2317-117992
775 if( db->init.busy ) {
db->init.busyDescription
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2315 times by 12 tests
Evaluated by:
  • Self test (100)
  • Self test (27)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
2-2315
776 sqlite3ErrorMsg(pParse, "corrupt database");-
777 return -1;
executed 2 times by 1 test: return -1;
Executed by:
  • Self test (438)
2
778 }-
779 *pUnqual = pName2;-
780 iDb = sqlite3FindDb(db, pName1);-
781 if( iDb<0 ){
iDb<0Description
TRUEevaluated 12 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2303 times by 12 tests
Evaluated by:
  • Self test (100)
  • Self test (27)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
12-2303
782 sqlite3ErrorMsg(pParse, "unknown database %T", pName1);-
783 return -1;
executed 12 times by 1 test: return -1;
Executed by:
  • Self test (438)
12
784 }-
785 }else{
executed 2303 times by 12 tests: end of block
Executed by:
  • Self test (100)
  • Self test (27)
  • Self test (438)
  • Self test (91)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
2303
786 assert( db->init.iDb==0 || db->init.busy || IN_RENAME_OBJECT-
787 || (db->mDbFlags & DBFLAG_Vacuum)!=0);-
788 iDb = db->init.iDb;-
789 *pUnqual = pName1;-
790 }
executed 117992 times by 434 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)
  • ...
117992
791 return iDb;
executed 120295 times by 434 tests: return iDb;
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)
  • ...
120295
792}-
793-
794/*-
795** This routine is used to check if the UTF-8 string zName is a legal-
796** unqualified name for a new schema object (table, index, view or-
797** trigger). All names are legal except those that begin with the string-
798** "sqlite_" (in upper, lower or mixed case). This portion of the namespace-
799** is reserved for internal use.-
800*/-
801int sqlite3CheckObjectName(Parse *pParse, const char *zName){-
802 if( !pParse->db->init.busy && pParse->nested==0
!pParse->db->init.busyDescription
TRUEevaluated 27868 times by 33 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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
FALSEevaluated 92734 times by 436 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->nested==0Description
TRUEevaluated 27762 times by 33 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 (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • ...
FALSEevaluated 106 times by 1 test
Evaluated by:
  • Self test (438)
106-92734
803 && (pParse->db->flags & SQLITE_WriteSchema)==0
(pParse->db->f...0x00000001)==0Description
TRUEevaluated 25599 times by 32 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 (39)
  • Self test (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • ...
FALSEevaluated 2163 times by 2 tests
Evaluated by:
  • Self test (34)
  • Self test (438)
2163-25599
804 && 0==sqlite3StrNICmp(zName, "sqlite_", 7) ){
0==sqlite3_str... "sqlite_", 7)Description
TRUEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 25585 times by 32 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 (39)
  • Self test (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (48)
  • Self test (57)
  • Self test (58)
  • Self test (72)
  • Self test (73)
  • Self test (91)
  • Self test (92)
  • ...
14-25585
805 sqlite3ErrorMsg(pParse, "object name reserved for internal use: %s", zName);-
806 return SQLITE_ERROR;
executed 14 times by 1 test: return 1;
Executed by:
  • Self test (438)
14
807 }-
808 return SQLITE_OK;
executed 120588 times by 436 tests: return 0;
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)
  • ...
120588
809}-
810-
811/*-
812** Return the PRIMARY KEY index of a table-
813*/-
814Index *sqlite3PrimaryKeyIndex(Table *pTab){-
815 Index *p;-
816 for(p=pTab->pIndex; p && !IsPrimaryKeyIndex(p); p=p->pNext){}
executed 3334 times by 1 test: end of block
Executed by:
  • Self test (438)
pDescription
TRUEevaluated 12836 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 8688 times by 1 test
Evaluated by:
  • Self test (438)
!((p)->idxType==2)Description
TRUEevaluated 3334 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 9502 times by 1 test
Evaluated by:
  • Self test (438)
3334-12836
817 return p;
executed 18190 times by 1 test: return p;
Executed by:
  • Self test (438)
18190
818}-
819-
820/*-
821** Return the column of index pIdx that corresponds to table-
822** column iCol. Return -1 if not found.-
823*/-
824i16 sqlite3ColumnOfIndex(Index *pIdx, i16 iCol){-
825 int i;-
826 for(i=0; i<pIdx->nColumn; i++){
i<pIdx->nColumnDescription
TRUEevaluated 1207072 times by 21 tests
Evaluated by:
  • Self test (2)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (35)
  • Self test (36)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (74)
  • Self test (86)
  • Self test (87)
  • Self test (88)
FALSEevaluated 37197 times by 6 tests
Evaluated by:
  • Self test (24)
  • Self test (28)
  • Self test (35)
  • Self test (36)
  • Self test (438)
  • Self test (47)
37197-1207072
827 if( iCol==pIdx->aiColumn[i] ) return i;
executed 46096 times by 19 tests: return i;
Executed by:
  • Self test (2)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (74)
  • Self test (86)
  • Self test (87)
  • Self test (88)
iCol==pIdx->aiColumn[i]Description
TRUEevaluated 46096 times by 19 tests
Evaluated by:
  • Self test (2)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (42)
  • Self test (43)
  • Self test (438)
  • Self test (44)
  • Self test (45)
  • Self test (46)
  • Self test (47)
  • Self test (53)
  • Self test (74)
  • Self test (86)
  • Self test (87)
  • Self test (88)
FALSEevaluated 1160976 times by 12 tests
Evaluated by:
  • Self test (2)
  • Self test (24)
  • Self test (28)
  • Self test (3)
  • Self test (35)
  • Self test (36)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (86)
  • Self test (87)
  • Self test (88)
46096-1160976
828 }
executed 1160976 times by 12 tests: end of block
Executed by:
  • Self test (2)
  • Self test (24)
  • Self test (28)
  • Self test (3)
  • Self test (35)
  • Self test (36)
  • Self test (438)
  • Self test (47)
  • Self test (53)
  • Self test (86)
  • Self test (87)
  • Self test (88)
1160976
829 return -1;
executed 37197 times by 6 tests: return -1;
Executed by:
  • Self test (24)
  • Self test (28)
  • Self test (35)
  • Self test (36)
  • Self test (438)
  • Self test (47)
37197
830}-
831-
832/*-
833** Begin constructing a new table representation in memory. This is-
834** the first of several action routines that get called in response-
835** to a CREATE TABLE statement. In particular, this routine is called-
836** after seeing tokens "CREATE" and "TABLE" and the table name. The isTemp-
837** flag is true if the table should be stored in the auxiliary database-
838** file instead of in the main database file. This is normally the case-
839** when the "TEMP" or "TEMPORARY" keyword occurs in between-
840** CREATE and TABLE.-
841**-
842** The new table record is initialized and put in pParse->pNewTable.-
843** As more of the CREATE TABLE statement is parsed, additional action-
844** routines will be called to add more information to this record.-
845** At the end of the CREATE TABLE statement, the sqlite3EndTable() routine-
846** is called to complete the construction of the new table record.-
847*/-
848void sqlite3StartTable(-
849 Parse *pParse, /* Parser context */-
850 Token *pName1, /* First part of the name of the table or view */-
851 Token *pName2, /* Second part of the name of the table or view */-
852 int isTemp, /* True if this is a TEMP table */-
853 int isView, /* True if this is a VIEW */-
854 int isVirtual, /* True if this is a VIRTUAL table */-
855 int noErr /* Do nothing if table already exists */-
856){-
857 Table *pTable;-
858 char *zName = 0; /* The name of the new table */-
859 sqlite3 *db = pParse->db;-
860 Vdbe *v;-
861 int iDb; /* Database number to create the table in */-
862 Token *pName; /* Unqualified name of the table to create */-
863-
864 if( db->init.busy && db->init.newTnum==1 ){
db->init.busyDescription
TRUEevaluated 80703 times by 436 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 23760 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)
  • ...
db->init.newTnum==1Description
TRUEevaluated 40580 times by 436 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 40123 times by 434 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)
  • ...
23760-80703
865 /* Special case: Parsing the sqlite_master or sqlite_temp_master schema */-
866 iDb = db->init.iDb;-
867 zName = sqlite3DbStrDup(db, SCHEMA_TABLE(iDb));-
868 pName = pName1;-
869 }else{
executed 40580 times by 436 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)
  • ...
40580
870 /* The common case */-
871 iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName);-
872 if( iDb<0 ) return;
executed 5 times by 1 test: return;
Executed by:
  • Self test (438)
iDb<0Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 63878 times by 434 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)
  • ...
5-63878
873 if( !OMIT_TEMPDB && isTemp && pName2->n>0 && iDb!=1 ){
isTempDescription
TRUEevaluated 321 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 63557 times by 434 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)
  • ...
pName2->n>0Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 308 times by 1 test
Evaluated by:
  • Self test (438)
iDb!=1Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
5-63557
874 /* If creating a temp table, the name may not be qualified. Unless -
875 ** the database name is "temp" anyway. */-
876 sqlite3ErrorMsg(pParse, "temporary table name must be unqualified");-
877 return;
executed 5 times by 1 test: return;
Executed by:
  • Self test (438)
5
878 }-
879 if( !OMIT_TEMPDB && isTemp ) iDb = 1;
executed 316 times by 1 test: iDb = 1;
Executed by:
  • Self test (438)
isTempDescription
TRUEevaluated 316 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 63557 times by 434 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)
  • ...
316-63557
880 zName = sqlite3NameFromToken(db, pName);-
881 if( IN_RENAME_OBJECT ){
(pParse->eParseMode>=2)Description
TRUEevaluated 905 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 62968 times by 434 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)
  • ...
905-62968
882 sqlite3RenameTokenMap(pParse, (void*)zName, pName);-
883 }
executed 905 times by 1 test: end of block
Executed by:
  • Self test (438)
905
884 }
executed 63873 times by 434 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)
  • ...
63873
885 pParse->sNameToken = *pName;-
886 if( zName==0 ) return;
executed 29 times by 1 test: return;
Executed by:
  • Self test (438)
zName==0Description
TRUEevaluated 29 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 104424 times by 436 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)
  • ...
29-104424
887 if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){
0!=sqlite3Chec...pParse, zName)Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 104413 times by 436 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)
  • ...
11-104413
888 goto begin_table_error;
executed 11 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
11
889 }-
890 if( db->init.iDb==1 ) isTemp = 1;
executed 20259 times by 435 tests: isTemp = 1;
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)
  • ...
db->init.iDb==1Description
TRUEevaluated 20259 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 84154 times by 436 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)
  • ...
20259-84154
891#ifndef SQLITE_OMIT_AUTHORIZATION-
892 assert( isTemp==0 || isTemp==1 );-
893 assert( isView==0 || isView==1 );-
894 {-
895 static const u8 aCode[] = {-
896 SQLITE_CREATE_TABLE,-
897 SQLITE_CREATE_TEMP_TABLE,-
898 SQLITE_CREATE_VIEW,-
899 SQLITE_CREATE_TEMP_VIEW-
900 };-
901 char *zDb = db->aDb[iDb].zDbSName;-
902 if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(isTemp), 0, zDb) ){
sqlite3AuthChe...ter"), 0, zDb)Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 104404 times by 436 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)
  • ...
9-104404
903 goto begin_table_error;
executed 9 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
9
904 }-
905 if( !isVirtual && sqlite3AuthCheck(pParse, (int)aCode[isTemp+2*isView],
!isVirtualDescription
TRUEevaluated 102181 times by 436 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 2223 times by 1 test
Evaluated by:
  • Self test (438)
sqlite3AuthChe...zName, 0, zDb)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 102173 times by 436 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)
  • ...
8-102181
906 zName, 0, zDb) ){
sqlite3AuthChe...zName, 0, zDb)Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 102173 times by 436 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)
  • ...
8-102173
907 goto begin_table_error;
executed 8 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
8
908 }-
909 }-
910#endif-
911-
912 /* Make sure the new table name does not collide with an existing-
913 ** index or table name in the same database. Issue an error message if-
914 ** it does. The exception is if the statement being parsed was passed-
915 ** to an sqlite3_declare_vtab() call. In that case only the column names-
916 ** and types will be used, so there is no need to test for namespace-
917 ** collisions.-
918 */-
919 if( !IN_SPECIAL_PARSE ){
!(pParse->eParseMode!=0)Description
TRUEevaluated 93875 times by 436 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 10521 times by 1 test
Evaluated by:
  • Self test (438)
10521-93875
920 char *zDb = db->aDb[iDb].zDbSName;-
921 if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
0!=sqlite3ReadSchema(pParse)Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 93872 times by 436 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)
  • ...
3-93872
922 goto begin_table_error;
executed 3 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
3
923 }-
924 pTable = sqlite3FindTable(db, zName, zDb);-
925 if( pTable ){
pTableDescription
TRUEevaluated 43 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 93829 times by 436 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)
  • ...
43-93829
926 if( !noErr ){
!noErrDescription
TRUEevaluated 19 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 24 times by 1 test
Evaluated by:
  • Self test (438)
19-24
927 sqlite3ErrorMsg(pParse, "table %T already exists", pName);-
928 }else{
executed 19 times by 1 test: end of block
Executed by:
  • Self test (438)
19
929 assert( !db->init.busy || CORRUPT_DB );-
930 sqlite3CodeVerifySchema(pParse, iDb);-
931 }
executed 24 times by 1 test: end of block
Executed by:
  • Self test (438)
24
932 goto begin_table_error;
executed 43 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
43
933 }-
934 if( sqlite3FindIndex(db, zName, zDb)!=0 ){
sqlite3FindInd...zName, zDb)!=0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 93823 times by 436 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)
  • ...
6-93823
935 sqlite3ErrorMsg(pParse, "there is already an index named %s", zName);-
936 goto begin_table_error;
executed 6 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
6
937 }-
938 }
executed 93823 times by 436 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)
  • ...
93823
939-
940 pTable = sqlite3DbMallocZero(db, sizeof(Table));-
941 if( pTable==0 ){
pTable==0Description
TRUEevaluated 26 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 104318 times by 436 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)
  • ...
26-104318
942 assert( db->mallocFailed );-
943 pParse->rc = SQLITE_NOMEM_BKPT;-
944 pParse->nErr++;-
945 goto begin_table_error;
executed 26 times by 1 test: goto begin_table_error;
Executed by:
  • Self test (438)
26
946 }-
947 pTable->zName = zName;-
948 pTable->iPKey = -1;-
949 pTable->pSchema = db->aDb[iDb].pSchema;-
950 pTable->nTabRef = 1;-
951#ifdef SQLITE_DEFAULT_ROWEST-
952 pTable->nRowLogEst = sqlite3LogEst(SQLITE_DEFAULT_ROWEST);-
953#else-
954 pTable->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) );-
955#endif-
956 assert( pParse->pNewTable==0 );-
957 pParse->pNewTable = pTable;-
958-
959 /* If this is the magic sqlite_sequence table used by autoincrement,-
960 ** then record a pointer to this table in the main database structure-
961 ** so that INSERT can find the table easily.-
962 */-
963#ifndef SQLITE_OMIT_AUTOINCREMENT-
964 if( !pParse->nested && strcmp(zName, "sqlite_sequence")==0 ){
never executed: __result = (((const unsigned char *) (const char *) ( zName ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
never executed: __result = (((const unsigned char *) (const char *) ( "sqlite_sequence" ))[3] - __s2[3]);
never executed: end of block
never executed: end of block
!pParse->nestedDescription
TRUEevaluated 104212 times by 436 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 106 times by 1 test
Evaluated by:
  • Self test (438)
__extension__ ..." )))); }) ==0Description
TRUEevaluated 91 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 104121 times by 436 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)
  • ...
__s1_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s1_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 0Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 1Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
__s2_len > 2Description
TRUEnever evaluated
FALSEnever evaluated
__result == 0Description
TRUEnever evaluated
FALSEnever evaluated
0-104212
965 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );-
966 pTable->pSchema->pSeqTab = pTable;-
967 }
executed 91 times by 1 test: end of block
Executed by:
  • Self test (438)
91
968#endif-
969-
970 /* Begin generating the code that will insert the table record into-
971 ** the SQLITE_MASTER table. Note in particular that we must go ahead-
972 ** and allocate the record number for the table entry now. Before any-
973 ** PRIMARY KEY or UNIQUE keywords are parsed. Those keywords will cause-
974 ** indices to be created and the table record must come before the -
975 ** indices. Hence, the record number for the table must be allocated-
976 ** now.-
977 */-
978 if( !db->init.busy && (v = sqlite3GetVdbe(pParse))!=0 ){
!db->init.busyDescription
TRUEevaluated 23673 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 80645 times by 436 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)
  • ...
(v = sqlite3Ge...be(pParse))!=0Description
TRUEevaluated 23673 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)
  • ...
FALSEnever evaluated
0-80645
979 int addr1;-
980 int fileFormat;-
981 int reg1, reg2, reg3;-
982 /* nullRow[] is an OP_Record encoding of a row containing 5 NULLs */-
983 static const char nullRow[] = { 6, 0, 0, 0, 0, 0 };-
984 sqlite3BeginWriteOperation(pParse, 1, iDb);-
985-
986#ifndef SQLITE_OMIT_VIRTUALTABLE-
987 if( isVirtual ){
isVirtualDescription
TRUEevaluated 1027 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 22646 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)
  • ...
1027-22646
988 sqlite3VdbeAddOp0(v, OP_VBegin);-
989 }
executed 1027 times by 1 test: end of block
Executed by:
  • Self test (438)
1027
990#endif-
991-
992 /* If the file format and encoding in the database have not been set, -
993 ** set them now.-
994 */-
995 reg1 = pParse->regRowid = ++pParse->nMem;-
996 reg2 = pParse->regRoot = ++pParse->nMem;-
997 reg3 = ++pParse->nMem;-
998 sqlite3VdbeAddOp3(v, OP_ReadCookie, iDb, reg3, BTREE_FILE_FORMAT);-
999 sqlite3VdbeUsesBtree(v, iDb);-
1000 addr1 = sqlite3VdbeAddOp1(v, OP_If, reg3); VdbeCoverage(v);-
1001 fileFormat = (db->flags & SQLITE_LegacyFileFmt)!=0 ?
(db->flags & 0x00000002)!=0Description
TRUEevaluated 24 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 23649 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)
  • ...
24-23649
1002 1 : SQLITE_MAX_FILE_FORMAT;-
1003 sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_FILE_FORMAT, fileFormat);-
1004 sqlite3VdbeAddOp3(v, OP_SetCookie, iDb, BTREE_TEXT_ENCODING, ENC(db));-
1005 sqlite3VdbeJumpHere(v, addr1);-
1006-
1007 /* This just creates a place-holder record in the sqlite_master table.-
1008 ** The record created does not contain anything yet. It will be replaced-
1009 ** by the real entry in code generated at sqlite3EndTable().-
1010 **-
1011 ** The rowid for the new entry is left in register pParse->regRowid.-
1012 ** The root page number of the new table is left in reg pParse->regRoot.-
1013 ** The rowid and root page number values are needed by the code that-
1014 ** sqlite3EndTable will generate.-
1015 */-
1016#if !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE)-
1017 if( isView || isVirtual ){
isViewDescription
TRUEevaluated 558 times by 6 tests
Evaluated by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (438)
FALSEevaluated 23115 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)
  • ...
isVirtualDescription
TRUEevaluated 1027 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 22088 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)
  • ...
558-23115
1018 sqlite3VdbeAddOp2(v, OP_Integer, 0, reg2);-
1019 }else
executed 1585 times by 6 tests: end of block
Executed by:
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (438)
1585
1020#endif-
1021 {-
1022 pParse->addrCrTab =-
1023 sqlite3VdbeAddOp3(v, OP_CreateBtree, iDb, reg2, BTREE_INTKEY);-
1024 }
executed 22088 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)
  • ...
22088
1025 sqlite3OpenMasterTable(pParse, iDb);-
1026 sqlite3VdbeAddOp2(v, OP_NewRowid, 0, reg1);-
1027 sqlite3VdbeAddOp4(v, OP_Blob, 6, reg3, 0, nullRow, P4_STATIC);-
1028 sqlite3VdbeAddOp3(v, OP_Insert, 0, reg3, reg1);-
1029 sqlite3VdbeChangeP5(v, OPFLAG_APPEND);-
1030 sqlite3VdbeAddOp0(v, OP_Close);-
1031 }
executed 23673 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)
  • ...
23673
1032-
1033 /* Normal (non-error) return. */-
1034 return;
executed 104318 times by 436 tests: return;
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)
  • ...
104318
1035-
1036 /* If an error occurs, we jump here */-
1037begin_table_error:-
1038 sqlite3DbFree(db, zName);-
1039 return;
executed 106 times by 1 test: return;
Executed by:
  • Self test (438)
106
1040}-
1041-
1042/* Set properties of a table column based on the (magical)-
1043** name of the column.-
1044*/-
1045#if SQLITE_ENABLE_HIDDEN_COLUMNS-
1046void sqlite3ColumnPropertiesFromName(Table *pTab, Column *pCol){-
1047 if( sqlite3_strnicmp(pCol->zName, "__hidden__", 10)==0 ){-
1048 pCol->colFlags |= COLFLAG_HIDDEN;-
1049 }else if( pTab && pCol!=pTab->aCol && (pCol[-1].colFlags & COLFLAG_HIDDEN) ){-
1050 pTab->tabFlags |= TF_OOOHidden;-
1051 }-
1052}-
1053#endif-
1054-
1055-
1056/*-
1057** Add a new column to the table currently being constructed.-
1058**-
1059** The parser calls this routine once for each column declaration-
1060** in a CREATE TABLE statement. sqlite3StartTable() gets called-
1061** first to get things going. Then this routine is called for each-
1062** column.-
1063*/-
1064void sqlite3AddColumn(Parse *pParse, Token *pName, Token *pType){-
1065 Table *p;-
1066 int i;-
1067 char *z;-
1068 char *zType;-
1069 Column *pCol;-
1070 sqlite3 *db = pParse->db;-
1071 if( (p = pParse->pNewTable)==0 ) return;
executed 38 times by 1 test: return;
Executed by:
  • Self test (438)
(p = pParse->pNewTable)==0Description
TRUEevaluated 38 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 421502 times by 436 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)
  • ...
38-421502
1072 if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){
p->nCol+1>db->aLimit[2]Description
TRUEevaluated 3 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 421499 times by 436 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)
  • ...
3-421499
1073 sqlite3ErrorMsg(pParse, "too many columns on %s", p->zName);-
1074 return;
executed 3 times by 1 test: return;
Executed by:
  • Self test (438)
3
1075 }-
1076 z = sqlite3DbMallocRaw(db, pName->n + pType->n + 2);-
1077 if( z==0 ) return;
executed 118 times by 1 test: return;
Executed by:
  • Self test (438)
z==0Description
TRUEevaluated 118 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 421381 times by 436 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)
  • ...
118-421381
1078 if( IN_RENAME_OBJECT ) sqlite3RenameTokenMap(pParse, (void*)z, pName);
executed 2125 times by 1 test: sqlite3RenameTokenMap(pParse, (void*)z, pName);
Executed by:
  • Self test (438)
(pParse->eParseMode>=2)Description
TRUEevaluated 2125 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 419256 times by 436 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)
  • ...
2125-419256
1079 memcpy(z, pName->z, pName->n);-
1080 z[pName->n] = 0;-
1081 sqlite3Dequote(z);-
1082 for(i=0; i<p->nCol; i++){
i<p->nColDescription
TRUEevaluated 11595724 times by 436 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 421372 times by 436 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)
  • ...
421372-11595724
1083 if( sqlite3_stricmp(z, p->aCol[i].zName)==0 ){
sqlite3_stricm...l[i].zName)==0Description
TRUEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11595715 times by 436 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)
  • ...
9-11595715
1084 sqlite3ErrorMsg(pParse, "duplicate column name: %s", z);-
1085 sqlite3DbFree(db, z);-
1086 return;
executed 9 times by 1 test: return;
Executed by:
  • Self test (438)
9
1087 }-
1088 }
executed 11595715 times by 436 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)
  • ...
11595715
1089 if( (p->nCol & 0x7)==0 ){
(p->nCol & 0x7)==0Description
TRUEevaluated 103336 times by 436 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 318036 times by 436 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)
  • ...
103336-318036
1090 Column *aNew;-
1091 aNew = sqlite3DbRealloc(db,p->aCol,(p->nCol+8)*sizeof(p->aCol[0]));-
1092 if( aNew==0 ){
aNew==0Description
TRUEevaluated 27 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 103309 times by 436 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)
  • ...
27-103309
1093 sqlite3DbFree(db, z);-
1094 return;
executed 27 times by 1 test: return;
Executed by:
  • Self test (438)
27
1095 }-
1096 p->aCol = aNew;-
1097 }
executed 103309 times by 436 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)
  • ...
103309
1098 pCol = &p->aCol[p->nCol];-
1099 memset(pCol, 0, sizeof(p->aCol[0]));-
1100 pCol->zName = z;-
1101 sqlite3ColumnPropertiesFromName(p, pCol);-
1102 -
1103 if( pType->n==0 ){
pType->n==0Description
TRUEevaluated 151417 times by 102 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 (11)
  • Self test (12)
  • Self test (13)
  • Self test (14)
  • Self test (15)
  • Self test (16)
  • Self test (17)
  • Self test (18)
  • Self test (19)
  • Self test (2)
  • Self test (20)
  • Self test (21)
  • Self test (22)
  • Self test (23)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • ...
FALSEevaluated 269928 times by 436 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)
  • ...
151417-269928
1104 /* If there is no type specified, columns have the default affinity-
1105 ** 'BLOB' with a default size of 4 bytes. */-
1106 pCol->affinity = SQLITE_AFF_BLOB;-
1107 pCol->szEst = 1;-
1108#ifdef SQLITE_ENABLE_SORTER_REFERENCES-
1109 if( 4>=sqlite3GlobalConfig.szSorterRef ){-
1110 pCol->colFlags |= COLFLAG_SORTERREF;-
1111 }-
1112#endif-
1113 }else{
executed 151417 times by 102 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 (11)
  • Self test (12)
  • Self test (13)
  • Self test (14)
  • Self test (15)
  • Self test (16)
  • Self test (17)
  • Self test (18)
  • Self test (19)
  • Self test (2)
  • Self test (20)
  • Self test (21)
  • Self test (22)
  • Self test (23)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • ...
151417
1114 zType = z + sqlite3Strlen30(z) + 1;-
1115 memcpy(zType, pType->z, pType->n);-
1116 zType[pType->n] = 0;-
1117 sqlite3Dequote(zType);-
1118 pCol->affinity = sqlite3AffinityType(zType, pCol);-
1119 pCol->colFlags |= COLFLAG_HASTYPE;-
1120 }
executed 269928 times by 436 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)
  • ...
269928
1121 p->nCol++;-
1122 pParse->constraintName.n = 0;-
1123}
executed 421345 times by 436 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)
  • ...
421345
1124-
1125/*-
1126** This routine is called by the parser while in the middle of-
1127** parsing a CREATE TABLE statement. A "NOT NULL" constraint has-
1128** been seen on a column. This routine sets the notNull flag on-
1129** the column currently under construction.-
1130*/-
1131void sqlite3AddNotNull(Parse *pParse, int onError){-
1132 Table *p;-
1133 Column *pCol;-
1134 p = pParse->pNewTable;-
1135 if( p==0 || NEVER(p->nCol<1) ) return;
never executed: return;
p==0Description
TRUEnever evaluated
FALSEevaluated 1551 times by 1 test
Evaluated by:
  • Self test (438)
(p->nCol<1)Description
TRUEnever evaluated
FALSEevaluated 1551 times by 1 test
Evaluated by:
  • Self test (438)
0-1551
1136 pCol = &p->aCol[p->nCol-1];-
1137 pCol->notNull = (u8)onError;-
1138 p->tabFlags |= TF_HasNotNull;-
1139-
1140 /* Set the uniqNotNull flag on any UNIQUE or PK indexes already created-
1141 ** on this column. */-
1142 if( pCol->colFlags & COLFLAG_UNIQUE ){
pCol->colFlags & 0x0008Description
TRUEevaluated 65 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1486 times by 1 test
Evaluated by:
  • Self test (438)
65-1486
1143 Index *pIdx;-
1144 for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
pIdxDescription
TRUEevaluated 70 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 65 times by 1 test
Evaluated by:
  • Self test (438)
65-70
1145 assert( pIdx->nKeyCol==1 && pIdx->onError!=OE_None );-
1146 if( pIdx->aiColumn[0]==p->nCol-1 ){
pIdx->aiColumn[0]==p->nCol-1Description
TRUEevaluated 65 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
5-65
1147 pIdx->uniqNotNull = 1;-
1148 }
executed 65 times by 1 test: end of block
Executed by:
  • Self test (438)
65
1149 }
executed 70 times by 1 test: end of block
Executed by:
  • Self test (438)
70
1150 }
executed 65 times by 1 test: end of block
Executed by:
  • Self test (438)
65
1151}
executed 1551 times by 1 test: end of block
Executed by:
  • Self test (438)
1551
1152-
1153/*-
1154** Scan the column type name zType (length nType) and return the-
1155** associated affinity type.-
1156**-
1157** This routine does a case-independent search of zType for the -
1158** substrings in the following table. If one of the substrings is-
1159** found, the corresponding affinity is returned. If zType contains-
1160** more than one of the substrings, entries toward the top of -
1161** the table take priority. For example, if zType is 'BLOBINT', -
1162** SQLITE_AFF_INTEGER is returned.-
1163**-
1164** Substring | Affinity-
1165** ---------------------------------
1166** 'INT' | SQLITE_AFF_INTEGER-
1167** 'CHAR' | SQLITE_AFF_TEXT-
1168** 'CLOB' | SQLITE_AFF_TEXT-
1169** 'TEXT' | SQLITE_AFF_TEXT-
1170** 'BLOB' | SQLITE_AFF_BLOB-
1171** 'REAL' | SQLITE_AFF_REAL-
1172** 'FLOA' | SQLITE_AFF_REAL-
1173** 'DOUB' | SQLITE_AFF_REAL-
1174**-
1175** If none of the substrings in the above table are found,-
1176** SQLITE_AFF_NUMERIC is returned.-
1177*/-
1178char sqlite3AffinityType(const char *zIn, Column *pCol){-
1179 u32 h = 0;-
1180 char aff = SQLITE_AFF_NUMERIC;-
1181 const char *zChar = 0;-
1182-
1183 assert( zIn!=0 );-
1184 while( zIn[0] ){
zIn[0]Description
TRUEevaluated 1081246 times by 436 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 212604 times by 436 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)
  • ...
212604-1081246
1185 h = (h<<8) + sqlite3UpperToLower[(*zIn)&0xff];-
1186 zIn++;-
1187 if( h==(('c'<<24)+('h'<<16)+('a'<<8)+'r') ){ /* CHAR */
h==(('c'<<24)+...+('a'<<8)+'r')Description
TRUEevaluated 505 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1080741 times by 436 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)
  • ...
505-1080741
1188 aff = SQLITE_AFF_TEXT;-
1189 zChar = zIn;-
1190 }else if( h==(('c'<<24)+('l'<<16)+('o'<<8)+'b') ){ /* CLOB */
executed 505 times by 1 test: end of block
Executed by:
  • Self test (438)
h==(('c'<<24)+...+('o'<<8)+'b')Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1080736 times by 436 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)
  • ...
5-1080736
1191 aff = SQLITE_AFF_TEXT;-
1192 }else if( h==(('t'<<24)+('e'<<16)+('x'<<8)+'t') ){ /* TEXT */
executed 5 times by 1 test: end of block
Executed by:
  • Self test (438)
h==(('t'<<24)+...+('x'<<8)+'t')Description
TRUEevaluated 191576 times by 436 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 889160 times by 436 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)
  • ...
5-889160
1193 aff = SQLITE_AFF_TEXT;-
1194 }else if( h==(('b'<<24)+('l'<<16)+('o'<<8)+'b') /* BLOB */
executed 191576 times by 436 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)
  • ...
h==(('b'<<24)+...+('o'<<8)+'b')Description
TRUEevaluated 1602 times by 333 tests
Evaluated by:
  • 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)
  • Self test (127)
  • Self test (128)
  • Self test (129)
  • Self test (130)
  • ...
FALSEevaluated 887558 times by 436 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)
  • ...
1602-887558
1195 && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){
aff=='C'Description
TRUEevaluated 1602 times by 333 tests
Evaluated by:
  • 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)
  • Self test (127)
  • Self test (128)
  • Self test (129)
  • Self test (130)
  • ...
FALSEnever evaluated
aff=='E'Description
TRUEnever evaluated
FALSEnever evaluated
0-1602
1196 aff = SQLITE_AFF_BLOB;-
1197 if( zIn[0]=='(' ) zChar = zIn;
never executed: zChar = zIn;
zIn[0]=='('Description
TRUEnever evaluated
FALSEevaluated 1602 times by 333 tests
Evaluated by:
  • 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)
  • Self test (127)
  • Self test (128)
  • Self test (129)
  • Self test (130)
  • ...
0-1602
1198#ifndef SQLITE_OMIT_FLOATING_POINT-
1199 }else if( h==(('r'<<24)+('e'<<16)+('a'<<8)+'l') /* REAL */
executed 1602 times by 333 tests: end of block
Executed by:
  • 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)
  • Self test (127)
  • Self test (128)
  • Self test (129)
  • Self test (130)
  • ...
h==(('r'<<24)+...+('a'<<8)+'l')Description
TRUEevaluated 1011 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 886547 times by 436 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)
  • ...
1011-886547
1200 && aff==SQLITE_AFF_NUMERIC ){
aff=='C'Description
TRUEevaluated 1011 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-1011
1201 aff = SQLITE_AFF_REAL;-
1202 }else if( h==(('f'<<24)+('l'<<16)+('o'<<8)+'a') /* FLOA */
executed 1011 times by 1 test: end of block
Executed by:
  • Self test (438)
h==(('f'<<24)+...+('o'<<8)+'a')Description
TRUEevaluated 72 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 886475 times by 436 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)
  • ...
72-886475
1203 && aff==SQLITE_AFF_NUMERIC ){
aff=='C'Description
TRUEevaluated 72 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-72
1204 aff = SQLITE_AFF_REAL;-
1205 }else if( h==(('d'<<24)+('o'<<16)+('u'<<8)+'b') /* DOUB */
executed 72 times by 1 test: end of block
Executed by:
  • Self test (438)
h==(('d'<<24)+...+('u'<<8)+'b')Description
TRUEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 886461 times by 436 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)
  • ...
14-886461
1206 && aff==SQLITE_AFF_NUMERIC ){
aff=='C'Description
TRUEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-14
1207 aff = SQLITE_AFF_REAL;-
1208#endif-
1209 }else if( (h&0x00FFFFFF)==(('i'<<16)+('n'<<8)+'t') ){ /* INT */
executed 14 times by 1 test: end of block
Executed by:
  • Self test (438)
(h&0x00FFFFFF)...+('n'<<8)+'t')Description
TRUEevaluated 62844 times by 436 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 823617 times by 436 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)
  • ...
14-823617
1210 aff = SQLITE_AFF_INTEGER;-
1211 break;
executed 62844 times by 436 tests: break;
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)
  • ...
62844
1212 }-
1213 }
executed 1018402 times by 436 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)
  • ...
1018402
1214-
1215 /* If pCol is not NULL, store an estimate of the field size. The-
1216 ** estimate is scaled so that the size of an integer is 1. */-
1217 if( pCol ){
pColDescription
TRUEevaluated 269928 times by 436 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 5520 times by 1 test
Evaluated by:
  • Self test (438)
5520-269928
1218 int v = 0; /* default size is approx 4 bytes */-
1219 if( aff<SQLITE_AFF_NUMERIC ){
aff<'C'Description
TRUEevaluated 193286 times by 436 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 76642 times by 436 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)
  • ...
76642-193286
1220 if( zChar ){
zCharDescription
TRUEevaluated 496 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 192790 times by 436 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)
  • ...
496-192790
1221 while( zChar[0] ){
zChar[0]Description
TRUEevaluated 890 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 80 times by 1 test
Evaluated by:
  • Self test (438)
80-890
1222 if( sqlite3Isdigit(zChar[0]) ){
(sqlite3CtypeM...har[0])]&0x04)Description
TRUEevaluated 416 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 474 times by 1 test
Evaluated by:
  • Self test (438)
416-474
1223 /* BLOB(k), VARCHAR(k), CHAR(k) -> r=(k/4+1) */-
1224 sqlite3GetInt32(zChar, &v);-
1225 break;
executed 416 times by 1 test: break;
Executed by:
  • Self test (438)
416
1226 }-
1227 zChar++;-
1228 }
executed 474 times by 1 test: end of block
Executed by:
  • Self test (438)
474
1229 }else{
executed 496 times by 1 test: end of block
Executed by:
  • Self test (438)
496
1230 v = 16; /* BLOB, TEXT, CLOB -> r=5 (approx 20 bytes)*/-
1231 }
executed 192790 times by 436 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)
  • ...
192790
1232 }-
1233#ifdef SQLITE_ENABLE_SORTER_REFERENCES-
1234 if( v>=sqlite3GlobalConfig.szSorterRef ){-
1235 pCol->colFlags |= COLFLAG_SORTERREF;-
1236 }-
1237#endif-
1238 v = v/4 + 1;-
1239 if( v>255 ) v = 255;
never executed: v = 255;
v>255Description
TRUEnever evaluated
FALSEevaluated 269928 times by 436 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)
  • ...
0-269928
1240 pCol->szEst = v;-
1241 }
executed 269928 times by 436 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)
  • ...
269928
1242 return aff;
executed 275448 times by 436 tests: return aff;
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)
  • ...
275448
1243}-
1244-
1245/*-
1246** The expression is the default value for the most recently added column-
1247** of the table currently under construction.-
1248**-
1249** Default value expressions must be constant. Raise an exception if this-
1250** is not the case.-
1251**-
1252** This routine is called by the parser while in the middle of-
1253** parsing a CREATE TABLE statement.-
1254*/-
1255void sqlite3AddDefaultValue(-
1256 Parse *pParse, /* Parsing context */-
1257 Expr *pExpr, /* The parsed expression of the default value */-
1258 const char *zStart, /* Start of the default value text */-
1259 const char *zEnd /* First character past end of defaut value text */-
1260){-
1261 Table *p;-
1262 Column *pCol;-
1263 sqlite3 *db = pParse->db;-
1264 p = pParse->pNewTable;-
1265 if( p!=0 ){
p!=0Description
TRUEevaluated 1590 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-1590
1266 pCol = &(p->aCol[p->nCol-1]);-
1267 if( !sqlite3ExprIsConstantOrFunction(pExpr, db->init.busy) ){
!sqlite3ExprIs...db->init.busy)Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1585 times by 1 test
Evaluated by:
  • Self test (438)
5-1585
1268 sqlite3ErrorMsg(pParse, "default value of column [%s] is not constant",-
1269 pCol->zName);-
1270 }else{
executed 5 times by 1 test: end of block
Executed by:
  • Self test (438)
5
1271 /* A copy of pExpr is used instead of the original, as pExpr contains-
1272 ** tokens that point to volatile memory.-
1273 */-
1274 Expr x;-
1275 sqlite3ExprDelete(db, pCol->pDflt);-
1276 memset(&x, 0, sizeof(x));-
1277 x.op = TK_SPAN;-
1278 x.u.zToken = sqlite3DbSpanDup(db, zStart, zEnd);-
1279 x.pLeft = pExpr;-
1280 x.flags = EP_Skip;-
1281 pCol->pDflt = sqlite3ExprDup(db, &x, EXPRDUP_REDUCE);-
1282 sqlite3DbFree(db, x.u.zToken);-
1283 }
executed 1585 times by 1 test: end of block
Executed by:
  • Self test (438)
1585
1284 }-
1285 if( IN_RENAME_OBJECT ){
(pParse->eParseMode>=2)Description
TRUEevaluated 24 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1566 times by 1 test
Evaluated by:
  • Self test (438)
24-1566
1286 sqlite3RenameExprUnmap(pParse, pExpr);-
1287 }
executed 24 times by 1 test: end of block
Executed by:
  • Self test (438)
24
1288 sqlite3ExprDelete(db, pExpr);-
1289}
executed 1590 times by 1 test: end of block
Executed by:
  • Self test (438)
1590
1290-
1291/*-
1292** Backwards Compatibility Hack:-
1293** -
1294** Historical versions of SQLite accepted strings as column names in-
1295** indexes and PRIMARY KEY constraints and in UNIQUE constraints. Example:-
1296**-
1297** CREATE TABLE xyz(a,b,c,d,e,PRIMARY KEY('a'),UNIQUE('b','c' COLLATE trim)-
1298** CREATE INDEX abc ON xyz('c','d' DESC,'e' COLLATE nocase DESC);-
1299**-
1300** This is goofy. But to preserve backwards compatibility we continue to-
1301** accept it. This routine does the necessary conversion. It converts-
1302** the expression given in its argument from a TK_STRING into a TK_ID-
1303** if the expression is just a TK_STRING with an optional COLLATE clause.-
1304** If the epxression is anything other than TK_STRING, the expression is-
1305** unchanged.-
1306*/-
1307static void sqlite3StringToId(Expr *p){-
1308 if( p->op==TK_STRING ){
p->op==106Description
TRUEevaluated 47 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21792 times by 394 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • ...
47-21792
1309 p->op = TK_ID;-
1310 }else if( p->op==TK_COLLATE && p->pLeft->op==TK_STRING ){
executed 47 times by 1 test: end of block
Executed by:
  • Self test (438)
p->op==102Description
TRUEevaluated 158 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21634 times by 394 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • ...
p->pLeft->op==106Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 145 times by 1 test
Evaluated by:
  • Self test (438)
13-21634
1311 p->pLeft->op = TK_ID;-
1312 }
executed 13 times by 1 test: end of block
Executed by:
  • Self test (438)
13
1313}
executed 21839 times by 394 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • Self test (100)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • ...
21839
1314-
1315/*-
1316** Designate the PRIMARY KEY for the table. pList is a list of names -
1317** of columns that form the primary key. If pList is NULL, then the-
1318** most recently added column of the table is the primary key.-
1319**-
1320** A table can have at most one primary key. If the table already has-
1321** a primary key (and this is the second primary key) then create an-
1322** error.-
1323**-
1324** If the PRIMARY KEY is on a single column whose datatype is INTEGER,-
1325** then we will try to use that column as the rowid. Set the Table.iPKey-
1326** field of the table under construction to be the index of the-
1327** INTEGER PRIMARY KEY column. Table.iPKey is set to -1 if there is-
1328** no INTEGER PRIMARY KEY.-
1329**-
1330** If the key is not an INTEGER PRIMARY KEY, then create a unique-
1331** index for the key. No index is created for INTEGER PRIMARY KEYs.-
1332*/-
1333void sqlite3AddPrimaryKey(-
1334 Parse *pParse, /* Parsing context */-
1335 ExprList *pList, /* List of field names to be indexed */-
1336 int onError, /* What to do with a uniqueness conflict */-
1337 int autoInc, /* True if the AUTOINCREMENT keyword is present */-
1338 int sortOrder /* SQLITE_SO_ASC or SQLITE_SO_DESC */-
1339){-
1340 Table *pTab = pParse->pNewTable;-
1341 Column *pCol = 0;-
1342 int iCol = -1, i;-
1343 int nTerm;-
1344 if( pTab==0 ) goto primary_key_exit;
executed 1 time by 1 test: goto primary_key_exit;
Executed by:
  • Self test (438)
pTab==0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 16235 times by 353 tests
Evaluated by:
  • Self test (10)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • Self test (127)
  • ...
1-16235
1345 if( pTab->tabFlags & TF_HasPrimaryKey ){
pTab->tabFlags & 0x0004Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 16225 times by 353 tests
Evaluated by:
  • Self test (10)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • Self test (127)
  • ...
10-16225
1346 sqlite3ErrorMsg(pParse, -
1347 "table \"%s\" has more than one primary key", pTab->zName);-
1348 goto primary_key_exit;
executed 10 times by 1 test: goto primary_key_exit;
Executed by:
  • Self test (438)
10
1349 }-
1350 pTab->tabFlags |= TF_HasPrimaryKey;-
1351 if( pList==0 ){
pList==0Description
TRUEevaluated 15300 times by 353 tests
Evaluated by:
  • Self test (10)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • Self test (127)
  • ...
FALSEevaluated 925 times by 1 test
Evaluated by:
  • Self test (438)
925-15300
1352 iCol = pTab->nCol - 1;-
1353 pCol = &pTab->aCol[iCol];-
1354 pCol->colFlags |= COLFLAG_PRIMKEY;-
1355 nTerm = 1;-
1356 }else{
executed 15300 times by 353 tests: end of block
Executed by:
  • Self test (10)
  • 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)
  • Self test (122)
  • Self test (123)
  • Self test (124)
  • Self test (125)
  • Self test (126)
  • Self test (127)
  • ...
15300
1357 nTerm = pList->nExpr;-
1358 for(i=0; i<nTerm; i++){
i<nTermDescription
TRUEevaluated 2388 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 925 times by 1 test
Evaluated by:
  • Self test (438)
925-2388
1359 Expr *pCExpr = sqlite3ExprSkipCollate(pList->a[i].pExpr);-
1360 assert( pCExpr!=0 );-
1361 sqlite3StringToId(pCExpr);-
1362 if( pCExpr->op==TK_ID ){
pCExpr->op==59Description
TRUEevaluated 2386 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
2-2386