Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Extra effort to close all prepared statements prior to exiting, in order to avoid dangling journal files. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
7680076966d4b6bb4d0616fdc94b70fa |
| User & Date: | drh 2018-07-21 15:31:33.704 |
Context
|
2018-07-21
| ||
| 16:50 | Remove unnecessary #ifdefs and improve comments in db.c. No logic changes. check-in: d216ea9a84 user: drh tags: trunk | |
| 15:31 | Extra effort to close all prepared statements prior to exiting, in order to avoid dangling journal files. check-in: 7680076966 user: drh tags: trunk | |
| 14:29 | Issue a panic if there is an attempt to invoke backoffice_run() more than once. check-in: 9d0bfcb3d8 user: drh tags: trunk | |
Changes
Changes to src/backoffice.c.
| ︙ | ︙ | |||
220 221 222 223 224 225 226 |
x.idCurrent = idSelf;
x.tmCurrent = tmNow + BKOFCE_LEASE_TIME;
x.idNext = 0;
x.tmNext = 0;
backofficeWriteLease(&x);
db_end_transaction(0);
if( g.fAnyTrace ){
| | > | 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 |
x.idCurrent = idSelf;
x.tmCurrent = tmNow + BKOFCE_LEASE_TIME;
x.idNext = 0;
x.tmNext = 0;
backofficeWriteLease(&x);
db_end_transaction(0);
if( g.fAnyTrace ){
fprintf(stderr, "/***** Begin Backoffice Processing %d *****/\n",
getpid());
}
backoffice_work();
break;
}
/* This process needs to queue up and wait for the current lease
** to expire before continuing. */
x.idNext = idSelf;
|
| ︙ | ︙ |
Changes to src/db.c.
| ︙ | ︙ | |||
337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 |
if( flags & DB_PREPARE_PERSISTENT ){
prepFlags = SQLITE_PREPARE_PERSISTENT;
}
rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)==0 ){
db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
}
pStmt->pNext = pStmt->pPrev = 0;
pStmt->nStep = 0;
pStmt->rc = rc;
return rc;
}
int db_prepare(Stmt *pStmt, const char *zFormat, ...){
int rc;
va_list ap;
| > > > > > > > | 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 |
if( flags & DB_PREPARE_PERSISTENT ){
prepFlags = SQLITE_PREPARE_PERSISTENT;
}
rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)==0 ){
db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
}
#if 1
pStmt->pNext = db.pAllStmt;
pStmt->pPrev = 0;
if( db.pAllStmt ) db.pAllStmt->pPrev = pStmt;
db.pAllStmt = pStmt;
#else
pStmt->pNext = pStmt->pPrev = 0;
#endif
pStmt->nStep = 0;
pStmt->rc = rc;
return rc;
}
int db_prepare(Stmt *pStmt, const char *zFormat, ...){
int rc;
va_list ap;
|
| ︙ | ︙ | |||
364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 |
}
int db_static_prepare(Stmt *pStmt, const char *zFormat, ...){
int rc = SQLITE_OK;
if( blob_size(&pStmt->sql)==0 ){
va_list ap;
va_start(ap, zFormat);
rc = db_vprepare(pStmt, DB_PREPARE_PERSISTENT, zFormat, ap);
pStmt->pNext = db.pAllStmt;
pStmt->pPrev = 0;
if( db.pAllStmt ) db.pAllStmt->pPrev = pStmt;
db.pAllStmt = pStmt;
va_end(ap);
}
return rc;
}
/* Prepare a statement using text placed inside a Blob
** using blob_append_sql().
| > > | 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 |
}
int db_static_prepare(Stmt *pStmt, const char *zFormat, ...){
int rc = SQLITE_OK;
if( blob_size(&pStmt->sql)==0 ){
va_list ap;
va_start(ap, zFormat);
rc = db_vprepare(pStmt, DB_PREPARE_PERSISTENT, zFormat, ap);
#if 0
pStmt->pNext = db.pAllStmt;
pStmt->pPrev = 0;
if( db.pAllStmt ) db.pAllStmt->pPrev = pStmt;
db.pAllStmt = pStmt;
#endif
va_end(ap);
}
return rc;
}
/* Prepare a statement using text placed inside a Blob
** using blob_append_sql().
|
| ︙ | ︙ |