OpenCoverage

prepare.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/sqlite/src/src/prepare.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2** 2005 May 25-
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 the implementation of the sqlite3_prepare()-
13** interface, and routines that contribute to loading the database schema-
14** from disk.-
15*/-
16#include "sqliteInt.h"-
17-
18/*-
19** Fill the InitData structure with an error message that indicates-
20** that the database is corrupt.-
21*/-
22static void corruptSchema(-
23 InitData *pData, /* Initialization context */-
24 const char *zObj, /* Object being parsed at the point of error */-
25 const char *zExtra /* Error information */-
26){-
27 sqlite3 *db = pData->db;-
28 if( db->mallocFailed ){
db->mallocFailedDescription
TRUEnever evaluated
FALSEevaluated 44 times by 1 test
Evaluated by:
  • Self test (438)
0-44
29 pData->rc = SQLITE_NOMEM_BKPT;-
30 }else if( pData->pzErrMsg[0]!=0 ){
never executed: end of block
pData->pzErrMsg[0]!=0Description
TRUEevaluated 14 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 30 times by 1 test
Evaluated by:
  • Self test (438)
0-30
31 /* A error message has already been generated. Do not overwrite it */-
32 }else if( pData->mInitFlags & INITFLAG_AlterTable ){
executed 14 times by 1 test: end of block
Executed by:
  • Self test (438)
pData->mInitFlags & 0x0001Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 28 times by 1 test
Evaluated by:
  • Self test (438)
2-28
33 *pData->pzErrMsg = sqlite3DbStrDup(db, zExtra);-
34 pData->rc = SQLITE_ERROR;-
35 }else if( db->flags & SQLITE_WriteSchema ){
executed 2 times by 1 test: end of block
Executed by:
  • Self test (438)
db->flags & 0x00000001Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 18 times by 1 test
Evaluated by:
  • Self test (438)
2-18
36 pData->rc = SQLITE_CORRUPT_BKPT;-
37 }else{
executed 10 times by 1 test: end of block
Executed by:
  • Self test (438)
10
38 char *z;-
39 if( zObj==0 ) zObj = "?";
executed 5 times by 1 test: zObj = "?";
Executed by:
  • Self test (438)
zObj==0Description
TRUEevaluated 5 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
5-13
40 z = sqlite3MPrintf(db, "malformed database schema (%s)", zObj);-
41 if( zExtra && zExtra[0] ) z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
executed 1 time by 1 test: z = sqlite3MPrintf(db, "%z - %s", z, zExtra);
Executed by:
  • Self test (438)
zExtraDescription
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 17 times by 1 test
Evaluated by:
  • Self test (438)
zExtra[0]Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-17
42 *pData->pzErrMsg = z;-
43 pData->rc = SQLITE_CORRUPT_BKPT;-
44 }
executed 18 times by 1 test: end of block
Executed by:
  • Self test (438)
18
45}-
46-
47/*-
48** This is the callback routine for the code that initializes the-
49** database. See sqlite3Init() below for additional information.-
50** This routine is also called from the OP_ParseSchema opcode of the VDBE.-
51**-
52** Each callback contains the following information:-
53**-
54** argv[0] = name of thing being created-
55** argv[1] = root page number for table or index. 0 for trigger or view.-
56** argv[2] = SQL text for the CREATE statement.-
57**-
58*/-
59int sqlite3InitCallback(void *pInit, int argc, char **argv, char **NotUsed){-
60 InitData *pData = (InitData*)pInit;-
61 sqlite3 *db = pData->db;-
62 int iDb = pData->iDb;-
63-
64 assert( argc==3 );-
65 UNUSED_PARAMETER2(NotUsed, argc);-
66 assert( sqlite3_mutex_held(db->mutex) );-
67 DbClearProperty(db, iDb, DB_Empty);-
68 if( db->mallocFailed ){
db->mallocFailedDescription
TRUEnever evaluated
FALSEevaluated 97288 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-97288
69 corruptSchema(pData, argv[0], 0);-
70 return 1;
never executed: return 1;
0
71 }-
72-
73 assert( iDb>=0 && iDb<db->nDb );-
74 if( argv==0 ) return 0; /* Might happen if EMPTY_RESULT_CALLBACKS are on */
executed 2 times by 1 test: return 0;
Executed by:
  • Self test (438)
argv==0Description
TRUEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 97286 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)
  • ...
2-97286
75 if( argv[1]==0 ){
argv[1]==0Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 97273 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)
  • ...
13-97273
76 corruptSchema(pData, argv[0], 0);-
77 }else if( sqlite3_strnicmp(argv[2],"create ",7)==0 ){
executed 13 times by 1 test: end of block
Executed by:
  • Self test (438)
sqlite3_strnic...create ",7)==0Description
TRUEevaluated 92796 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 4477 times by 376 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)
  • ...
13-92796
78 /* Call the parser to process a CREATE TABLE, INDEX or VIEW.-
79 ** But because db->init.busy is set to 1, no VDBE code is generated-
80 ** or executed. All the parser does is build the internal data-
81 ** structures that describe the table, index, or view.-
82 */-
83 int rc;-
84 u8 saved_iDb = db->init.iDb;-
85 sqlite3_stmt *pStmt;-
86 TESTONLY(int rcp); /* Return code from sqlite3_prepare() */-
87-
88 assert( db->init.busy );-
89 db->init.iDb = iDb;-
90 db->init.newTnum = sqlite3Atoi(argv[1]);-
91 db->init.orphanTrigger = 0;-
92 TESTONLY(rcp = ) sqlite3_prepare(db, argv[2], -1, &pStmt, 0);-
93 rc = db->errCode;-
94 assert( (rc&0xFF)==(rcp&0xFF) );-
95 db->init.iDb = saved_iDb;-
96 /* assert( saved_iDb==0 || (db->mDbFlags & DBFLAG_Vacuum)!=0 ); */-
97 if( SQLITE_OK!=rc ){
0!=rcDescription
TRUEevaluated 326 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 92470 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)
  • ...
326-92470
98 if( db->init.orphanTrigger ){
db->init.orphanTriggerDescription
TRUEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 322 times by 1 test
Evaluated by:
  • Self test (438)
4-322
99 assert( iDb==1 );-
100 }else{
executed 4 times by 1 test: end of block
Executed by:
  • Self test (438)
4
101 pData->rc = rc;-
102 if( rc==SQLITE_NOMEM ){
rc==7Description
TRUEevaluated 311 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 11 times by 1 test
Evaluated by:
  • Self test (438)
11-311
103 sqlite3OomFault(db);-
104 }else if( rc!=SQLITE_INTERRUPT && (rc&0xFF)!=SQLITE_LOCKED ){
executed 311 times by 1 test: end of block
Executed by:
  • Self test (438)
rc!=9Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
(rc&0xFF)!=6Description
TRUEevaluated 11 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-311
105 corruptSchema(pData, argv[0], sqlite3_errmsg(db));-
106 }
executed 11 times by 1 test: end of block
Executed by:
  • Self test (438)
11
107 }
executed 322 times by 1 test: end of block
Executed by:
  • Self test (438)
322
108 }-
109 sqlite3_finalize(pStmt);-
110 }else if( argv[0]==0 || (argv[2]!=0 && argv[2][0]!=0) ){
executed 92796 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)
  • ...
argv[0]==0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4476 times by 376 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)
  • ...
argv[2]!=0Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 4457 times by 376 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)
  • ...
