1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-07 02:42:48 +03:00

Merge leaf created by accident.

FossilOrigin-Name: 1f680cb37584baa106cee0544d5be63049d55858
This commit is contained in:
dan
2010-08-20 12:33:59 +00:00
6 changed files with 61 additions and 38 deletions

View File

@@ -1,5 +1,5 @@
C Avoid\sassuming\sthat\sthe\suser\shas\s"."\sin\stheir\spath\swhen\srunning\smulti-process\stests. C Merge\sleaf\screated\sby\saccident.
D 2010-08-20T12:31:30 D 2010-08-20T12:34:00
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -139,7 +139,7 @@ F src/main.c 99622181f36d68e9f2a851c7b34263b3dcd03470
F src/malloc.c 19a468460c7df72de245f10c06bd0625777b7c83 F src/malloc.c 19a468460c7df72de245f10c06bd0625777b7c83
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645 F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c 89d4ea8d5cdd55635cbaa48ad53132af6294cbb2 F src/mem1.c 89d4ea8d5cdd55635cbaa48ad53132af6294cbb2
F src/mem2.c 12c91260fd2320eda9355dea5445b137f848c05b F src/mem2.c 9e5f72e38573db9598fe60d3fa530d473cc8714e
F src/mem3.c 9b237d911ba9904142a804be727cc6664873f8a3 F src/mem3.c 9b237d911ba9904142a804be727cc6664873f8a3
F src/mem5.c eb7a5cb98915dd7a086fa415ce3a5a0f20d0acff F src/mem5.c eb7a5cb98915dd7a086fa415ce3a5a0f20d0acff
F src/memjournal.c 4a93a25ad9f76c40afa070ffd7187eb3a5fd7aee F src/memjournal.c 4a93a25ad9f76c40afa070ffd7187eb3a5fd7aee
@@ -161,7 +161,7 @@ F src/pager.h ef8c8f71ab022cc2fff768a1175dd32355be9dcd
F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58 F src/parse.y 12b7ebd61ea54f0e1b1083ff69cc2c8ce9353d58
F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07 F src/pcache.c 1e9aa2dbc0845b52e1b51cc39753b6d1e041cb07
F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050 F src/pcache.h c683390d50f856d4cd8e24342ae62027d1bb6050
F src/pcache1.c 638844c118163e3a10e1e3265703adf74870312d F src/pcache1.c e921e8a1d52c93abde63cb6dad1fa39770410c52
F src/pragma.c 8b24ce00a93de345b6c3bd1e1e2cfba9f63d2325 F src/pragma.c 8b24ce00a93de345b6c3bd1e1e2cfba9f63d2325
F src/prepare.c ce4c35a2b1d5fe916e4a46b70d24a6e997d7c4c6 F src/prepare.c ce4c35a2b1d5fe916e4a46b70d24a6e997d7c4c6
F src/printf.c 8ae5082dd38a1b5456030c3755ec3a392cd51506 F src/printf.c 8ae5082dd38a1b5456030c3755ec3a392cd51506
@@ -176,7 +176,7 @@ F src/sqliteInt.h e33b15e8176442bf7484f0e716edfd1ce03b2979
F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44 F src/sqliteLimit.h a17dcd3fb775d63b64a43a55c54cb282f9726f44
F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b F src/status.c 496913d4e8441195f6f2a75b1c95993a45b9b30b
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
F src/tclsqlite.c 5cd96419fb6c771006f064196ccc70c29d01bec7 F src/tclsqlite.c cacee9482417b6fc6043f6bb831ff9496d46242d
F src/test1.c 55005c9781b157b1d215ba145768783b9abae78c F src/test1.c 55005c9781b157b1d215ba145768783b9abae78c
F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31 F src/test2.c 80d323d11e909cf0eb1b6fbb4ac22276483bcf31
F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94 F src/test3.c 4c21700c73a890a47fc685c1097bfb661346ac94
@@ -259,7 +259,7 @@ F test/autoindex1.test 7df441bf0e7a88644eb80993339dbf1db3a12c68
F test/autovacuum.test bb7c0885e6f8f1d633045de48f2b66082162766d F test/autovacuum.test bb7c0885e6f8f1d633045de48f2b66082162766d
F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6 F test/autovacuum_ioerr2.test 598b0663074d3673a9c1bc9a16e80971313bafe6
F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85 F test/avtrans.test 0252654f4295ddda3b2cce0e894812259e655a85
F test/backcompat.test bf0f2468f9c9aba447a0625060b09d9663795074 F test/backcompat.test 6df9e6d8c7be6d574e78fd352faa5f94fb744f7a
F test/backup.test 200e64bd91244b73ca8094bc1e03dfc83cc94c2e F test/backup.test 200e64bd91244b73ca8094bc1e03dfc83cc94c2e
F test/backup2.test b7c69f937c912e85ac8a5dbd1e1cf290302b2d49 F test/backup2.test b7c69f937c912e85ac8a5dbd1e1cf290302b2d49
F test/backup_ioerr.test 1f012e692f42c0442ae652443258f70e9f20fa38 F test/backup_ioerr.test 1f012e692f42c0442ae652443258f70e9f20fa38
@@ -845,7 +845,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
P 8d05f66db7d6e8b8916fcf22fa92159d863d2610 P daa5d461b98fc068cbba52d338ca8690edd27bc9 40e11aabc7668e1c9db43d9183edb445996254bd
R 3cb626532d96dbbd2c42f67aa60740fe R bc0dee4f394d8df90bdcb29bf2bdf710
U dan U dan
Z 1b26b23e6878cdb3ce0d4315c76a4f13 Z f7574014cc8231579235f0f454dcfece

