1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

Make the pending byte adjustable via sqlite3_test_control() on all builds,

not just on test builds. (CVS 6263)

FossilOrigin-Name: e8f192e2a93350a136d86bd9caceff65f52f3513
This commit is contained in:
drh
2009-02-05 16:31:45 +00:00
parent f5d335f851
commit c7a3bb94c2
13 changed files with 105 additions and 47 deletions

View File

@ -1,5 +1,5 @@
C Fixed\serror\sdetection\sin\swinTrucate()\sin\sos_win.c.\s\sWindows\sversion\sonly.\s\sTicket\s#3640.\s(CVS\s6262) C Make\sthe\spending\sbyte\sadjustable\svia\ssqlite3_test_control()\son\sall\sbuilds,\nnot\sjust\son\stest\sbuilds.\s(CVS\s6263)
D 2009-02-05T03:16:21 D 2009-02-05T16:31:46
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in c7a5a30fb6852bd7839b1024e1661da8549878ee F Makefile.in c7a5a30fb6852bd7839b1024e1661da8549878ee
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@ -115,7 +115,7 @@ F src/delete.c 6249005bdd8f85db6ec5f31ddb5c07de023693cc
F src/expr.c e60f69f624a03a8f493900b071b3affbfa699585 F src/expr.c e60f69f624a03a8f493900b071b3affbfa699585
F src/fault.c dc88c821842157460750d2d61a8a8b4197d047ff F src/fault.c dc88c821842157460750d2d61a8a8b4197d047ff
F src/func.c 35d6f4a98c5fd5d504fd92a9197bae3220bbac39 F src/func.c 35d6f4a98c5fd5d504fd92a9197bae3220bbac39
F src/global.c ab003581ea4ff193cfe17a00e1303bc51db619a5 F src/global.c 448419c44ce0701104c2121b0e06919b44514c0c
F src/hash.c 5824e6ff7ba78cd34c8d6cd724367713583e5b55 F src/hash.c 5824e6ff7ba78cd34c8d6cd724367713583e5b55
F src/hash.h 28f38ebb1006a5beedcb013bcdfe31befe7437ae F src/hash.h 28f38ebb1006a5beedcb013bcdfe31befe7437ae
F src/hwtime.h 4a1d45f4cae1f402ea19686acf24acf4f0cb53cb F src/hwtime.h 4a1d45f4cae1f402ea19686acf24acf4f0cb53cb
@ -123,7 +123,7 @@ F src/insert.c f6db1e6f43aae337e64a755208abb6ff124edc19
F src/journal.c e00df0c0da8413ab6e1bb7d7cab5665d4a9000d0 F src/journal.c e00df0c0da8413ab6e1bb7d7cab5665d4a9000d0
F src/legacy.c 8b3b95d48d202614946d7ce7256e7ba898905c3b F src/legacy.c 8b3b95d48d202614946d7ce7256e7ba898905c3b
F src/loadext.c 3f96631089fc4f3871a67f02f2e4fc7ea4d51edc F src/loadext.c 3f96631089fc4f3871a67f02f2e4fc7ea4d51edc
F src/main.c 75e0ec759987984d54b1fe1c75d621f533d9f46c F src/main.c 4912460dab29e4d37e4ba1d78320c6a77bb95ad8
F src/malloc.c bc408056b126db37b6fba00e170d578cc67be6b3 F src/malloc.c bc408056b126db37b6fba00e170d578cc67be6b3
F src/mem0.c f2f84062d1f35814d6535c9f9e33de3bfb3b132c F src/mem0.c f2f84062d1f35814d6535c9f9e33de3bfb3b132c
F src/mem1.c 3bfb39e4f60b0179713a7c087b2d4f0dc205735f F src/mem1.c 3bfb39e4f60b0179713a7c087b2d4f0dc205735f
@ -138,7 +138,7 @@ F src/mutex_os2.c 6b5a74f812082a8483c3df05b47bbaac2424b9a0
F src/mutex_unix.c 2f936339dfef1a4c142db290d575a3509b77315f F src/mutex_unix.c 2f936339dfef1a4c142db290d575a3509b77315f
F src/mutex_w32.c f4b6a4a48f1dfff7f0089cba9b5a371691f17b8b F src/mutex_w32.c f4b6a4a48f1dfff7f0089cba9b5a371691f17b8b
F src/os.c ed93a6b46132a602c4fd7a58142e2981c829c79d F src/os.c ed93a6b46132a602c4fd7a58142e2981c829c79d
F src/os.h f996ab57d2035a20e63173419055608548a834c6 F src/os.h fa3f4aa0119ff721a2da4b47ffd74406ac864c05
F src/os_common.h 24525d8b7bce66c374dfc1810a6c9043f3359b60 F src/os_common.h 24525d8b7bce66c374dfc1810a6c9043f3359b60
F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5 F src/os_os2.c bed77dc26e3a95ce4a204936b9a1ca6fe612fcc5
F src/os_unix.c f0fce3042011d462b8ae633564a5668260bd3636 F src/os_unix.c f0fce3042011d462b8ae633564a5668260bd3636
@ -157,15 +157,15 @@ F src/resolve.c 18dc9f0df1d60048e012ce6632251063e0dd356a
F src/rowset.c ba9375f37053d422dd76965a9c370a13b6e1aac4 F src/rowset.c ba9375f37053d422dd76965a9c370a13b6e1aac4
F src/select.c ae72b604e47092521c4d9ae54e1b1cbeb872a747 F src/select.c ae72b604e47092521c4d9ae54e1b1cbeb872a747
F src/shell.c f109ebbb50132926ebbc173a6c2d8838d5d78527 F src/shell.c f109ebbb50132926ebbc173a6c2d8838d5d78527
F src/sqlite.h.in 31fa12602f784adea9be66424a2e8b052116736f F src/sqlite.h.in bc6654bb2c8e07281c66e860a018b1f4cb6e5dfa
F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17 F src/sqlite3ext.h 1db7d63ab5de4b3e6b83dd03d1a4e64fef6d2a17
F src/sqliteInt.h 73c1d4f9716fe21f202f9d05c4fd9e6281f2636f F src/sqliteInt.h b4b0933d3833faded0574f2165b26737636a00cf
F src/sqliteLimit.h ffe93f5a0c4e7bd13e70cd7bf84cfb5c3465f45d F src/sqliteLimit.h ffe93f5a0c4e7bd13e70cd7bf84cfb5c3465f45d
F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76 F src/status.c 237b193efae0cf6ac3f0817a208de6c6c6ef6d76
F src/table.c 332ab0ea691e63862e2a8bdfe2c0617ee61062a3 F src/table.c 332ab0ea691e63862e2a8bdfe2c0617ee61062a3
F src/tclsqlite.c 524c1f49ccf9b6a5e3917591cf3b6c4f4204e607 F src/tclsqlite.c 524c1f49ccf9b6a5e3917591cf3b6c4f4204e607
F src/test1.c f88b447699786d58a0136a3a48b12990abc72c8a F src/test1.c f88b447699786d58a0136a3a48b12990abc72c8a
F src/test2.c 9689e7d3b7791da8c03f9acd1ea801802cb83c17 F src/test2.c 71c22e2974f8094fe0fd1eba8f27872dde9b2a39
F src/test3.c 88a246b56b824275300e6c899634fbac1dc94b14 F src/test3.c 88a246b56b824275300e6c899634fbac1dc94b14
F src/test4.c f79ab52d27ff49b784b631a42e2ccd52cfd5c84c F src/test4.c f79ab52d27ff49b784b631a42e2ccd52cfd5c84c
F src/test5.c 162a1cea2105a2c460a3f39fa6919617b562a288 F src/test5.c 162a1cea2105a2c460a3f39fa6919617b562a288
@ -429,11 +429,11 @@ F test/limit.test 2db7b3b34fb925b8e847d583d2eb67531d0ce67e
F test/loadext.test 18db29c081380fdedcfbd8c633847712059ae104 F test/loadext.test 18db29c081380fdedcfbd8c633847712059ae104
F test/loadext2.test 0bcaeb4d81cd5b6e883fdfea3c1bdbe1f173cbca F test/loadext2.test 0bcaeb4d81cd5b6e883fdfea3c1bdbe1f173cbca
F test/lock.test 3f9e98e96d331ee3035303b7431bcaac5fb087e3 F test/lock.test 3f9e98e96d331ee3035303b7431bcaac5fb087e3
F test/lock2.test 018b846f6f3b3b695fad07e317b7988442b556f4 F test/lock2.test d4f941d1f659e5fc782b4912b1a872d77d4b5470
F test/lock3.test 8adfbf438b96316267611214d494ebc1311b8cda F test/lock3.test 8adfbf438b96316267611214d494ebc1311b8cda
F test/lock4.test 09d97d52cae18fadfe631552af9880dac6b3ae90 F test/lock4.test 991b57669a868bbfd39fe0c0df0d493985829105
F test/lock5.test 6b1f78f09ad1522843dad571b76b321e6f439bf7 F test/lock5.test 6b1f78f09ad1522843dad571b76b321e6f439bf7
F test/lock6.test eafa70db6f50b6f6291f4f83b80e98834724a50d F test/lock6.test 862aa71e97b288d6b3f92ba3313f51bd0b003776
F test/lookaside.test e69f822f13745f1d5c445c6e30e30f059f30c8e5 F test/lookaside.test e69f822f13745f1d5c445c6e30e30f059f30c8e5
F test/main.test 187a9a1b5248ed74a83838c581c15ec6023b555b F test/main.test 187a9a1b5248ed74a83838c581c15ec6023b555b
F test/make-where7.tcl 40bb740b37eead343eaf57b74ab72d2a5a304745 F test/make-where7.tcl 40bb740b37eead343eaf57b74ab72d2a5a304745
@ -472,7 +472,7 @@ F test/misc3.test 7212ed8dad01427e9acab9bd3e7e5e2c2e89be9e
F test/misc4.test 91e8ed25c092c2bb4e0bb01864631e2930f8d7de F test/misc4.test 91e8ed25c092c2bb4e0bb01864631e2930f8d7de
F test/misc5.test 6a5c1e3217a95b0db05ff9a0f1ecb5ce9043ffef F test/misc5.test 6a5c1e3217a95b0db05ff9a0f1ecb5ce9043ffef
F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91 F test/misc6.test 953cc693924d88e6117aeba16f46f0bf5abede91
F test/misc7.test 065b4a32c44648f7dd79767a458916048744fb18 F test/misc7.test 93c81aed664684461ea55f72542bcef78d93ba30
F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33 F test/misuse.test 30b3a458e5a70c31e74c291937b6c82204c59f33
F test/mutex1.test 1e5c196d5170bbe3a7d8370b1b905e8c86a9e07c F test/mutex1.test 1e5c196d5170bbe3a7d8370b1b905e8c86a9e07c
F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660 F test/mutex2.test bfeaeac2e73095b2ac32285d2756e3a65e681660
@ -552,7 +552,7 @@ F test/tableapi.test 505031f15b18a750184d967d2c896cf88fcc969c
F test/tclsqlite.test 413a8a887d89ea8fa7055e8d118ffb03b0a4c91a F test/tclsqlite.test 413a8a887d89ea8fa7055e8d118ffb03b0a4c91a
F test/tempdb.test b88ac8a19823cf771d742bf61eef93ef337c06b1 F test/tempdb.test b88ac8a19823cf771d742bf61eef93ef337c06b1
F test/temptable.test 19b851b9e3e64d91e9867619b2a3f5fffee6e125 F test/temptable.test 19b851b9e3e64d91e9867619b2a3f5fffee6e125
F test/tester.tcl 94dc2fe5f8d9179e58ebfe1c7ce2618bdb44799d F test/tester.tcl b28d5eb97e95b19eacdb5afb38db2c8558f398b0
F test/thread001.test 7595e58213eda498794860f608e0ea7e499d18d0 F test/thread001.test 7595e58213eda498794860f608e0ea7e499d18d0
F test/thread002.test 0258a50c55f2371de2e4c7e02bec2576c1eef359 F test/thread002.test 0258a50c55f2371de2e4c7e02bec2576c1eef359
F test/thread003.test e17754799649c2b732c295620dca041c32f01e16 F test/thread003.test e17754799649c2b732c295620dca041c32f01e16
@ -701,7 +701,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff 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
P a6fe3d6b02734b23fe067a373c0232024a782a6c P 82e03f1b5481c6fe5e94976f086e8fe8c99881af
R 44c59b6fa98593f23066b22d11bd7514 R 2734eb5c39e38779f0284460e01933e6
U shane U drh
Z dc1ee389fb4cd7e5a18726142b311469 Z 8726398e2849afbae888397535f5fdc8