argv[2][0]!=0Description
TRUEevaluated 19 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-92796
111 corruptSchema(pData, argv[0], 0);-
112 }else{
executed 20 times by 1 test: end of block
Executed by:
  • Self test (438)
20
113 /* If the SQL column is blank it means this is an index that-
114 ** was created to be the PRIMARY KEY or to fulfill a UNIQUE-
115 ** constraint for a CREATE TABLE. The index should have already-
116 ** been created when we processed the CREATE TABLE. All we have-
117 ** to do here is record the root page number for that index.-
118 */-
119 Index *pIndex;-
120 pIndex = sqlite3FindIndex(db, argv[0], db->aDb[iDb].zDbSName);-
121 if( pIndex==0 ){
pIndex==0Description
TRUEnever evaluated
FALSEevaluated 4457 times by 376 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)
  • ...
0-4457
122 /* This can occur if there exists an index on a TEMP table which-
123 ** has the same name as another index on a permanent index. Since-
124 ** the permanent table is hidden by the TEMP table, we can also-
125 ** safely ignore the index on the permanent table.-
126 */-
127 /* Do Nothing */;-
128 }else if( sqlite3GetInt32(argv[1], &pIndex->tnum)==0 ){
never executed: end of block
sqlite3GetInt3...ndex->tnum)==0Description
TRUEnever evaluated
FALSEevaluated 4457 times by 376 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)
  • ...
0-4457
129 corruptSchema(pData, argv[0], "invalid rootpage");-
130 }
never executed: end of block
0
131 }
executed 4457 times by 376 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)
  • ...
4457
132 return 0;
executed 97286 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)
  • ...
97286
133}-
134-
135/*-
136** Attempt to read the database schema and initialize internal-
137** data structures for a single database file. The index of the-
138** database file is given by iDb. iDb==0 is used for the main-
139** database. iDb==1 should never be used. iDb>=2 is used for-
140** auxiliary databases. Return one of the SQLITE_ error codes to-
141** indicate success or failure.-
142*/-
143int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg, u32 mFlags){-
144 int rc;-
145 int i;-
146#ifndef SQLITE_OMIT_DEPRECATED-
147 int size;-
148#endif-
149 Db *pDb;-
150 char const *azArg[4];-
151 int meta[5];-
152 InitData initData;-
153 const char *zMasterName;-
154 int openedTransaction = 0;-
155-
156 assert( (db->mDbFlags & DBFLAG_SchemaKnownOk)==0 );-
157 assert( iDb>=0 && iDb<db->nDb );-
158 assert( db->aDb[iDb].pSchema );-
159 assert( sqlite3_mutex_held(db->mutex) );-
160 assert( iDb==1 || sqlite3BtreeHoldsMutex(db->aDb[iDb].pBt) );-
161-
162 db->init.busy = 1;-
163-
164 /* Construct the in-memory representation schema tables (sqlite_master or-
165 ** sqlite_temp_master) by invoking the parser directly. The appropriate-
166 ** table name will be inserted automatically by the parser so we can just-
167 ** use the abbreviation "x" here. The parser will also automatically tag-
168 ** the schema table as read-only. */-
169 azArg[0] = zMasterName = SCHEMA_TABLE(iDb);
(iDb==1)Description
TRUEevaluated 19276 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 21325 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)
  • ...
19276-21325
170 azArg[1] = "1";-
171 azArg[2] = "CREATE TABLE x(type text,name text,tbl_name text,"-
172 "rootpage int,sql text)";-
173 azArg[3] = 0;-
174 initData.db = db;-
175 initData.iDb = iDb;-
176 initData.rc = SQLITE_OK;-
177 initData.pzErrMsg = pzErrMsg;-
178 initData.mInitFlags = mFlags;-
179 sqlite3InitCallback(&initData, 3, (char **)azArg, 0);-
180 if( initData.rc ){
initData.rcDescription
TRUEevaluated 240 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 40361 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)
  • ...
240-40361
181 rc = initData.rc;-
182 goto error_out;
executed 240 times by 1 test: goto error_out;
Executed by:
  • Self test (438)
240
183 }-
184-
185 /* Create a cursor to hold the database open-
186 */-
187 pDb = &db->aDb[iDb];-
188 if( pDb->pBt==0 ){
pDb->pBt==0Description
TRUEevaluated 18219 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 22142 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)
  • ...
18219-22142
189 assert( iDb==1 );-
190 DbSetProperty(db, 1, DB_SchemaLoaded);-
191 rc = SQLITE_OK;-
192 goto error_out;
executed 18219 times by 435 tests: goto error_out;
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)
  • ...
18219
193 }-
194-
195 /* If there is not already a read-only (or read-write) transaction opened-
196 ** on the b-tree database, open one now. If a transaction is opened, it -
197 ** will be closed before this function returns. */-
198 sqlite3BtreeEnter(pDb->pBt);-
199 if( !sqlite3BtreeIsInReadTrans(pDb->pBt) ){
!sqlite3BtreeI...rans(pDb->pBt)Description
TRUEevaluated 21500 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 642 times by 2 tests
Evaluated by:
  • Self test (30)
  • Self test (438)
642-21500
200 rc = sqlite3BtreeBeginTrans(pDb->pBt, 0, 0);-
201 if( rc!=SQLITE_OK ){
rc!=0Description
TRUEevaluated 154 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
FALSEevaluated 21346 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)
  • ...
154-21346
202 sqlite3SetString(pzErrMsg, db, sqlite3ErrStr(rc));-
203 goto initone_error_out;
executed 154 times by 2 tests: goto initone_error_out;
Executed by:
  • Self test (438)
  • Self test (61)
154
204 }-
205 openedTransaction = 1;-
206 }
executed 21346 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)
  • ...
21346
207-
208 /* Get the database meta information.-
209 **-
210 ** Meta values are as follows:-
211 ** meta[0] Schema cookie. Changes with each schema change.-
212 ** meta[1] File format of schema layer.-
213 ** meta[2] Size of the page cache.-
214 ** meta[3] Largest rootpage (auto/incr_vacuum mode)-
215 ** meta[4] Db text encoding. 1:UTF-8 2:UTF-16LE 3:UTF-16BE-
216 ** meta[5] User version-
217 ** meta[6] Incremental vacuum mode-
218 ** meta[7] unused-
219 ** meta[8] unused-
220 ** meta[9] unused-
221 **-
222 ** Note: The #defined SQLITE_UTF* symbols in sqliteInt.h correspond to-
223 ** the possible values of meta[4].-
224 */-
225 for(i=0; i<ArraySize(meta); i++){
i<((int)(sizeo...eof(meta[0])))Description
TRUEevaluated 109940 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 21988 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)
  • ...
21988-109940
226 sqlite3BtreeGetMeta(pDb->pBt, i+1, (u32 *)&meta[i]);-
227 }
executed 109940 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)
  • ...
109940
228 if( (db->flags & SQLITE_ResetDatabase)!=0 ){
(db->flags & 0x02000000)!=0Description
TRUEevaluated 13 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21975 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)
  • ...
13-21975
229 memset(meta, 0, sizeof(meta));-
230 }
executed 13 times by 1 test: end of block
Executed by:
  • Self test (438)
13
231 pDb->pSchema->schema_cookie = meta[BTREE_SCHEMA_VERSION-1];-
232-
233 /* If opening a non-empty database, check the text encoding. For the-
234 ** main database, set sqlite3.enc to the encoding of the main database.-
235 ** For an attached db, it is an error if the encoding is not the same-
236 ** as sqlite3.enc.-
237 */-
238 if( meta[BTREE_TEXT_ENCODING-1] ){ /* text encoding */
meta[5 -1]Description
TRUEevaluated 16514 times by 422 tests
Evaluated by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
FALSEevaluated 5474 times by 31 tests
Evaluated by:
  • 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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (77)
  • 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)
  • ...