View File

@@ -1 +1 @@
daa5d461b98fc068cbba52d338ca8690edd27bc9 1f680cb37584baa106cee0544d5be63049d55858

View File

@@ -378,7 +378,7 @@ void sqlite3MemSetDefault(void){
** Set the "type" of an allocation. ** Set the "type" of an allocation.
*/ */
void sqlite3MemdebugSetType(void *p, u8 eType){ void sqlite3MemdebugSetType(void *p, u8 eType){
if( p ){ if( p && sqlite3GlobalConfig.m.xMalloc==sqlite3MemMalloc ){
struct MemBlockHdr *pHdr; struct MemBlockHdr *pHdr;
pHdr = sqlite3MemsysGetHeader(p); pHdr = sqlite3MemsysGetHeader(p);
assert( pHdr->iForeGuard==FOREGUARD ); assert( pHdr->iForeGuard==FOREGUARD );
@@ -397,7 +397,7 @@ void sqlite3MemdebugSetType(void *p, u8 eType){
*/ */
int sqlite3MemdebugHasType(void *p, u8 eType){ int sqlite3MemdebugHasType(void *p, u8 eType){
int rc = 1; int rc = 1;
if( p ){ if( p && sqlite3GlobalConfig.m.xMalloc==sqlite3MemMalloc ){
struct MemBlockHdr *pHdr; struct MemBlockHdr *pHdr;
pHdr = sqlite3MemsysGetHeader(p); pHdr = sqlite3MemsysGetHeader(p);
assert( pHdr->iForeGuard==FOREGUARD ); /* Allocation is valid */ assert( pHdr->iForeGuard==FOREGUARD ); /* Allocation is valid */
@@ -419,7 +419,7 @@ int sqlite3MemdebugHasType(void *p, u8 eType){
*/ */
int sqlite3MemdebugNoType(void *p, u8 eType){ int sqlite3MemdebugNoType(void *p, u8 eType){
int rc = 1; int rc = 1;
if( p ){ if( p && sqlite3GlobalConfig.m.xMalloc==sqlite3MemMalloc ){
struct MemBlockHdr *pHdr; struct MemBlockHdr *pHdr;
pHdr = sqlite3MemsysGetHeader(p); pHdr = sqlite3MemsysGetHeader(p);
assert( pHdr->iForeGuard==FOREGUARD ); /* Allocation is valid */ assert( pHdr->iForeGuard==FOREGUARD ); /* Allocation is valid */

View File

@@ -200,6 +200,25 @@ static void pcache1Free(void *p){
} }
} }
#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
/*
** Return the size of a pache allocation
*/
static int pcache1MemSize(void *p){
assert( sqlite3_mutex_held(pcache1.mutex) );
if( p>=pcache1.pStart && p<pcache1.pEnd ){
return pcache1.szSlot;
}else{
int iSize;
assert( sqlite3MemdebugHasType(p, MEMTYPE_PCACHE) );
sqlite3MemdebugSetType(p, MEMTYPE_HEAP);
iSize = sqlite3MallocSize(p);
sqlite3MemdebugSetType(p, MEMTYPE_PCACHE);
return iSize;
}
}
#endif /* SQLITE_ENABLE_MEMORY_MANAGEMENT */
/* /*
** Allocate a new page object initially associated with cache pCache. ** Allocate a new page object initially associated with cache pCache.
*/ */
@@ -748,7 +767,7 @@ int sqlite3PcacheReleaseMemory(int nReq){
PgHdr1 *p; PgHdr1 *p;
pcache1EnterMutex(); pcache1EnterMutex();
while( (nReq<0 || nFree<nReq) && (p=pcache1.pLruTail) ){ while( (nReq<0 || nFree<nReq) && (p=pcache1.pLruTail) ){
nFree += sqlite3MallocSize(PGHDR1_TO_PAGE(p)); nFree += pcache1MemSize(PGHDR1_TO_PAGE(p));
pcache1PinPage(p); pcache1PinPage(p);
pcache1RemoveFromHash(p); pcache1RemoveFromHash(p);
pcache1FreePage(p); pcache1FreePage(p);

View File

@@ -3015,7 +3015,7 @@ static int DbMain(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
** used to open a new SQLite database. See the DbMain() routine above ** used to open a new SQLite database. See the DbMain() routine above
** for additional information. ** for additional information.
*/ */
EXTERN int Sqlite3_Init(Tcl_Interp *interp){ int Sqlite3_Init(Tcl_Interp *interp){
Tcl_InitStubs(interp, "8.4", 0); Tcl_InitStubs(interp, "8.4", 0);
Tcl_CreateObjCommand(interp, "sqlite3", (Tcl_ObjCmdProc*)DbMain, 0, 0); Tcl_CreateObjCommand(interp, "sqlite3", (Tcl_ObjCmdProc*)DbMain, 0, 0);
Tcl_PkgProvide(interp, "sqlite3", PACKAGE_VERSION); Tcl_PkgProvide(interp, "sqlite3", PACKAGE_VERSION);
@@ -3023,24 +3023,24 @@ EXTERN int Sqlite3_Init(Tcl_Interp *interp){
Tcl_PkgProvide(interp, "sqlite", PACKAGE_VERSION); Tcl_PkgProvide(interp, "sqlite", PACKAGE_VERSION);
return TCL_OK; return TCL_OK;
} }
EXTERN int Tclsqlite3_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); } int Tclsqlite3_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); }
EXTERN int Sqlite3_SafeInit(Tcl_Interp *interp){ return TCL_OK; } int Sqlite3_SafeInit(Tcl_Interp *interp){ return TCL_OK; }
EXTERN int Tclsqlite3_SafeInit(Tcl_Interp *interp){ return TCL_OK; } int Tclsqlite3_SafeInit(Tcl_Interp *interp){ return TCL_OK; }
EXTERN int Sqlite3_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; } int Sqlite3_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Tclsqlite3_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; } int Tclsqlite3_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Sqlite3_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK; } int Sqlite3_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Tclsqlite3_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK;} int Tclsqlite3_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK;}
#ifndef SQLITE_3_SUFFIX_ONLY #ifndef SQLITE_3_SUFFIX_ONLY
EXTERN int Sqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); } int Sqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); }
EXTERN int Tclsqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); } int Tclsqlite_Init(Tcl_Interp *interp){ return Sqlite3_Init(interp); }
EXTERN int Sqlite_SafeInit(Tcl_Interp *interp){ return TCL_OK; } int Sqlite_SafeInit(Tcl_Interp *interp){ return TCL_OK; }
EXTERN int Tclsqlite_SafeInit(Tcl_Interp *interp){ return TCL_OK; } int Tclsqlite_SafeInit(Tcl_Interp *interp){ return TCL_OK; }
EXTERN int Sqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; } int Sqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Tclsqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; } int Tclsqlite_Unload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Sqlite_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK; } int Sqlite_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK; }
EXTERN int Tclsqlite_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK;} int Tclsqlite_SafeUnload(Tcl_Interp *interp, int flags){ return TCL_OK;}
#endif #endif
#ifdef TCLSH #ifdef TCLSH