View File

@ -1 +1 @@
82e03f1b5481c6fe5e94976f086e8fe8c99881af e8f192e2a93350a136d86bd9caceff65f52f3513

View File

@ -12,7 +12,7 @@
** **
** This file contains definitions of global variables and contants. ** This file contains definitions of global variables and contants.
** **
** $Id: global.c,v 1.11 2009/01/24 11:30:43 drh Exp $ ** $Id: global.c,v 1.12 2009/02/05 16:31:46 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
@ -168,3 +168,23 @@ SQLITE_WSD struct Sqlite3Config sqlite3Config = {
** read-only. ** read-only.
*/ */
SQLITE_WSD FuncDefHash sqlite3GlobalFunctions; SQLITE_WSD FuncDefHash sqlite3GlobalFunctions;
/*
** The value of the "pending" byte must be 0x40000000 (1 byte past the
** 1-gibabyte boundary) in a compatible database. SQLite never uses
** the database page that contains the pending byte. It never attempts
** to read or write that page. The pending byte page is set assign
** for use by the VFS layers as space for managing file locks.
**
** During testing, it is often desirable to move the pending byte to
** a different position in the file. This allows code that has to
** deal with the pending byte to run on files that are much smaller
** than 1 GiB. The sqlite3_test_control() interface can be used to
** move the pending byte.
**
** IMPORTANT: Changing the pending byte to any value other than
** 0x40000000 results in an incompatible database file format!
** Changing the pending byte during operating results in undefined
** and dileterious behavior.
*/
int sqlite3PendingByte = 0x40000000;

View File

@ -14,7 +14,7 @@
** other files are for internal use by SQLite and should not be ** other files are for internal use by SQLite and should not be
** accessed by users of the library. ** accessed by users of the library.
** **
** $Id: main.c,v 1.527 2009/02/04 17:40:58 drh Exp $ ** $Id: main.c,v 1.528 2009/02/05 16:31:46 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
@ -2150,6 +2150,25 @@ int sqlite3_test_control(int op, ...){
sqlite3BenignMallocHooks(xBenignBegin, xBenignEnd); sqlite3BenignMallocHooks(xBenignBegin, xBenignEnd);
break; break;
} }
/*
** sqlite3_test_control(PENDING_BYTE, unsigned int X)
**
** Set the PENDING byte to the value in the argument, if X>0.
** Make no changes if X==0. Return the value of the pending byte
** as it existing before this routine was called.
**
** IMPORTANT: Changing the PENDING byte from 0x40000000 results in
** an incompatible database file format. Changing the PENDING byte
** while any database connection is open results in undefined and
** dileterious behavior.
*/
case SQLITE_TESTCTRL_PENDING_BYTE: {
unsigned int newVal = va_arg(ap, unsigned int);
rc = sqlite3PendingByte;
if( newVal ) sqlite3PendingByte = newVal;
break;
}
} }
va_end(ap); va_end(ap);
#endif /* SQLITE_OMIT_BUILTIN_TEST */ #endif /* SQLITE_OMIT_BUILTIN_TEST */

