Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a crash that could occur when creating an index in shared-cache mode with lookaside enabled. (CVS 6358) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
097737e3689b9a7e32815fe9c6fc6eed |
User & Date: | danielk1977 2009-03-18 18:43:36.000 |
References
2010-01-05
| ||
18:06 | Apply fix [097737e368] to the 3.6.1 branch. (check-in: 9f819ea6b2 user: dan tags: branch-3.6.1) | |
Context
2009-03-19
| ||
07:58 | Change sqlite3_step() to return SQLITE_LOCKED if a statement cannot be re-compiled due to locks on the shared-cache schema. Also add a blocking wrapper of sqlite3_prepare_v2() to the test code. (CVS 6359) (check-in: e8be1af922 user: danielk1977 tags: trunk) | |
2009-03-18
| ||
18:43 | Fix a crash that could occur when creating an index in shared-cache mode with lookaside enabled. (CVS 6358) (check-in: 097737e368 user: danielk1977 tags: trunk) | |
13:55 | Modify test script backup2.test so that it works on OSX. (CVS 6357) (check-in: d82e8cd43f user: danielk1977 tags: trunk) | |
Changes
Changes to src/build.c.
︙ | ︙ | |||
18 19 20 21 22 23 24 | ** CREATE INDEX ** DROP INDEX ** creating ID lists ** BEGIN TRANSACTION ** COMMIT ** ROLLBACK ** | | | 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | ** CREATE INDEX ** DROP INDEX ** creating ID lists ** BEGIN TRANSACTION ** COMMIT ** ROLLBACK ** ** $Id: build.c,v 1.524 2009/03/18 18:43:36 danielk1977 Exp $ */ #include "sqliteInt.h" /* ** This routine is called when a new SQL statement is beginning to ** be parsed. Initialize the pParse structure as needed. */ |
︙ | ︙ | |||
2842 2843 2844 2845 2846 2847 2848 | } pIndex = 0; } /* Clean up before exiting */ exit_create_index: if( pIndex ){ | > | | 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 | } pIndex = 0; } /* Clean up before exiting */ exit_create_index: if( pIndex ){ sqlite3_free(pIndex->zColAff); sqlite3DbFree(db, pIndex); } sqlite3ExprListDelete(db, pList); sqlite3SrcListDelete(db, pTblName); sqlite3DbFree(db, zName); return; } |
︙ | ︙ |
Changes to test/shared2.test.
1 2 3 4 5 6 7 8 9 10 11 | # 2005 January 19 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # 2005 January 19 # # The author disclaims copyright to this source code. In place of # a legal notice, here is a blessing: # # May you do good and not evil. # May you find forgiveness for yourself and forgive others. # May you share freely, never taking more than you give. # #*********************************************************************** # # $Id: shared2.test,v 1.7 2009/03/18 18:43:36 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl db close ifcapable !shared_cache { finish_test |
︙ | ︙ | |||
146 147 148 149 150 151 152 153 154 155 156 | execsql { INSERT INTO t1(a) VALUES(1) } db2 } {} do_test shared2-4.3 { db2 close db close } {} sqlite3_enable_shared_cache $::enable_shared_cache finish_test | > > > > > > > > > > > > > > > | 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | execsql { INSERT INTO t1(a) VALUES(1) } db2 } {} do_test shared2-4.3 { db2 close db close } {} # At one point, this was causing a crash. # do_test shared2-5.1 { sqlite3 db test.db sqlite3 db2 test.db execsql { CREATE TABLE t2(a, b, c) } # The following statement would crash when attempting to sqlite3_free() # a pointer allocated from a lookaside buffer. execsql { CREATE INDEX i1 ON t2(a) } db2 } {} db close db2 close sqlite3_enable_shared_cache $::enable_shared_cache finish_test |