Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix a bug causing the pager-cache size to be reset to its default value whenever the database schema was reloaded. (CVS 5283) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
6dbe67da5cb0141e011b4fdcc3964a20 |
User & Date: | danielk1977 2008-06-23 16:53:47.000 |
Context
2008-06-23
| ||
17:44 | Fix a failure to report a failed malloc() within sqlite3_create_module(). (CVS 5284) (check-in: 3ca7dab88e user: danielk1977 tags: trunk) | |
16:53 | Fix a bug causing the pager-cache size to be reset to its default value whenever the database schema was reloaded. (CVS 5283) (check-in: 6dbe67da5c user: danielk1977 tags: trunk) | |
15:55 | Run (a subset of) the rtree tests from quick.test. (CVS 5282) (check-in: e872c78c72 user: danielk1977 tags: trunk) | |
Changes
Changes to ext/rtree/rtree1.test.
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 2008 Feb 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. # #*********************************************************************** # # The focus of this file is testing the r-tree extension. # | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # 2008 Feb 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. # #*********************************************************************** # # The focus of this file is testing the r-tree extension. # # $Id: rtree1.test,v 1.4 2008/06/23 16:53:47 danielk1977 Exp $ # if {![info exists testdir]} { set testdir [file join [file dirname $argv0] .. .. test] } source $testdir/tester.tcl |
︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 | } } {} # Test creating and dropping an rtree table with an odd name in # an attached database. # do_test rtree-1.2.1 { execsql { ATTACH 'test2.db' AS aux; CREATE VIRTUAL TABLE aux.'a" "b' USING rtree(ii, x1, x2, y1, y2); } } {} do_test rtree-1.2.2 { execsql { SELECT name FROM sqlite_master ORDER BY name } | > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | } } {} # Test creating and dropping an rtree table with an odd name in # an attached database. # do_test rtree-1.2.1 { file delete -force test2.db execsql { ATTACH 'test2.db' AS aux; CREATE VIRTUAL TABLE aux.'a" "b' USING rtree(ii, x1, x2, y1, y2); } } {} do_test rtree-1.2.2 { execsql { SELECT name FROM sqlite_master ORDER BY name } |
︙ | ︙ |
Changes to src/callback.c.
︙ | ︙ | |||
9 10 11 12 13 14 15 | ** May you share freely, never taking more than you give. ** ************************************************************************* ** ** This file contains functions used to access the internal hash tables ** of user defined functions and collation sequences. ** | | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ** May you share freely, never taking more than you give. ** ************************************************************************* ** ** This file contains functions used to access the internal hash tables ** of user defined functions and collation sequences. ** ** $Id: callback.c,v 1.24 2008/06/23 16:53:47 danielk1977 Exp $ */ #include "sqliteInt.h" /* ** Invoke the 'collation needed' callback to request a collation sequence ** in the database text encoding of name zName, length nName. |
︙ | ︙ | |||
324 325 326 327 328 329 330 331 332 333 334 335 336 337 | } /* ** Free all resources held by the schema structure. The void* argument points ** at a Schema struct. This function does not call sqlite3_free() on the ** pointer itself, it just cleans up subsiduary resources (i.e. the contents ** of the schema hash tables). */ void sqlite3SchemaFree(void *p){ Hash temp1; Hash temp2; HashElem *pElem; Schema *pSchema = (Schema *)p; | > > | 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 | } /* ** Free all resources held by the schema structure. The void* argument points ** at a Schema struct. This function does not call sqlite3_free() on the ** pointer itself, it just cleans up subsiduary resources (i.e. the contents ** of the schema hash tables). ** ** The Schema.cache_size variable is not cleared. */ void sqlite3SchemaFree(void *p){ Hash temp1; Hash temp2; HashElem *pElem; Schema *pSchema = (Schema *)p; |
︙ | ︙ |
Changes to src/prepare.c.
︙ | ︙ | |||
9 10 11 12 13 14 15 | ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains the implementation of the sqlite3_prepare() ** interface, and routines that contribute to loading the database schema ** from disk. ** | | | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | ** May you share freely, never taking more than you give. ** ************************************************************************* ** This file contains the implementation of the sqlite3_prepare() ** interface, and routines that contribute to loading the database schema ** from disk. ** ** $Id: prepare.c,v 1.88 2008/06/23 16:53:47 danielk1977 Exp $ */ #include "sqliteInt.h" #include <ctype.h> /* ** Fill the InitData structure with an error message that indicates ** that the database is corrupt. |
︙ | ︙ | |||
270 271 272 273 274 275 276 | } } }else{ DbSetProperty(db, iDb, DB_Empty); } pDb->pSchema->enc = ENC(db); | > | | | | | > | 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 | } } }else{ DbSetProperty(db, iDb, DB_Empty); } pDb->pSchema->enc = ENC(db); if( pDb->pSchema->cache_size==0 ){ size = meta[2]; if( size==0 ){ size = SQLITE_DEFAULT_CACHE_SIZE; } if( size<0 ) size = -size; pDb->pSchema->cache_size = size; sqlite3BtreeSetCacheSize(pDb->pBt, pDb->pSchema->cache_size); } /* ** file_format==1 Version 3.0.0. ** file_format==2 Version 3.1.3. // ALTER TABLE ADD COLUMN ** file_format==3 Version 3.1.4. // ditto but with non-NULL defaults ** file_format==4 Version 3.3.0. // DESC indices. Boolean constants */ |
︙ | ︙ |
Changes to test/pragma.test.
︙ | ︙ | |||
8 9 10 11 12 13 14 | # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. # # This file implements tests for the PRAGMA command. # | | > > | 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | # May you share freely, never taking more than you give. # #*********************************************************************** # This file implements regression tests for SQLite library. # # This file implements tests for the PRAGMA command. # # $Id: pragma.test,v 1.62 2008/06/23 16:53:47 danielk1977 Exp $ set testdir [file dirname $argv0] source $testdir/tester.tcl # Test organization: # # pragma-1.*: Test cache_size, default_cache_size and synchronous on main db. # pragma-2.*: Test synchronous on attached db. # pragma-3.*: Test detection of table/index inconsistency by integrity_check. # pragma-4.*: Test cache_size and default_cache_size on attached db. # pragma-5.*: Test that pragma synchronous may not be used inside of a # transaction. # pragma-6.*: Test schema-query pragmas. # pragma-7.*: Miscellaneous tests. # pragma-8.*: Test user_version and schema_version pragmas. # pragma-9.*: Test temp_store and temp_store_directory. # pragma-10.*: Test the count_changes pragma in the presence of triggers. # pragma-11.*: Test the collation_list pragma. # pragma-14.*: Test the page_count pragma. # pragma-15.*: Test that the value set using the cache_size pragma is not # reset when the schema is reloaded. # ifcapable !pragma { finish_test return } |
︙ | ︙ | |||
1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 | db2 close execsql { ATTACH 'test2.db' AS aux; PRAGMA aux.page_count; } } {5} } # Reset the sqlite3_temp_directory variable for the next run of tests: sqlite3 dbX :memory: dbX eval {PRAGMA temp_store_directory = ""} dbX close finish_test | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 | db2 close execsql { ATTACH 'test2.db' AS aux; PRAGMA aux.page_count; } } {5} } # Test that the value set using the cache_size pragma is not reset when the # schema is reloaded. # ifcapable pager_pragmas { db close sqlite3 db test.db do_test pragma-15.1 { execsql { PRAGMA cache_size=59; PRAGMA cache_size; } } {59} do_test pragma-15.2 { sqlite3 db2 test.db execsql { CREATE TABLE newtable(a, b, c); } db2 db2 close } {} do_test pragma-15.3 { # Evaluating this statement will cause the schema to be reloaded (because # the schema was changed by another connection in pragma-15.2). At one # point there was a bug that reset the cache_size to its default value # when this happened. execsql { SELECT * FROM sqlite_master } execsql { PRAGMA cache_size } } {59} } # Reset the sqlite3_temp_directory variable for the next run of tests: sqlite3 dbX :memory: dbX eval {PRAGMA temp_store_directory = ""} dbX close finish_test |