5474-16514
239 if( iDb==0 ){
iDb==0Description
TRUEevaluated 15987 times by 421 tests
Evaluated by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
FALSEevaluated 527 times by 5 tests
Evaluated by:
  • Self test (27)
  • Self test (4)
  • Self test (438)
  • Self test (5)
  • Self test (78)
527-15987
240#ifndef SQLITE_OMIT_UTF16-
241 u8 encoding;-
242 /* If opening the main database, set ENC(db). */-
243 encoding = (u8)meta[BTREE_TEXT_ENCODING-1] & 3;-
244 if( encoding==0 ) encoding = SQLITE_UTF8;
never executed: encoding = 1;
encoding==0Description
TRUEnever evaluated
FALSEevaluated 15987 times by 421 tests
Evaluated by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
0-15987
245 ENC(db) = encoding;-
246#else-
247 ENC(db) = SQLITE_UTF8;-
248#endif-
249 }else{
executed 15987 times by 421 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
15987
250 /* If opening an attached database, the encoding much match ENC(db) */-
251 if( meta[BTREE_TEXT_ENCODING-1]!=ENC(db) ){
meta[5 -1]!=((db)->enc)Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 526 times by 5 tests
Evaluated by:
  • Self test (27)
  • Self test (4)
  • Self test (438)
  • Self test (5)
  • Self test (78)
1-526
252 sqlite3SetString(pzErrMsg, db, "attached databases must use the same"-
253 " text encoding as main database");-
254 rc = SQLITE_ERROR;-
255 goto initone_error_out;
executed 1 time by 1 test: goto initone_error_out;
Executed by:
  • Self test (438)
1
256 }-
257 }
executed 526 times by 5 tests: end of block
Executed by:
  • Self test (27)
  • Self test (4)
  • Self test (438)
  • Self test (5)
  • Self test (78)
526
258 }else{-
259 DbSetProperty(db, iDb, DB_Empty);-
260 }
executed 5474 times by 31 tests: end of block
Executed by:
  • 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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (77)
  • 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)
  • ...
5474
261 pDb->pSchema->enc = ENC(db);-
262-
263 if( pDb->pSchema->cache_size==0 ){
pDb->pSchema->cache_size==0Description
TRUEevaluated 19695 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 2292 times by 17 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 (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
2292-19695
264#ifndef SQLITE_OMIT_DEPRECATED-
265 size = sqlite3AbsInt32(meta[BTREE_DEFAULT_CACHE_SIZE-1]);-
266 if( size==0 ){ size = SQLITE_DEFAULT_CACHE_SIZE; }
executed 19686 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)
  • ...
size==0Description
TRUEevaluated 19686 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)
  • ...
FALSEevaluated 9 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (58)
9-19686
267 pDb->pSchema->cache_size = size;-
268#else-
269 pDb->pSchema->cache_size = SQLITE_DEFAULT_CACHE_SIZE;-
270#endif-
271 sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size);-
272 }
executed 19695 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)
  • ...
19695
273-
274 /*-
275 ** file_format==1 Version 3.0.0.-
276 ** file_format==2 Version 3.1.3. // ALTER TABLE ADD COLUMN-
277 ** file_format==3 Version 3.1.4. // ditto but with non-NULL defaults-
278 ** file_format==4 Version 3.3.0. // DESC indices. Boolean constants-
279 */-
280 pDb->pSchema->file_format = (u8)meta[BTREE_FILE_FORMAT-1];-
281 if( pDb->pSchema->file_format==0 ){
pDb->pSchema->file_format==0Description
TRUEevaluated 5481 times by 31 tests
Evaluated by:
  • 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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (77)
  • 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)
  • ...
FALSEevaluated 16506 times by 422 tests
Evaluated by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
5481-16506
282 pDb->pSchema->file_format = 1;-
283 }
executed 5481 times by 31 tests: end of block
Executed by:
  • 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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (77)
  • 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)
  • ...
5481
284 if( pDb->pSchema->file_format>SQLITE_MAX_FILE_FORMAT ){
pDb->pSchema->file_format>4Description
TRUEevaluated 7 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 21980 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)
  • ...
7-21980
285 sqlite3SetString(pzErrMsg, db, "unsupported file format");-
286 rc = SQLITE_ERROR;-
287 goto initone_error_out;
executed 7 times by 1 test: goto initone_error_out;
Executed by:
  • Self test (438)
7
288 }-
289-
290 /* Ticket #2804: When we open a database in the newer file format,-
291 ** clear the legacy_file_format pragma flag so that a VACUUM will-
292 ** not downgrade the database and thus invalidate any descending-
293 ** indices that the user might have created.-
294 */-
295 if( iDb==0 && meta[BTREE_FILE_FORMAT-1]>=4 ){
iDb==0Description
TRUEevaluated 19317 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 2663 times by 13 tests
Evaluated by:
  • Self test (27)
  • Self test (34)
  • Self test (4)
  • Self test (438)
  • Self test (5)
  • Self test (53)
  • Self test (77)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
meta[2 -1]>=4Description
TRUEevaluated 15825 times by 421 tests
Evaluated by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
FALSEevaluated 3492 times by 29 tests
Evaluated by:
  • 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 (438)
  • Self test (47)
  • Self test (77)
  • 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)
  • ...
2663-19317
296 db->flags &= ~SQLITE_LegacyFileFmt;-
297 }
executed 15825 times by 421 tests: end of block
Executed by:
  • Self test
  • Self test (10)
  • 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)
  • Self test (122)
  • ...
15825
298-
299 /* Read the schema information out of the schema tables-
300 */-
301 assert( db->init.busy );-
302 {-
303 char *zSql;-
304 zSql = sqlite3MPrintf(db, -
305 "SELECT name, rootpage, sql FROM \"%w\".%s ORDER BY rowid",-
306 db->aDb[iDb].zDbSName, zMasterName);-
307#ifndef SQLITE_OMIT_AUTHORIZATION-
308 {-
309 sqlite3_xauth xAuth;-
310 xAuth = db->xAuth;-
311 db->xAuth = 0;-
312#endif-
313 rc = sqlite3_exec(db, zSql, sqlite3InitCallback, &initData, 0);-
314#ifndef SQLITE_OMIT_AUTHORIZATION-
315 db->xAuth = xAuth;-
316 }-
317#endif-
318 if( rc==SQLITE_OK ) rc = initData.rc;
executed 21532 times by 435 tests: rc = initData.rc;
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)
  • ...
rc==0Description
TRUEevaluated 21532 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 448 times by 1 test
Evaluated by:
  • Self test (438)
448-21532
319 sqlite3DbFree(db, zSql);-
320#ifndef SQLITE_OMIT_ANALYZE-
321 if( rc==SQLITE_OK ){
rc==0Description
TRUEevaluated 21513 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 467 times by 1 test
Evaluated by:
  • Self test (438)
467-21513
322 sqlite3AnalysisLoad(db, iDb);-
323 }
executed 21513 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)
  • ...
21513
324#endif-
325 }-
326 if( db->mallocFailed ){
db->mallocFailedDescription
TRUEnever evaluated
FALSEevaluated 21980 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)
  • ...
0-21980
327 rc = SQLITE_NOMEM_BKPT;-
328 sqlite3ResetAllSchemasOfConnection(db);-
329 }
never executed: end of block
0
330 if( rc==SQLITE_OK || (db->flags&SQLITE_WriteSchema)){
rc==0Description
TRUEevaluated 21513 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 467 times by 1 test
Evaluated by:
  • Self test (438)
(db->flags&0x00000001)Description
TRUEevaluated 7 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 460 times by 1 test
Evaluated by:
  • Self test (438)
7-21513
331 /* Black magic: If the SQLITE_WriteSchema flag is set, then consider-
332 ** the schema loaded, even if errors occurred. In this situation the -
333 ** current sqlite3_prepare() operation will fail, but the following one-
334 ** will attempt to compile the supplied statement against whatever subset-
335 ** of the schema was loaded before the error occurred. The primary-
336 ** purpose of this is to allow access to the sqlite_master table-
337 ** even when its contents have been corrupted.-
338 */-
339 DbSetProperty(db, iDb, DB_SchemaLoaded);-
340 rc = SQLITE_OK;-
341 }
executed 21520 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)
  • ...