View File

@@ -34,12 +34,16 @@ db close
# against. # against.
# #
set binaries [list] set binaries [list]
set pattern "[file tail [info nameofexec]]*" set pattern "[file tail [info nameofexec]]?*"
foreach file [glob $pattern] { if {$tcl_platform(platform)=="windows"} {
if {[file executable $file]} {lappend binaries $file} set pattern [string map {\.exe {}} $pattern]
}
foreach file [glob -nocomplain $pattern] {
if {[file executable $file] && } {lappend binaries $file}
} }
if {[llength $binaries]==0} { if {[llength $binaries]==0} {
puts "WARNING: No binaries to test against. No tests have been run." puts "WARNING: No historical binaries to test against."
puts "WARNING: No backwards-compatibility tests have been run."
finish_test finish_test
return return
} }
@@ -50,7 +54,9 @@ proc get_version {binary} {
set v set v
} }
foreach bin $binaries { foreach bin $binaries {
puts "Testing against $bin - version [get_version $bin]" puts -nonewline "Testing against $bin - "
flush stdout
puts "version [get_version $bin]"
} }
proc do_backcompat_test {rv bin1 bin2 script} { proc do_backcompat_test {rv bin1 bin2 script} {
@@ -92,6 +98,7 @@ proc do_allbackcompat_test {script} {
foreach dir {0 1} { foreach dir {0 1} {
set bintag [string map {testfixture {}} $bin] set bintag [string map {testfixture {}} $bin]
set bintag [string map {\.exe {}} $bintag]
if {$bintag == ""} {set bintag self} if {$bintag == ""} {set bintag self}
set ::bcname ".$bintag.$dir." set ::bcname ".$bintag.$dir."
@@ -201,9 +208,6 @@ do_allbackcompat_test {
} } {} } } {}
set data [read_file_system] set data [read_file_system]
set f "test.db-journal[incr x]"
file copy -force test.db-journal $f
do_test backcompat-1.2.4 { sql1 { COMMIT } } {} do_test backcompat-1.2.4 { sql1 { COMMIT } } {}
set same [expr {[sql2 {SELECT md5sum(a), md5sum(b) FROM t1}] == $cksum2}] set same [expr {[sql2 {SELECT md5sum(a), md5sum(b) FROM t1}] == $cksum2}]