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: d216ea9a 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: 76800769 user: drh tags: trunk) | |
14:29 | Issue a panic if there is an attempt to invoke backoffice_run() more than once. ... (check-in: 9d0bfcb3 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(). |
︙ | ︙ |