21520
342-
343 /* Jump here for an error that occurs after successfully allocating-
344 ** curMain and calling sqlite3BtreeEnter(). For an error that occurs-
345 ** before that point, jump to error_out.-
346 */-
347initone_error_out:
code before this statement executed 21980 times by 435 tests: initone_error_out:
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)
  • ...
21980
348 if( openedTransaction ){
openedTransactionDescription
TRUEevaluated 21346 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 796 times by 3 tests
Evaluated by:
  • Self test (30)
  • Self test (438)
  • Self test (61)
796-21346
349 sqlite3BtreeCommit(pDb->pBt);-
350 }
executed 21346 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)
  • ...
21346
351 sqlite3BtreeLeave(pDb->pBt);-
352-
353error_out:
code before this statement executed 22142 times by 436 tests: error_out:
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)
  • ...
22142
354 if( rc ){
rcDescription
TRUEevaluated 862 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
FALSEevaluated 39739 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)
  • ...
862-39739
355 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
rc==7Description
TRUEevaluated 689 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 173 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
rc==(10 | (12<<8))Description
TRUEevaluated 52 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 121 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
52-689
356 sqlite3OomFault(db);-
357 }
executed 741 times by 1 test: end of block
Executed by:
  • Self test (438)
741
358 sqlite3ResetOneSchema(db, iDb);-
359 }
executed 862 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (61)
862
360 db->init.busy = 0;-
361 return rc;
executed 40601 times by 436 tests: return rc;
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)
  • ...
40601
362}-
363-
364/*-
365** Initialize all database files - the main database file, the file-
366** used to store temporary tables, and any additional database files-
367** created using ATTACH statements. Return a success code. If an-
368** error occurs, write an error message into *pzErrMsg.-
369**-
370** After a database is initialized, the DB_SchemaLoaded bit is set-
371** bit is set in the flags field of the Db structure. If the database-
372** file was of zero-length, then the DB_Empty flag is also set.-
373*/-
374int sqlite3Init(sqlite3 *db, char **pzErrMsg){-
375 int i, rc;-
376 int commit_internal = !(db->mDbFlags&DBFLAG_SchemaChange);-
377 -
378 assert( sqlite3_mutex_held(db->mutex) );-
379 assert( sqlite3BtreeHoldsMutex(db->aDb[0].pBt) );-
380 assert( db->init.busy==0 );-
381 ENC(db) = SCHEMA_ENC(db);-
382 assert( db->nDb>0 );-
383 /* Do the main schema first */-
384 if( !DbHasProperty(db, 0, DB_SchemaLoaded) ){
!(((db)->aDb[0...1))==(0x0001))Description
TRUEevaluated 19288 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 64258 times by 55 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (105)
  • Self test (12)
  • Self test (14)
  • Self test (16)
  • Self test (18)
  • Self test (2)
  • Self test (20)
  • Self test (22)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (4)
  • ...
19288-64258
385 rc = sqlite3InitOne(db, 0, pzErrMsg, 0);-
386 if( rc ) return rc;
executed 737 times by 2 tests: return rc;
Executed by:
  • Self test (438)
  • Self test (61)
rcDescription
TRUEevaluated 737 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
FALSEevaluated 18551 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)
  • ...
737-18551
387 }
executed 18551 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)
  • ...
18551
388 /* All other schemas after the main schema. The "temp" schema must be last */-
389 for(i=db->nDb-1; i>0; i--){
i>0Description
TRUEevaluated 96873 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 82686 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)
  • ...
82686-96873
390 assert( i==1 || sqlite3BtreeHoldsMutex(db->aDb[i].pBt) );-
391 if( !DbHasProperty(db, i, DB_SchemaLoaded) ){
!(((db)->aDb[i...1))==(0x0001))Description
TRUEevaluated 20533 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 76340 times by 55 tests
Evaluated by:
  • Self test
  • Self test (10)
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (105)
  • Self test (12)
  • Self test (14)
  • Self test (16)
  • Self test (18)
  • Self test (2)
  • Self test (20)
  • Self test (22)
  • Self test (24)
  • Self test (26)
  • Self test (27)
  • Self test (28)
  • Self test (29)
  • Self test (3)
  • Self test (30)
  • Self test (32)
  • Self test (33)
  • Self test (34)
  • Self test (39)
  • Self test (4)
  • ...
20533-76340
392 rc = sqlite3InitOne(db, i, pzErrMsg, 0);-
393 if( rc ) return rc;
executed 123 times by 1 test: return rc;
Executed by:
  • Self test (438)
rcDescription
TRUEevaluated 123 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 20410 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)
  • ...
123-20410
394 }
executed 20410 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)
  • ...
20410
395 }
executed 96750 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)
  • ...
96750
396 if( commit_internal ){
commit_internalDescription
TRUEevaluated 75010 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 7676 times by 10 tests
Evaluated by:
  • Self test (100)
  • Self test (438)
  • Self test (92)
  • Self test (93)
  • Self test (94)
  • Self test (95)
  • Self test (96)
  • Self test (97)
  • Self test (98)
  • Self test (99)
7676-75010
397 sqlite3CommitInternalChanges(db);-
398 }
executed 75010 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)
  • ...
75010
399 return SQLITE_OK;
executed 82686 times by 435 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)
  • ...
82686
400}-
401-
402/*-
403** This routine is a no-op if the database schema is already initialized.-
404** Otherwise, the schema is loaded. An error code is returned.-
405*/-
406int sqlite3ReadSchema(Parse *pParse){-
407 int rc = SQLITE_OK;-
408 sqlite3 *db = pParse->db;-
409 assert( sqlite3_mutex_held(db->mutex) );-
410 if( !db->init.busy ){
!db->init.busyDescription
TRUEevaluated 73163 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 126976 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)
  • ...
73163-126976
411 rc = sqlite3Init(db, &pParse->zErrMsg);-
412 if( rc!=SQLITE_OK ){
rc!=0Description
TRUEevaluated 857 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (61)
FALSEevaluated 72306 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)
  • ...
857-72306
413 pParse->rc = rc;-
414 pParse->nErr++;-
415 }else if( db->noSharedCache ){
executed 857 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (61)
db->noSharedCacheDescription
TRUEevaluated 70612 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)
  • ...
FALSEevaluated 1694 times by 1 test
Evaluated by:
  • Self test (438)
857-70612
416 db->mDbFlags |= DBFLAG_SchemaKnownOk;-
417 }
executed 70612 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)
  • ...
70612
418 }
executed 73163 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)
  • ...
73163
419 return rc;
executed 200139 times by 436 tests: return rc;
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)
  • ...
