Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a failing assert() in sqlite3ResetAllSchemasOfConnection(). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0ea049f342d11c676e148239e45d2521 |
User & Date: | dan 2018-11-27 19:47:55.193 |
Context
2018-11-28
| ||
01:45 | Always enable SQLITE_ENABLE_DESERIALIZE for the MSVC makefile as this is necessary to get releasetest.tcl to work. (check-in: d362dedba3 user: drh tags: trunk) | |
2018-11-27
| ||
19:47 | Fix a failing assert() in sqlite3ResetAllSchemasOfConnection(). (check-in: 0ea049f342 user: dan tags: trunk) | |
17:02 | Improvements to two cases in pragma4.test. (check-in: 3c893d9bcc user: drh tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
540 541 542 543 544 545 546 | /* ** Erase all schema information from all attached databases (including ** "main" and "temp") for a single database connection. */ void sqlite3ResetAllSchemasOfConnection(sqlite3 *db){ int i; sqlite3BtreeEnterAll(db); | < > | > > > > | > | 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 | /* ** Erase all schema information from all attached databases (including ** "main" and "temp") for a single database connection. */ void sqlite3ResetAllSchemasOfConnection(sqlite3 *db){ int i; sqlite3BtreeEnterAll(db); for(i=0; i<db->nDb; i++){ Db *pDb = &db->aDb[i]; if( pDb->pSchema ){ if( db->nSchemaLock==0 ){ sqlite3SchemaClear(pDb->pSchema); }else{ DbSetProperty(db, i, DB_ResetWanted); } } } db->mDbFlags &= ~(DBFLAG_SchemaChange|DBFLAG_SchemaKnownOk); sqlite3VtabUnlockList(db); sqlite3BtreeLeaveAll(db); if( db->nSchemaLock==0 ){ sqlite3CollapseDatabaseArray(db); } } /* ** This routine is called when a commit occurs. */ void sqlite3CommitInternalChanges(sqlite3 *db){ db->mDbFlags &= ~DBFLAG_SchemaChange; |
︙ | ︙ |
Changes to test/vtab_err.test.
︙ | ︙ | |||
16 17 18 19 20 21 22 | ifcapable !vtab { finish_test return } | < | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ifcapable !vtab { finish_test return } unset -nocomplain echo_module_begin_fail do_ioerr_test vtab_err-1 -tclprep { register_echo_module [sqlite3_connection_pointer db] } -sqlbody { BEGIN; CREATE TABLE r(a PRIMARY KEY, b, c); CREATE VIRTUAL TABLE e USING echo(r); |
︙ | ︙ | |||
58 59 60 61 62 63 64 65 66 | CREATE TABLE r2(a, b, c); INSERT INTO r2 SELECT * FROM e; INSERT INTO e SELECT a||'x', b, c FROM r2; COMMIT; } sqlite3_memdebug_fail -1 finish_test | > > > > > > > > > > > > > > > > > > > > > > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | CREATE TABLE r2(a, b, c); INSERT INTO r2 SELECT * FROM e; INSERT INTO e SELECT a||'x', b, c FROM r2; COMMIT; } sqlite3_memdebug_fail -1 reset_db register_echo_module [sqlite3_connection_pointer db] do_execsql_test vtab_err-3.0 { CREATE TABLE r(a PRIMARY KEY, b, c); CREATE VIRTUAL TABLE e USING echo(r); } faultsim_save_and_close do_faultsim_test vtab_err-3 -faults oom-t* -prep { faultsim_restore_and_reopen register_echo_module [sqlite3_connection_pointer db] } -body { execsql { BEGIN; CREATE TABLE xyz(x); SELECT a FROM e; COMMIT; } } -test { faultsim_test_result {0 {}} } finish_test |