View File

@ -17,7 +17,7 @@
** This header file is #include-ed by sqliteInt.h and thus ends up ** This header file is #include-ed by sqliteInt.h and thus ends up
** being included by every source file. ** being included by every source file.
** **
** $Id: os.h,v 1.107 2009/01/14 23:03:41 drh Exp $ ** $Id: os.h,v 1.108 2009/02/05 16:31:46 drh Exp $
*/ */
#ifndef _SQLITE_OS_H_ #ifndef _SQLITE_OS_H_
#define _SQLITE_OS_H_ #define _SQLITE_OS_H_
@ -195,9 +195,7 @@
** a random byte is selected for a shared lock. The pool of bytes for ** a random byte is selected for a shared lock. The pool of bytes for
** shared locks begins at SHARED_FIRST. ** shared locks begins at SHARED_FIRST.
** **
** These #defines are available in sqlite_aux.h so that adaptors for ** The same locking strategy and
** connecting SQLite to other operating systems can use the same byte
** ranges for locking. In particular, the same locking strategy and
** byte ranges are used for Unix. This leaves open the possiblity of having ** byte ranges are used for Unix. This leaves open the possiblity of having
** clients on win95, winNT, and unix all talking to the same shared file ** clients on win95, winNT, and unix all talking to the same shared file
** and all locking correctly. To do so would require that samba (or whatever ** and all locking correctly. To do so would require that samba (or whatever
@ -221,13 +219,7 @@
** 1GB boundary. ** 1GB boundary.
** **
*/ */
#ifndef SQLITE_TEST #define PENDING_BYTE sqlite3PendingByte
#define PENDING_BYTE 0x40000000 /* First byte past the 1GB boundary */
#else
extern unsigned int sqlite3_pending_byte;
#define PENDING_BYTE sqlite3_pending_byte
#endif
#define RESERVED_BYTE (PENDING_BYTE+1) #define RESERVED_BYTE (PENDING_BYTE+1)
#define SHARED_FIRST (PENDING_BYTE+2) #define SHARED_FIRST (PENDING_BYTE+2)
#define SHARED_SIZE 510 #define SHARED_SIZE 510

View File

@ -30,7 +30,7 @@
** the version number) and changes its name to "sqlite3.h" as ** the version number) and changes its name to "sqlite3.h" as
** part of the build process. ** part of the build process.
** **
** @(#) $Id: sqlite.h.in,v 1.426 2009/02/03 21:13:08 drh Exp $ ** @(#) $Id: sqlite.h.in,v 1.427 2009/02/05 16:31:46 drh Exp $
*/ */
#ifndef _SQLITE3_H_ #ifndef _SQLITE3_H_
#define _SQLITE3_H_ #define _SQLITE3_H_
@ -6372,6 +6372,7 @@ int sqlite3_test_control(int op, ...);
#define SQLITE_TESTCTRL_BITVEC_TEST 8 #define SQLITE_TESTCTRL_BITVEC_TEST 8
#define SQLITE_TESTCTRL_FAULT_INSTALL 9 #define SQLITE_TESTCTRL_FAULT_INSTALL 9
#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10 #define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10
#define SQLITE_TESTCTRL_PENDING_BYTE 11
/* /*
** CAPI3REF: SQLite Runtime Status {H17200} <S60200> ** CAPI3REF: SQLite Runtime Status {H17200} <S60200>

View File

@ -11,7 +11,7 @@
************************************************************************* *************************************************************************
** Internal interface definitions for SQLite. ** Internal interface definitions for SQLite.
** **
** @(#) $Id: sqliteInt.h,v 1.831 2009/02/03 16:51:25 danielk1977 Exp $ ** @(#) $Id: sqliteInt.h,v 1.832 2009/02/05 16:31:46 drh Exp $
*/ */
#ifndef _SQLITEINT_H_ #ifndef _SQLITEINT_H_
#define _SQLITEINT_H_ #define _SQLITEINT_H_
@ -510,10 +510,12 @@ struct BusyHandler {
#define sqlite3GlobalConfig GLOBAL(struct Sqlite3Config, sqlite3Config) #define sqlite3GlobalConfig GLOBAL(struct Sqlite3Config, sqlite3Config)
int sqlite3_wsd_init(int N, int J); int sqlite3_wsd_init(int N, int J);
void *sqlite3_wsd_find(void *K, int L); void *sqlite3_wsd_find(void *K, int L);
int sqlite3PendingByte;
#else #else
#define SQLITE_WSD #define SQLITE_WSD
#define GLOBAL(t,v) v #define GLOBAL(t,v) v
#define sqlite3GlobalConfig sqlite3Config #define sqlite3GlobalConfig sqlite3Config
int sqlite3PendingByte;
#endif #endif
/* /*

View File

@ -13,7 +13,7 @@
** is not included in the SQLite library. It is used for automated ** is not included in the SQLite library. It is used for automated
** testing of the SQLite library. ** testing of the SQLite library.
** **
** $Id: test2.c,v 1.69 2009/01/20 17:06:27 danielk1977 Exp $ ** $Id: test2.c,v 1.70 2009/02/05 16:31:46 drh Exp $
*/ */
#include "sqliteInt.h" #include "sqliteInt.h"
#include "tcl.h" #include "tcl.h"
@ -556,6 +556,29 @@ static int fake_big_file(
#endif #endif
/*
** test_control_pending_byte PENDING_BYTE
**
** Set the PENDING_BYTE using the sqlite3_test_control() interface.
*/
static int testPendingByte(
void *NotUsed,
Tcl_Interp *interp, /* The TCL interpreter that invoked this command */
int argc, /* Number of arguments */
const char **argv /* Text of each argument */
){
int pbyte;
int rc;
if( argc!=2 ){
Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],
" PENDING-BYTE\"", (void*)0);
}
if( Tcl_GetInt(interp, argv[1], &pbyte) ) return TCL_ERROR;
rc = sqlite3_test_control(SQLITE_TESTCTRL_PENDING_BYTE, pbyte);
Tcl_SetObjResult(interp, Tcl_NewIntObj(rc));
return TCL_OK;
}
/* /*
** sqlite3BitvecBuiltinTest SIZE PROGRAM ** sqlite3BitvecBuiltinTest SIZE PROGRAM
** **
@ -624,7 +647,8 @@ int Sqlitetest2_Init(Tcl_Interp *interp){
#ifndef SQLITE_OMIT_DISKIO #ifndef SQLITE_OMIT_DISKIO
{ "fake_big_file", (Tcl_CmdProc*)fake_big_file }, { "fake_big_file", (Tcl_CmdProc*)fake_big_file },
#endif #endif
{ "sqlite3BitvecBuiltinTest",(Tcl_CmdProc*)testBitvecBuiltinTest}, { "sqlite3BitvecBuiltinTest",(Tcl_CmdProc*)testBitvecBuiltinTest },
{ "sqlite3_test_control_pending_byte", (Tcl_CmdProc*)testPendingByte },
}; };
int i; int i;
for(i=0; i<sizeof(aCmd)/sizeof(aCmd[0]); i++){ for(i=0; i<sizeof(aCmd)/sizeof(aCmd[0]); i++){
@ -643,7 +667,7 @@ int Sqlitetest2_Init(Tcl_Interp *interp){
Tcl_LinkVar(interp, "sqlite_diskfull", Tcl_LinkVar(interp, "sqlite_diskfull",
(char*)&sqlite3_diskfull, TCL_LINK_INT); (char*)&sqlite3_diskfull, TCL_LINK_INT);
Tcl_LinkVar(interp, "sqlite_pending_byte", Tcl_LinkVar(interp, "sqlite_pending_byte",
(char*)&sqlite3_pending_byte, TCL_LINK_INT); (char*)&sqlite3PendingByte, TCL_LINK_INT | TCL_LINK_READ_ONLY);
Tcl_LinkVar(interp, "sqlite_pager_n_sort_bucket", Tcl_LinkVar(interp, "sqlite_pager_n_sort_bucket",
(char*)&sqlite3_pager_n_sort_bucket, TCL_LINK_INT); (char*)&sqlite3_pager_n_sort_bucket, TCL_LINK_INT);
return TCL_OK; return TCL_OK;

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The # This file implements regression tests for SQLite library. The
# focus of this script is database locks between competing processes. # focus of this script is database locks between competing processes.
# #
# $Id: lock2.test,v 1.9 2007/12/13 21:54:11 drh Exp $ # $Id: lock2.test,v 1.10 2009/02/05 16:31:46 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
@ -92,7 +92,7 @@ close $f
# #
do_test lock2-1.1 { do_test lock2-1.1 {
set ::tf1 [launch_testfixture] set ::tf1 [launch_testfixture]
testfixture $::tf1 "set sqlite_pending_byte $::sqlite_pending_byte" testfixture $::tf1 "sqlite3_test_control_pending_byte $::sqlite_pending_byte"
testfixture $::tf1 { testfixture $::tf1 {
sqlite3 db test.db -key xyzzy sqlite3 db test.db -key xyzzy
db eval {select * from sqlite_master} db eval {select * from sqlite_master}

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The # This file implements regression tests for SQLite library. The
# focus of this script is database locks. # focus of this script is database locks.
# #
# $Id: lock4.test,v 1.8 2008/03/14 08:57:42 danielk1977 Exp $ # $Id: lock4.test,v 1.9 2009/02/05 16:31:46 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
@ -53,7 +53,7 @@ do_test lock4-1.2 {
# Create a script for the second process to run. # Create a script for the second process to run.
# #
set out [open test2-script.tcl w] set out [open test2-script.tcl w]
puts $out "set sqlite_pending_byte [set sqlite_pending_byte]" puts $out "sqlite3_test_control_pending_byte [set sqlite_pending_byte]"
puts $out { puts $out {
sqlite3 db2 test2.db sqlite3 db2 test2.db
db2 eval { db2 eval {

View File

@ -11,7 +11,7 @@
# This file implements regression tests for SQLite library. The # This file implements regression tests for SQLite library. The
# focus of this script is database locks. # focus of this script is database locks.
# #
# $Id: lock6.test,v 1.2 2009/01/12 14:01:45 danielk1977 Exp $ # $Id: lock6.test,v 1.3 2009/02/05 16:31:46 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
@ -92,7 +92,7 @@ ifcapable lock_proxy_pragmas&&prefer_proxy_locking {
do_test lock6-1.1 { do_test lock6-1.1 {
set ::tf1 [launch_testfixture] set ::tf1 [launch_testfixture]
testfixture $::tf1 "set sqlite_pending_byte $::sqlite_pending_byte" testfixture $::tf1 "sqlite3_test_control_pending_byte $::sqlite_pending_byte"
testfixture $::tf1 { testfixture $::tf1 {
set sqlite_hostid_num 2 set sqlite_hostid_num 2
sqlite3 db test.db -key xyzzy sqlite3 db test.db -key xyzzy

View File

@ -10,7 +10,7 @@
#*********************************************************************** #***********************************************************************
# This file implements regression tests for SQLite library. # This file implements regression tests for SQLite library.
# #
# $Id: misc7.test,v 1.26 2009/01/09 17:11:05 danielk1977 Exp $ # $Id: misc7.test,v 1.27 2009/02/05 16:31:46 drh Exp $
set testdir [file dirname $argv0] set testdir [file dirname $argv0]
source $testdir/tester.tcl source $testdir/tester.tcl
@ -426,7 +426,7 @@ if {$tcl_platform(platform)!="windows" && $tcl_platform(platform)!="os2"} {
} }
} {0 32} } {0 32}
set ::pending_byte_page [expr ($::sqlite_pending_byte / 1024) + 1] sqlite3_test_control_pending_page [expr ($::sqlite_pending_byte / 1024) + 1]
do_test misc7-17.3 { do_test misc7-17.3 {
db eval { db eval {
pragma writable_schema = true; pragma writable_schema = true;

View File

@ -11,7 +11,7 @@
# This file implements some common TCL routines used for regression # This file implements some common TCL routines used for regression
# testing the SQLite library # testing the SQLite library
# #
# $Id: tester.tcl,v 1.138 2009/02/04 22:46:47 drh Exp $ # $Id: tester.tcl,v 1.139 2009/02/05 16:31:46 drh Exp $
# #
# What for user input before continuing. This gives an opportunity # What for user input before continuing. This gives an opportunity
@ -27,7 +27,7 @@ for {set i 0} {$i<[llength $argv]} {incr i} {
} }
set tcl_precision 15 set tcl_precision 15
set sqlite_pending_byte 0x0010000 sqlite3_test_control_pending_byte 0x0010000
# #
# Check the command-line arguments for a default soft-heap-limit. # Check the command-line arguments for a default soft-heap-limit.
@ -576,7 +576,7 @@ proc crashsql {args} {
set f [open crash.tcl w] set f [open crash.tcl w]
puts $f "sqlite3_crash_enable 1" puts $f "sqlite3_crash_enable 1"
puts $f "sqlite3_crashparams $blocksize $dc $crashdelay $cfile" puts $f "sqlite3_crashparams $blocksize $dc $crashdelay $cfile"
puts $f "set sqlite_pending_byte $::sqlite_pending_byte" puts $f "sqlite3_test_control_pending_byte $::sqlite_pending_byte"
puts $f "sqlite3 db test.db -vfs crash" puts $f "sqlite3 db test.db -vfs crash"
# This block sets the cache size of the main database to 10 # This block sets the cache size of the main database to 10