200139
420}-
421-
422-
423/*-
424** Check schema cookies in all databases. If any cookie is out-
425** of date set pParse->rc to SQLITE_SCHEMA. If all schema cookies-
426** make no changes to pParse->rc.-
427*/-
428static void schemaIsValid(Parse *pParse){-
429 sqlite3 *db = pParse->db;-
430 int iDb;-
431 int rc;-
432 int cookie;-
433-
434 assert( pParse->checkSchema );-
435 assert( sqlite3_mutex_held(db->mutex) );-
436 for(iDb=0; iDb<db->nDb; iDb++){
iDb<db->nDbDescription
TRUEevaluated 1878 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 859 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)
859-1878
437 int openedTransaction = 0; /* True if a transaction is opened */-
438 Btree *pBt = db->aDb[iDb].pBt; /* Btree database to read cookie from */-
439 if( pBt==0 ) continue;
executed 732 times by 12 tests: continue;
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)
pBt==0Description
TRUEevaluated 732 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 1146 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)
732-1146
440-
441 /* If there is not already a read-only (or read-write) transaction opened-
442 ** on the b-tree database, open one now. If a transaction is opened, it -
443 ** will be closed immediately after reading the meta-value. */-
444 if( !sqlite3BtreeIsInReadTrans(pBt) ){
!sqlite3BtreeI...ReadTrans(pBt)Description
TRUEevaluated 1122 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 24 times by 1 test
Evaluated by:
  • Self test (438)
24-1122
445 rc = sqlite3BtreeBeginTrans(pBt, 0, 0);-
446 if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ){
rc==7Description
TRUEnever evaluated
FALSEevaluated 1122 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)
rc==(10 | (12<<8))Description
TRUEnever evaluated
FALSEevaluated 1122 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)
0-1122
447 sqlite3OomFault(db);-
448 }
never executed: end of block
0
449 if( rc!=SQLITE_OK ) return;
never executed: return;
rc!=0Description
TRUEnever evaluated
FALSEevaluated 1122 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)
0-1122
450 openedTransaction = 1;-
451 }
executed 1122 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)
1122
452-
453 /* Read the schema cookie from the database. If it does not match the -
454 ** value stored as part of the in-memory schema representation,-
455 ** set Parse.rc to SQLITE_SCHEMA. */-
456 sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&cookie);-
457 assert( sqlite3SchemaMutexHeld(db, iDb, 0) );-
458 if( cookie!=db->aDb[iDb].pSchema->schema_cookie ){
cookie!=db->aD...>schema_cookieDescription
TRUEevaluated 157 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 989 times by 7 tests
Evaluated by:
  • Self test (27)
  • Self test (438)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
157-989
459 sqlite3ResetOneSchema(db, iDb);-
460 pParse->rc = SQLITE_SCHEMA;-
461 }
executed 157 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)
157
462-
463 /* Close the transaction, if one was opened. */-
464 if( openedTransaction ){
openedTransactionDescription
TRUEevaluated 1122 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 24 times by 1 test
Evaluated by:
  • Self test (438)
24-1122
465 sqlite3BtreeCommit(pBt);-
466 }
executed 1122 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)
1122
467 }
executed 1146 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)
1146
468}
executed 859 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)
859
469-
470/*-
471** Convert a schema pointer into the iDb index that indicates-
472** which database file in db->aDb[] the schema refers to.-
473**-
474** If the same database is attached more than once, the first-
475** attached database is returned.-
476*/-
477int sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema){-
478 int i = -1000000;-
479-
480 /* If pSchema is NULL, then return -1000000. This happens when code in -
481 ** expr.c is trying to resolve a reference to a transient table (i.e. one-
482 ** created by a sub-select). In this case the return value of this -
483 ** function should never be used.-
484 **-
485 ** We return -1000000 instead of the more usual -1 simply because using-
486 ** -1000000 as the incorrect index into db->aDb[] is much -
487 ** more likely to cause a segfault than -1 (of course there are assert()-
488 ** statements too, but it never hurts to play the odds).-
489 */-
490 assert( sqlite3_mutex_held(db->mutex) );-
491 if( pSchema ){
pSchemaDescription
TRUEevaluated 1573934 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 4123 times by 1 test
Evaluated by:
  • Self test (438)
4123-1573934
492 for(i=0; 1; i++){
1Description
TRUEevaluated 1672101 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)
  • ...
FALSEnever evaluated
0-1672101
493 assert( i<db->nDb );-
494 if( db->aDb[i].pSchema==pSchema ){
db->aDb[i].pSchema==pSchemaDescription
TRUEevaluated 1573934 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 98167 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)
  • ...
98167-1573934
495 break;
executed 1573934 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)
  • ...
1573934
496 }-
497 }
executed 98167 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)
  • ...
98167
498 assert( i>=0 && i<db->nDb );-
499 }
executed 1573934 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)
  • ...
1573934
500 return i;
executed 1578057 times by 436 tests: return i;
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)
  • ...
1578057
501}-
502-
503/*-
504** Free all memory allocations in the pParse object-
505*/-
506void sqlite3ParserReset(Parse *pParse){-
507 sqlite3 *db = pParse->db;-
508 sqlite3DbFree(db, pParse->aLabel);-
509 sqlite3ExprListDelete(db, pParse->pConstExpr);-
510 if( db ){
dbDescription
TRUEevaluated 504103 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 10 times by 1 test
Evaluated by:
  • Self test (438)
10-504103
511 assert( db->lookaside.bDisable >= pParse->disableLookaside );-
512 db->lookaside.bDisable -= pParse->disableLookaside;-
513 }
executed 504103 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)
  • ...
504103
514 pParse->disableLookaside = 0;-
515}
executed 504113 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)
  • ...
504113
516-
517/*-
518** Compile the UTF-8 encoded SQL statement zSql into a statement handle.-
519*/-
520static int sqlite3Prepare(-
521 sqlite3 *db, /* Database handle. */-
522 const char *zSql, /* UTF-8 encoded SQL statement. */-
523 int nBytes, /* Length of zSql in bytes. */-
524 u32 prepFlags, /* Zero or more SQLITE_PREPARE_* flags */-
525 Vdbe *pReprepare, /* VM being reprepared */-
526 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
527 const char **pzTail /* OUT: End of parsed string */-
528){-
529 char *zErrMsg = 0; /* Error message */-
530 int rc = SQLITE_OK; /* Result code */-
531 int i; /* Loop counter */-
532 Parse sParse; /* Parsing context */-
533-
534 memset(&sParse, 0, PARSE_HDR_SZ);-
535 memset(PARSE_TAIL(&sParse), 0, PARSE_TAIL_SZ);-
536 sParse.pReprepare = pReprepare;-
537 assert( ppStmt && *ppStmt==0 );-
538 /* assert( !db->mallocFailed ); // not true with SQLITE_USE_ALLOCA */-
539 assert( sqlite3_mutex_held(db->mutex) );-
540-
541 /* For a long-term use prepared statement avoid the use of-
542 ** lookaside memory.-
543 */-
544 if( prepFlags & SQLITE_PREPARE_PERSISTENT ){
prepFlags & 0x01Description
TRUEevaluated 305977 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 180922 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)
  • ...
180922-305977
545 sParse.disableLookaside++;-
546 db->lookaside.bDisable++;-
547 }
executed 305977 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)
  • ...
305977
548-
549 /* Check to verify that it is possible to get a read lock on all-
550 ** database schemas. The inability to get a read lock indicates that-
551 ** some other database connection is holding a write-lock, which in-
552 ** turn means that the other connection has made uncommitted changes-
553 ** to the schema.-
554 **-
555 ** Were we to proceed and prepare the statement against the uncommitted-
556 ** schema changes and if those schema changes are subsequently rolled-
557 ** back and different changes are made in their place, then when this-
558 ** prepared statement goes to run the schema cookie would fail to detect-
559 ** the schema change. Disaster would follow.-
560 **-
561 ** This thread is currently holding mutexes on all Btrees (because-
562 ** of the sqlite3BtreeEnterAll() in sqlite3LockAndPrepare()) so it-
563 ** is not possible for another thread to start a new schema change-
564 ** while this routine is running. Hence, we do not need to hold -
565 ** locks on the schema, we just need to make sure nobody else is -
566 ** holding them.-
567 **-
568 ** Note that setting READ_UNCOMMITTED overrides most lock detection,-
569 ** but it does *not* override schema lock detection, so this all still-
570 ** works even if READ_UNCOMMITTED is set.-
571 */-
572 for(i=0; i<db->nDb; i++) {
i<db->nDbDescription
TRUEevaluated 1020035 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 486889 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)
  • ...
486889-1020035
573 Btree *pBt = db->aDb[i].pBt;-
574 if( pBt ){
pBtDescription
TRUEevaluated 638848 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 381187 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)
  • ...
