Fix a bug causing the pager-cache size to be reset to its default value whenever the database schema was reloaded. (CVS 5283)
FossilOrigin-Name: 6dbe67da5cb0141e011b4fdcc3964a20f68be843
This commit is contained in:
parent
b13dee9900
commit
8cf6c554c0
@ -11,7 +11,7 @@
|
||||
#
|
||||
# The focus of this file is testing the r-tree extension.
|
||||
#
|
||||
# $Id: rtree1.test,v 1.3 2008/06/23 15:55:52 danielk1977 Exp $
|
||||
# $Id: rtree1.test,v 1.4 2008/06/23 16:53:47 danielk1977 Exp $
|
||||
#
|
||||
|
||||
if {![info exists testdir]} {
|
||||
@ -61,6 +61,7 @@ do_test rtree-1.1.3 {
|
||||
# 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);
|
||||
|
18
manifest
18
manifest
@ -1,5 +1,5 @@
|
||||
C Run\s(a\ssubset\sof)\sthe\srtree\stests\sfrom\squick.test.\s(CVS\s5282)
|
||||
D 2008-06-23T15:55:52
|
||||
C Fix\sa\sbug\scausing\sthe\spager-cache\ssize\sto\sbe\sreset\sto\sits\sdefault\svalue\swhenever\sthe\sdatabase\sschema\swas\sreloaded.\s(CVS\s5283)
|
||||
D 2008-06-23T16:53:47
|
||||
F Makefile.arm-wince-mingw32ce-gcc ac5f7b2cef0cd850d6f755ba6ee4ab961b1fadf7
|
||||
F Makefile.in ff6f90048555a0088f6a4b7406bed5e55a7c4eff
|
||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||
@ -66,7 +66,7 @@ F ext/icu/icu.c 12e763d288d23b5a49de37caa30737b971a2f1e2
|
||||
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
|
||||
F ext/rtree/rtree.c 20b87410e55f33a03e0f7cc58c0f1908faf91858
|
||||
F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
|
||||
F ext/rtree/rtree1.test b7c40c535804f786ea1dbf975a28f0c0e2d26f88
|
||||
F ext/rtree/rtree1.test 994da7f85328cf499cdf149c6caa32547ea75dbf
|
||||
F ext/rtree/rtree2.test 07aea32287ce3f7717fe285e6172e5418ce3fd52
|
||||
F ext/rtree/rtree3.test 877a09c1a0c2b87af0f94f3a286e7dd3b65adf22
|
||||
F ext/rtree/rtree4.test 11724f766a74f48710998cdd7552cec140c55bf9
|
||||
@ -99,7 +99,7 @@ F src/btree.c 6d25027de7c26b1c0a69ad3f2045f944e20fba22
|
||||
F src/btree.h b1bd7e0b8c2e33658aaf447cb0d1d94f74664b6b
|
||||
F src/btreeInt.h 02325f04758dba0fcd0c08ac55cd9b189dad61a5
|
||||
F src/build.c 88cc5501a87f72d0538b040001d88d31f994edea
|
||||
F src/callback.c 77b302b0d41468dcda78c70e706e5b84577f0fa0
|
||||
F src/callback.c 3ba98ae46f60aa7c2c40eac7d18fe5ba9b706b83
|
||||
F src/complete.c cb14e06dbe79dee031031f0d9e686ff306afe07c
|
||||
F src/date.c e841168e5520bbbb2a1cbcdce7531d8b23017b4d
|
||||
F src/delete.c d3fc5987f2eb88f7b9549d58a5dfea079a83fe8b
|
||||
@ -137,7 +137,7 @@ F src/pager.c e2a49872f1e15eb83895ace704c48ac8ded998ba
|
||||
F src/pager.h 6aa3050a3c684475a5a9dbad5ff1cebad612acba
|
||||
F src/parse.y 8c2c3145eebe1964eb279cb3c4e502eae28bb0fa
|
||||
F src/pragma.c e6c55362d164e4bc8ebc83a9a01635552d854800
|
||||
F src/prepare.c 3c19149e75fbf3b08471a389f064da7302cad9c5
|
||||
F src/prepare.c aba51dad52308e3d9d2074d8ff4e612e7f1cab51
|
||||
F src/printf.c 8b063da9dcde26b7c500a01444b718d86f21bc6e
|
||||
F src/random.c 5c754319d38abdd6acd74601ee0105504adc508a
|
||||
F src/select.c ea3e5e233cf16f4cb43f6ec35972683ae7bc03f3
|
||||
@ -423,7 +423,7 @@ F test/pager3.test 2323bf27fd5bd887b580247e5bce500ceee994b4
|
||||
F test/pageropt.test 6df72c441db0a037b7ec6990d16311c24fbea77b
|
||||
F test/pagesize.test e0a8b3fe80f8b8e808d94a00734c7a18c76c407e
|
||||
F test/permutations.test eb7373f8dd450b99b8addfdabe820da0cc851e54
|
||||
F test/pragma.test 6b9bee4f5dbb9bccde4d0d5caf13a33f9da86e15
|
||||
F test/pragma.test 44bc52afa72cabfeae82641e0033ca24919f3ce8
|
||||
F test/pragma2.test 5364893491b9231dd170e3459bfc2e2342658b47
|
||||
F test/printf.test c3405535b418d454e8a52196a0fc592ec9eec58d
|
||||
F test/progress.test 5b075c3c790c7b2a61419bc199db87aaf48b8301 x
|
||||
@ -592,7 +592,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
|
||||
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
||||
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
|
||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||
P 006fd69bf56f05448fd9aa82d3b1cdcc175369ad
|
||||
R eaeaee6d431b07ec903a8c0b496cdb2e
|
||||
P e872c78c72eb5976e72123485692a76409bd857f
|
||||
R f7cd8593345fa0392a9591d6d8df4193
|
||||
U danielk1977
|
||||
Z 4f90c48cde8f4b8c15d87a303ff9e628
|
||||
Z 82fd96eb942b7f8687f6348bde0b3b6d
|
||||
|
@ -1 +1 @@
|
||||
e872c78c72eb5976e72123485692a76409bd857f
|
||||
6dbe67da5cb0141e011b4fdcc3964a20f68be843
|
@ -13,7 +13,7 @@
|
||||
** This file contains functions used to access the internal hash tables
|
||||
** of user defined functions and collation sequences.
|
||||
**
|
||||
** $Id: callback.c,v 1.23 2007/08/29 12:31:26 danielk1977 Exp $
|
||||
** $Id: callback.c,v 1.24 2008/06/23 16:53:47 danielk1977 Exp $
|
||||
*/
|
||||
|
||||
#include "sqliteInt.h"
|
||||
@ -328,6 +328,8 @@ FuncDef *sqlite3FindFunction(
|
||||
** 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;
|
||||
|
@ -13,7 +13,7 @@
|
||||
** interface, and routines that contribute to loading the database schema
|
||||
** from disk.
|
||||
**
|
||||
** $Id: prepare.c,v 1.87 2008/06/15 02:51:48 drh Exp $
|
||||
** $Id: prepare.c,v 1.88 2008/06/23 16:53:47 danielk1977 Exp $
|
||||
*/
|
||||
#include "sqliteInt.h"
|
||||
#include <ctype.h>
|
||||
@ -274,11 +274,13 @@ static int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg){
|
||||
}
|
||||
pDb->pSchema->enc = ENC(db);
|
||||
|
||||
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);
|
||||
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.
|
||||
|
@ -12,7 +12,7 @@
|
||||
#
|
||||
# This file implements tests for the PRAGMA command.
|
||||
#
|
||||
# $Id: pragma.test,v 1.61 2008/06/06 11:11:27 danielk1977 Exp $
|
||||
# $Id: pragma.test,v 1.62 2008/06/23 16:53:47 danielk1977 Exp $
|
||||
|
||||
set testdir [file dirname $argv0]
|
||||
source $testdir/tester.tcl
|
||||
@ -32,6 +32,8 @@ source $testdir/tester.tcl
|
||||
# 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 {
|
||||
@ -1151,6 +1153,35 @@ ifcapable pager_pragmas {
|
||||
} {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 = ""}
|
||||
|
Loading…
x
Reference in New Issue
Block a user