Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Always unlink prepared statements from the Stmt list prior to finalizing them. This prevents an error in db_finalize() from triggering a rollback and hence a recursive call to sqlite3_finalize(). |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | forum-v2 |
| Files: | files | file ages | folders |
| SHA3-256: |
42d821a714d092a86dfcdf6b815300b7 |
| User & Date: | drh 2018-07-24 22:01:12.542 |
Context
|
2018-07-24
| ||
| 22:05 | Update the built-in SQLite to the latest trunk version that includes enhancements that allow a CREATE INDEX statement to occur without interrupting a running SELECT statement. This is important for correct operation of "fossil rebuild" since the forumpost table is created on demand in the middle of a query over the blob table. check-in: e2d87cdd76 user: drh tags: forum-v2 | |
| 22:01 | Always unlink prepared statements from the Stmt list prior to finalizing them. This prevents an error in db_finalize() from triggering a rollback and hence a recursive call to sqlite3_finalize(). check-in: 42d821a714 user: drh tags: forum-v2 | |
| 19:44 | Work toward pages to enter forum posts. This is an incremental check-in to save state and definitely does not work. check-in: 7b5099ea44 user: drh tags: forum-v2 | |
Changes
Changes to src/db.c.
| ︙ | ︙ | |||
490 491 492 493 494 495 496 |
db_stats(pStmt);
rc = sqlite3_reset(pStmt->pStmt);
db_check_result(rc);
return rc;
}
int db_finalize(Stmt *pStmt){
int rc;
| < < < < < > > > > > | 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 |
db_stats(pStmt);
rc = sqlite3_reset(pStmt->pStmt);
db_check_result(rc);
return rc;
}
int db_finalize(Stmt *pStmt){
int rc;
if( pStmt->pNext ){
pStmt->pNext->pPrev = pStmt->pPrev;
}
if( pStmt->pPrev ){
pStmt->pPrev->pNext = pStmt->pNext;
}else if( db.pAllStmt==pStmt ){
db.pAllStmt = pStmt->pNext;
}
pStmt->pNext = 0;
pStmt->pPrev = 0;
db_stats(pStmt);
blob_reset(&pStmt->sql);
rc = sqlite3_finalize(pStmt->pStmt);
db_check_result(rc);
pStmt->pStmt = 0;
return rc;
}
/*
** Return the rowid of the most recent insert
*/
int db_last_insert_rowid(void){
|
| ︙ | ︙ |