381187-638848
575 assert( sqlite3BtreeHoldsMutex(pBt) );-
576 rc = sqlite3BtreeSchemaLocked(pBt);-
577 if( rc ){
rcDescription
TRUEevaluated 10 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 638838 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)
  • ...
10-638838
578 const char *zDb = db->aDb[i].zDbSName;-
579 sqlite3ErrorWithMsg(db, rc, "database schema is locked: %s", zDb);-
580 testcase( db->flags & SQLITE_ReadUncommit );-
581 goto end_prepare;
executed 10 times by 1 test: goto end_prepare;
Executed by:
  • Self test (438)
10
582 }-
583 }
executed 638838 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)
  • ...
638838
584 }
executed 1020025 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)
  • ...
1020025
585-
586 sqlite3VtabUnlockList(db);-
587-
588 sParse.db = db;-
589 if( nBytes>=0 && (nBytes==0 || zSql[nBytes-1]!=0) ){
nBytes>=0Description
TRUEevaluated 10 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 486879 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)
  • ...
nBytes==0Description
TRUEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
zSql[nBytes-1]!=0Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 1 time by 1 test
Evaluated by:
  • Self test (438)
1-486879
590 char *zSqlCopy;-
591 int mxLen = db->aLimit[SQLITE_LIMIT_SQL_LENGTH];-
592 testcase( nBytes==mxLen );-
593 testcase( nBytes==mxLen+1 );-
594 if( nBytes>mxLen ){
nBytes>mxLenDescription
TRUEnever evaluated
FALSEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
0-9
595 sqlite3ErrorWithMsg(db, SQLITE_TOOBIG, "statement too long");-
596 rc = sqlite3ApiExit(db, SQLITE_TOOBIG);-
597 goto end_prepare;
never executed: goto end_prepare;
0
598 }-
599 zSqlCopy = sqlite3DbStrNDup(db, zSql, nBytes);-
600 if( zSqlCopy ){
zSqlCopyDescription
TRUEevaluated 9 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-9
601 sqlite3RunParser(&sParse, zSqlCopy, &zErrMsg);-
602 sParse.zTail = &zSql[sParse.zTail-zSqlCopy];-
603 sqlite3DbFree(db, zSqlCopy);-
604 }else{
executed 9 times by 1 test: end of block
Executed by:
  • Self test (438)
9
605 sParse.zTail = &zSql[nBytes];-
606 }
never executed: end of block
0
607 }else{-
608 sqlite3RunParser(&sParse, zSql, &zErrMsg);-
609 }
executed 486880 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)
  • ...
486880
610 assert( 0==sParse.nQueryLoop );-
611-
612 if( sParse.rc==SQLITE_DONE ) sParse.rc = SQLITE_OK;
executed 440679 times by 436 tests: sParse.rc = 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)
  • ...
sParse.rc==101Description
TRUEevaluated 440679 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 46210 times by 51 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (105)
  • Self test (11)
  • Self test (15)
  • Self test (19)
  • Self test (23)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (38)
  • Self test (39)
  • Self test (41)
  • Self test (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • ...
46210-440679
613 if( sParse.checkSchema ){
sParse.checkSchemaDescription
TRUEevaluated 859 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 486030 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)
  • ...
859-486030
614 schemaIsValid(&sParse);-
615 }
executed 859 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)
859
616 if( db->mallocFailed ){
db->mallocFailedDescription
TRUEevaluated 2841 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 484048 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)
  • ...
2841-484048
617 sParse.rc = SQLITE_NOMEM_BKPT;-
618 }
executed 2841 times by 1 test: end of block
Executed by:
  • Self test (438)
2841
619 if( pzTail ){
pzTailDescription
TRUEevaluated 329319 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 157570 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)
  • ...
157570-329319
620 *pzTail = sParse.zTail;-
621 }
executed 329319 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)
  • ...
329319
622 rc = sParse.rc;-
623-
624#ifndef SQLITE_OMIT_EXPLAIN-
625 if( rc==SQLITE_OK && sParse.pVdbe && sParse.explain ){
rc==0Description
TRUEevaluated 482102 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 4787 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)
sParse.pVdbeDescription
TRUEevaluated 440672 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 41430 times by 40 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (105)
  • Self test (11)
  • Self test (15)
  • Self test (19)
  • Self test (23)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (38)
  • Self test (41)
  • Self test (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • Self test (49)
  • Self test (54)
  • Self test (57)
  • Self test (58)
  • ...
sParse.explainDescription
TRUEevaluated 939 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 439733 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)
  • ...
939-482102
626 static const char * const azColName[] = {-
627 "addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment",-
628 "id", "parent", "notused", "detail"-
629 };-
630 int iFirst, mx;-
631 if( sParse.explain==2 ){
sParse.explain==2Description
TRUEevaluated 614 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 325 times by 1 test
Evaluated by:
  • Self test (438)
325-614
632 sqlite3VdbeSetNumCols(sParse.pVdbe, 4);-
633 iFirst = 8;-
634 mx = 12;-
635 }else{
executed 614 times by 1 test: end of block
Executed by:
  • Self test (438)
614
636 sqlite3VdbeSetNumCols(sParse.pVdbe, 8);-
637 iFirst = 0;-
638 mx = 8;-
639 }
executed 325 times by 1 test: end of block
Executed by:
  • Self test (438)
325
640 for(i=iFirst; i<mx; i++){
i<mxDescription
TRUEevaluated 5056 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 939 times by 1 test
Evaluated by:
  • Self test (438)
939-5056
641 sqlite3VdbeSetColName(sParse.pVdbe, i-iFirst, COLNAME_NAME,-
642 azColName[i], SQLITE_STATIC);-
643 }
executed 5056 times by 1 test: end of block
Executed by:
  • Self test (438)
5056
644 }
executed 939 times by 1 test: end of block
Executed by:
  • Self test (438)
939
645#endif-
646-
647 if( db->init.busy==0 ){
db->init.busy==0Description
TRUEevaluated 355453 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 131436 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)
  • ...
131436-355453
648 sqlite3VdbeSetSql(sParse.pVdbe, zSql, (int)(sParse.zTail-zSql), prepFlags);-
649 }
executed 355453 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)
  • ...
355453
650 if( sParse.pVdbe && (rc!=SQLITE_OK || db->mallocFailed) ){
sParse.pVdbeDescription
TRUEevaluated 441940 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 44949 times by 51 tests
Evaluated by:
  • Self test
  • Self test (100)
  • Self test (101)
  • Self test (104)
  • Self test (105)
  • Self test (11)
  • Self test (15)
  • Self test (19)
  • Self test (23)
  • Self test (26)
  • Self test (27)
  • Self test (29)
  • Self test (30)
  • Self test (31)
  • Self test (32)
  • Self test (33)
  • Self test (35)
  • Self test (38)
  • Self test (39)
  • Self test (41)
  • Self test (42)
  • Self test (438)
  • Self test (44)
  • Self test (46)
  • Self test (47)
  • ...
rc!=0Description
TRUEevaluated 1268 times by 2 tests
Evaluated by:
  • Self test (438)
  • Self test (47)
FALSEevaluated 440672 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)
  • ...
db->mallocFailedDescription
TRUEevaluated 30 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 440642 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)
  • ...
30-441940
651 sqlite3VdbeFinalize(sParse.pVdbe);-
652 assert(!(*ppStmt));-
653 }else{
executed 1298 times by 2 tests: end of block
Executed by:
  • Self test (438)
  • Self test (47)
1298
654 *ppStmt = (sqlite3_stmt*)sParse.pVdbe;-
655 }
executed 485591 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)
  • ...
485591
656-
657 if( zErrMsg ){
zErrMsgDescription
TRUEevaluated 1969 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 484920 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)
  • ...
