@@ -88,10 +88,11 @@
88 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static struct sCommitHook {
89 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int (*xHook)(void); /* Functions to call at db_end_transaction() */
90 90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int sequence; /* Call functions in sequence order */
91 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} aHook[5];
92 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static Stmt *pAllStmt = 0; /* List of all unfinalized statements */
93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static int nPrepare = 0; /* Number of calls to sqlite3_prepare() */
93 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
94 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
95 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This routine is called by the SQLite commit-hook mechanism
96 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** just prior to each commit. All this routine does is verify
97 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** that nBegin really is zero. That insures that transactions
@@ -199,10 +200,11 @@
199 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zSql;
200 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_zero(&pStmt->sql);
201 202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_vappendf(&pStmt->sql, zFormat, ap);
202 203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
va_end(ap);
203 204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSql = blob_str(&pStmt->sql);
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nPrepare++;
204 206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_prepare_v2(g.db, zSql, -1, &pStmt->pStmt, 0);
205 207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=0 && !errOk ){
206 208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
207 209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
208 210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
pStmt->pNext = pStmt->pPrev = 0;
@@ -736,10 +738,11 @@
736 738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* If the "isexe" column is missing from the vfile table, then
737 739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** add it now. This code added on 2010-03-06. After all users have
738 740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** upgraded, this code can be safely deleted.
739 741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
740 742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rc = sqlite3_prepare(g.db, "SELECT isexe FROM vfile", -1, &pStmt, 0);
743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ nPrepare++;
741 744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_finalize(pStmt);
742 745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc==SQLITE_ERROR ){
743 746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_exec(g.db, "ALTER TABLE vfile ADD COLUMN isexe BOOLEAN", 0, 0, 0);
744 747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
745 748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -966,34 +969,35 @@
966 969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** argument is true. Ignore unfinalized statements when false.
967 970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
968 971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void db_close(int reportErrors){
969 972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_stmt *pStmt;
970 973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.db==0 ) return;
971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.fSqlTrace ){
974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.fSqlStats ){
972 975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cur, hiwtr;
973 976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_LOOKASIDE_USED, &cur, &hiwtr, 0);
974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- LOOKASIDE_USED %10d %10d\n", cur, hiwtr);
977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- LOOKASIDE_USED %10d %10d\n", cur, hiwtr);
975 978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_LOOKASIDE_HIT, &cur, &hiwtr, 0);
976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- LOOKASIDE_HIT %10d\n", hiwtr);
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- LOOKASIDE_HIT %10d\n", hiwtr);
977 980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE, &cur,&hiwtr,0);
978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- LOOKASIDE_MISS_SIZE %10d\n", hiwtr);
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- LOOKASIDE_MISS_SIZE %10d\n", hiwtr);
979 982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL, &cur,&hiwtr,0);
980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- LOOKASIDE_MISS_FULL %10d\n", hiwtr);
983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- LOOKASIDE_MISS_FULL %10d\n", hiwtr);
981 984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_CACHE_USED, &cur, &hiwtr, 0);
982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- CACHE_USED %10d\n", cur);
985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- CACHE_USED %10d\n", cur);
983 986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_SCHEMA_USED, &cur, &hiwtr, 0);
984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- SCHEMA_USED %10d\n", cur);
987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- SCHEMA_USED %10d\n", cur);
985 988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_db_status(g.db, SQLITE_DBSTATUS_STMT_USED, &cur, &hiwtr, 0);
986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- STMT_USED %10d\n", cur);
989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- STMT_USED %10d\n", cur);
987 990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_status(SQLITE_STATUS_MEMORY_USED, &cur, &hiwtr, 0);
988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- MEMORY_USED %10d %10d\n", cur, hiwtr);
991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- MEMORY_USED %10d %10d\n", cur, hiwtr);
989 992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_status(SQLITE_STATUS_MALLOC_SIZE, &cur, &hiwtr, 0);
990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- MALLOC_SIZE %10d\n", hiwtr);
993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- MALLOC_SIZE %10d\n", hiwtr);
991 994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_status(SQLITE_STATUS_MALLOC_COUNT, &cur, &hiwtr, 0);
992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- MALLOC_COUNT %10d %10d\n", cur, hiwtr);
995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- MALLOC_COUNT %10d %10d\n", cur, hiwtr);
993 996 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_status(SQLITE_STATUS_PAGECACHE_OVERFLOW, &cur, &hiwtr, 0);
994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fprintf(stderr, "-- PCACHE_OVFLOW %10d %10d\n", cur, hiwtr);
997 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- PCACHE_OVFLOW %10d %10d\n", cur, hiwtr);
998 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fprintf(stderr, "-- prepared statements %10d\n", nPrepare);
995 999 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
996 1000 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( pAllStmt ){
997 1001 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_finalize(pAllStmt);
998 1002 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
999 1003 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(1);
1000 1004 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!