1969-484920
658 sqlite3ErrorWithMsg(db, rc, "%s", zErrMsg);-
659 sqlite3DbFree(db, zErrMsg);-
660 }else{
executed 1969 times by 13 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 (61)
  • Self test (78)
  • Self test (79)
  • Self test (80)
  • Self test (81)
  • Self test (82)
  • Self test (83)
1969
661 sqlite3Error(db, rc);-
662 }
executed 484920 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)
  • ...
484920
663-
664 /* Delete any TriggerPrg structures allocated while parsing this statement. */-
665 while( sParse.pTriggerPrg ){
sParse.pTriggerPrgDescription
TRUEevaluated 6032 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 486889 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)
  • ...
6032-486889
666 TriggerPrg *pT = sParse.pTriggerPrg;-
667 sParse.pTriggerPrg = pT->pNext;-
668 sqlite3DbFree(db, pT);-
669 }
executed 6032 times by 1 test: end of block
Executed by:
  • Self test (438)
6032
670-
671end_prepare:
code before this statement executed 486889 times by 436 tests: end_prepare:
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)
  • ...
486889
672-
673 sqlite3ParserReset(&sParse);-
674 return rc;
executed 486899 times by 436 tests: return rc;
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)
  • ...
486899
675}-
676static int sqlite3LockAndPrepare(-
677 sqlite3 *db, /* Database handle. */-
678 const char *zSql, /* UTF-8 encoded SQL statement. */-
679 int nBytes, /* Length of zSql in bytes. */-
680 u32 prepFlags, /* Zero or more SQLITE_PREPARE_* flags */-
681 Vdbe *pOld, /* VM being reprepared */-
682 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
683 const char **pzTail /* OUT: End of parsed string */-
684){-
685 int rc;-
686 int cnt = 0;-
687-
688#ifdef SQLITE_ENABLE_API_ARMOR-
689 if( ppStmt==0 ) return SQLITE_MISUSE_BKPT;-
690#endif-
691 *ppStmt = 0;-
692 if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
!sqlite3SafetyCheckOk(db)Description
TRUEevaluated 4 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 486739 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)
  • ...
zSql==0Description
TRUEnever evaluated
FALSEevaluated 486739 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-486739
693 return SQLITE_MISUSE_BKPT;
executed 4 times by 1 test: return sqlite3MisuseError(693);
Executed by:
  • Self test (438)
4
694 }-
695 sqlite3_mutex_enter(db->mutex);-
696 sqlite3BtreeEnterAll(db);-
697 do{-
698 /* Make multiple attempts to compile the SQL, until it either succeeds-
699 ** or encounters a permanent error. A schema problem after one schema-
700 ** reset is considered a permanent error. */-
701 rc = sqlite3Prepare(db, zSql, nBytes, prepFlags, pOld, ppStmt, pzTail);-
702 assert( rc==SQLITE_OK || *ppStmt==0 );-
703 }while( rc==SQLITE_ERROR_RETRY
executed 486899 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)
  • ...
rc==(1 | (2<<8))Description
TRUEevaluated 8 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 486891 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-486899
704 || (rc==SQLITE_SCHEMA && (sqlite3ResetOneSchema(db,-1), cnt++)==0) );
rc==17Description
TRUEevaluated 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)
FALSEevaluated 486739 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)
  • ...
(sqlite3ResetO...-1), cnt++)==0Description
TRUEevaluated 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)
FALSEnever evaluated
0-486739
705 sqlite3BtreeLeaveAll(db);-
706 rc = sqlite3ApiExit(db, rc);-
707 assert( (rc&db->errMask)==rc );-
708 sqlite3_mutex_leave(db->mutex);-
709 return rc;
executed 486739 times by 436 tests: return rc;
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)
  • ...
486739
710}-
711-
712/*-
713** Rerun the compilation of a statement after a schema change.-
714**-
715** If the statement is successfully recompiled, return SQLITE_OK. Otherwise,-
716** if the statement cannot be recompiled because another connection has-
717** locked the sqlite3_master table, return SQLITE_LOCKED. If any other error-
718** occurs, return SQLITE_SCHEMA.-
719*/-
720int sqlite3Reprepare(Vdbe *p){-
721 int rc;-
722 sqlite3_stmt *pNew;-
723 const char *zSql;-
724 sqlite3 *db;-
725 u8 prepFlags;-
726-
727 assert( sqlite3_mutex_held(sqlite3VdbeDb(p)->mutex) );-
728 zSql = sqlite3_sql((sqlite3_stmt *)p);-
729 assert( zSql!=0 ); /* Reprepare only called for prepare_v2() statements */-
730 db = sqlite3VdbeDb(p);-
731 assert( sqlite3_mutex_held(db->mutex) );-
732 prepFlags = sqlite3VdbePrepareFlags(p);-
733 rc = sqlite3LockAndPrepare(db, zSql, -1, prepFlags, p, &pNew, 0);-
734 if( rc ){
rcDescription
TRUEevaluated 79 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 23594 times by 11 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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (84)
79-23594
735 if( rc==SQLITE_NOMEM ){
rc==7Description
TRUEnever evaluated
FALSEevaluated 79 times by 1 test
Evaluated by:
  • Self test (438)
0-79
736 sqlite3OomFault(db);-
737 }
never executed: end of block
0
738 assert( pNew==0 );-
739 return rc;
executed 79 times by 1 test: return rc;
Executed by:
  • Self test (438)
79
740 }else{-
741 assert( pNew!=0 );-
742 }
executed 23594 times by 11 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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (84)
23594
743 sqlite3VdbeSwap((Vdbe*)pNew, p);-
744 sqlite3TransferBindings(pNew, (sqlite3_stmt*)p);-
745 sqlite3VdbeResetStepResult((Vdbe*)pNew);-
746 sqlite3VdbeFinalize((Vdbe*)pNew);-
747 return SQLITE_OK;
executed 23594 times by 11 tests: return 0;
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 (438)
  • Self test (47)
  • Self test (53)
  • Self test (84)
23594
748}-
749-
750-
751/*-
752** Two versions of the official API. Legacy and new use. In the legacy-
753** version, the original SQL text is not saved in the prepared statement-
754** and so if a schema change occurs, SQLITE_SCHEMA is returned by-
755** sqlite3_step(). In the new version, the original SQL text is retained-
756** and the statement is automatically recompiled if an schema change-
757** occurs.-
758*/-
759int sqlite3_prepare(-
760 sqlite3 *db, /* Database handle. */-
761 const char *zSql, /* UTF-8 encoded SQL statement. */-
762 int nBytes, /* Length of zSql in bytes. */-
763 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
764 const char **pzTail /* OUT: End of parsed string */-
765){-
766 int rc;-
767 rc = sqlite3LockAndPrepare(db,zSql,nBytes,0,0,ppStmt,pzTail);-
768 assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */-
769 return rc;
executed 100021 times by 436 tests: return rc;
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)
  • ...
100021
770}-
771int sqlite3_prepare_v2(-
772 sqlite3 *db, /* Database handle. */-
773 const char *zSql, /* UTF-8 encoded SQL statement. */-
774 int nBytes, /* Length of zSql in bytes. */-
775 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
776 const char **pzTail /* OUT: End of parsed string */-
777){-
778 int rc;-
779 /* EVIDENCE-OF: R-37923-12173 The sqlite3_prepare_v2() interface works-
780 ** exactly the same as sqlite3_prepare_v3() with a zero prepFlags-
781 ** parameter.-
782 **-
783 ** Proof in that the 5th parameter to sqlite3LockAndPrepare is 0 */-
784 rc = sqlite3LockAndPrepare(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,0,-
785 ppStmt,pzTail);-
786 assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 );-
787 return rc;
executed 78785 times by 435 tests: return rc;
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)
  • ...
78785
788}-
789int sqlite3_prepare_v3(-
790 sqlite3 *db, /* Database handle. */-
791 const char *zSql, /* UTF-8 encoded SQL statement. */-
792 int nBytes, /* Length of zSql in bytes. */-
793 unsigned int prepFlags, /* Zero or more SQLITE_PREPARE_* flags */-
794 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
795 const char **pzTail /* OUT: End of parsed string */-
796){-
797 int rc;-
798 /* EVIDENCE-OF: R-56861-42673 sqlite3_prepare_v3() differs from-
799 ** sqlite3_prepare_v2() only in having the extra prepFlags parameter,-
800 ** which is a bit array consisting of zero or more of the-
801 ** SQLITE_PREPARE_* flags.-
802 **-
803 ** Proof by comparison to the implementation of sqlite3_prepare_v2()-
804 ** directly above. */-
805 rc = sqlite3LockAndPrepare(db,zSql,nBytes,-
806 SQLITE_PREPARE_SAVESQL|(prepFlags&SQLITE_PREPARE_MASK),-
807 0,ppStmt,pzTail);-
808 assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 );-
809 return rc;
executed 282535 times by 436 tests: return rc;
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)
  • ...
282535
810}-
811-
812-
813#ifndef SQLITE_OMIT_UTF16-
814/*-
815** Compile the UTF-16 encoded SQL statement zSql into a statement handle.-
816*/-
817static int sqlite3Prepare16(-
818 sqlite3 *db, /* Database handle. */ -
819 const void *zSql, /* UTF-16 encoded SQL statement. */-
820 int nBytes, /* Length of zSql in bytes. */-
821 u32 prepFlags, /* Zero or more SQLITE_PREPARE_* flags */-
822 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
823 const void **pzTail /* OUT: End of parsed string */-
824){-
825 /* This function currently works by first transforming the UTF-16-
826 ** encoded string to UTF-8, then invoking sqlite3_prepare(). The-
827 ** tricky bit is figuring out the pointer to return in *pzTail.-
828 */-
829 char *zSql8;-
830 const char *zTail8 = 0;-
831 int rc = SQLITE_OK;-
832-
833#ifdef SQLITE_ENABLE_API_ARMOR-
834 if( ppStmt==0 ) return SQLITE_MISUSE_BKPT;-
835#endif-
836 *ppStmt = 0;-
837 if( !sqlite3SafetyCheckOk(db)||zSql==0 ){
!sqlite3SafetyCheckOk(db)Description
TRUEnever evaluated
FALSEevaluated 1729 times by 1 test
Evaluated by:
  • Self test (438)
zSql==0Description
TRUEnever evaluated
FALSEevaluated 1729 times by 1 test
Evaluated by:
  • Self test (438)
0-1729
838 return SQLITE_MISUSE_BKPT;
never executed: return sqlite3MisuseError(838);
0
839 }-
840 if( nBytes>=0 ){
nBytes>=0Description
TRUEnever evaluated
FALSEevaluated 1729 times by 1 test
Evaluated by:
  • Self test (438)
0-1729
841 int sz;-
842 const char *z = (const char*)zSql;-
843 for(sz=0; sz<nBytes && (z[sz]!=0 || z[sz+1]!=0); sz += 2){}
never executed: end of block
sz<nBytesDescription
TRUEnever evaluated
FALSEnever evaluated
z[sz]!=0Description
TRUEnever evaluated
FALSEnever evaluated
z[sz+1]!=0Description
TRUEnever evaluated
FALSEnever evaluated
0
844 nBytes = sz;-
845 }
never executed: end of block
0
846 sqlite3_mutex_enter(db->mutex);-
847 zSql8 = sqlite3Utf16to8(db, zSql, nBytes, SQLITE_UTF16NATIVE);-
848 if( zSql8 ){
zSql8Description
TRUEevaluated 1729 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
0-1729
849 rc = sqlite3LockAndPrepare(db, zSql8, -1, prepFlags, 0, ppStmt, &zTail8);-
850 }
executed 1729 times by 1 test: end of block
Executed by:
  • Self test (438)
1729
851-
852 if( zTail8 && pzTail ){
zTail8Description
TRUEevaluated 1729 times by 1 test
Evaluated by:
  • Self test (438)
FALSEnever evaluated
pzTailDescription
TRUEevaluated 1727 times by 1 test
Evaluated by:
  • Self test (438)
FALSEevaluated 2 times by 1 test
Evaluated by:
  • Self test (438)
0-1729
853 /* If sqlite3_prepare returns a tail pointer, we calculate the-
854 ** equivalent pointer into the UTF-16 string by counting the unicode-
855 ** characters between zSql8 and zTail8, and then returning a pointer-
856 ** the same number of characters into the UTF-16 string.-
857 */-
858 int chars_parsed = sqlite3Utf8CharLen(zSql8, (int)(zTail8-zSql8));-
859 *pzTail = (u8 *)zSql + sqlite3Utf16ByteLen(zSql, chars_parsed);-
860 }
executed 1727 times by 1 test: end of block
Executed by:
  • Self test (438)
1727
861 sqlite3DbFree(db, zSql8); -
862 rc = sqlite3ApiExit(db, rc);-
863 sqlite3_mutex_leave(db->mutex);-
864 return rc;
executed 1729 times by 1 test: return rc;
Executed by:
  • Self test (438)
1729
865}-
866-
867/*-
868** Two versions of the official API. Legacy and new use. In the legacy-
869** version, the original SQL text is not saved in the prepared statement-
870** and so if a schema change occurs, SQLITE_SCHEMA is returned by-
871** sqlite3_step(). In the new version, the original SQL text is retained-
872** and the statement is automatically recompiled if an schema change-
873** occurs.-
874*/-
875int sqlite3_prepare16(-
876 sqlite3 *db, /* Database handle. */ -
877 const void *zSql, /* UTF-16 encoded SQL statement. */-
878 int nBytes, /* Length of zSql in bytes. */-
879 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
880 const void **pzTail /* OUT: End of parsed string */-
881){-
882 int rc;-
883 rc = sqlite3Prepare16(db,zSql,nBytes,0,ppStmt,pzTail);-
884 assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */-
885 return rc;
executed 1725 times by 1 test: return rc;
Executed by:
  • Self test (438)
1725
886}-
887int sqlite3_prepare16_v2(-
888 sqlite3 *db, /* Database handle. */ -
889 const void *zSql, /* UTF-16 encoded SQL statement. */-
890 int nBytes, /* Length of zSql in bytes. */-
891 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
892 const void **pzTail /* OUT: End of parsed string */-
893){-
894 int rc;-
895 rc = sqlite3Prepare16(db,zSql,nBytes,SQLITE_PREPARE_SAVESQL,ppStmt,pzTail);-
896 assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */-
897 return rc;
executed 4 times by 1 test: return rc;
Executed by:
  • Self test (438)
4
898}-
899int sqlite3_prepare16_v3(-
900 sqlite3 *db, /* Database handle. */ -
901 const void *zSql, /* UTF-16 encoded SQL statement. */-
902 int nBytes, /* Length of zSql in bytes. */-
903 unsigned int prepFlags, /* Zero or more SQLITE_PREPARE_* flags */-
904 sqlite3_stmt **ppStmt, /* OUT: A pointer to the prepared statement */-
905 const void **pzTail /* OUT: End of parsed string */-
906){-
907 int rc;-
908 rc = sqlite3Prepare16(db,zSql,nBytes,-
909 SQLITE_PREPARE_SAVESQL|(prepFlags&SQLITE_PREPARE_MASK),-
910 ppStmt,pzTail);-
911 assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */-
912 return rc;
never executed: return rc;
0
913}-
914-
915#endif /* SQLITE_OMIT_UTF16 */-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2