- C Initial\sprototype\sof\sSQLITE_CONFIG_READONLY.
- D 2012-09-10T10:29:06.407
-C Remove\san\sunused\ssubfunction\sparameter\sand\san\sobsolete\scomment\sfrom\sthe\nquery\splanner\slogic\sin\swhere.c.
-D 2012-09-24T19:50:00.842
++C Merge\supdates\sfrom\strunk.
++D 2012-09-25T12:45:03.240
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
- F Makefile.in abd5c10d21d1395f140d9e50ea999df8fa4d6376
+ F Makefile.in 5f4f26109f9d80829122e0e09f9cda008fa065fb
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
- F Makefile.msc 2d696f01c228995e98b3b953a08b7bba1d48c130
- F Makefile.vxworks 879f034a64062a364b21000266bbd5bc6e0c19b9
+ F Makefile.msc d97ae1025a1b7bb2b365b135fc0aa25247e736b2
+ F Makefile.vxworks b18ad88e9a8c6a001f5cf4a389116a4f1a7ab45f
F README cd04a36fbc7ea56932a4052d7d0b7f09f27c33d6
- F VERSION a71848df48082f1d6585d4b0819d530fc455485d
+ F VERSION edab4af5a4623f8198833ea481ce98ab53750a8d
F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
F addopcodes.awk 17dc593f791f874d2c23a0f9360850ded0286531
F art/sqlite370.eps aa97a671332b432a54e1d74ff5e8775be34200c2
F src/btree.c 9cf6de113d23d47967df24b8d8ce6501c879d7e6
F src/btree.h 4aee02e879211bfcfd3f551769578d2e940ab6c2
F src/btreeInt.h 4e5c2bd0f9b36b2a815a6d84f771a61a65830621
- F src/build.c a3b700afd475e6387da59be6f2e86161e80d6d87
+ F src/build.c c4555e16f8ccdadb2616014c617ed8166c5a93f7
F src/callback.c 0cb4228cdcd827dcc5def98fb099edcc9142dbcd
F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
- F src/ctime.c 500d019da966631ad957c37705642be87524463b
+ F src/ctime.c 72a70dcfda75d3a1f81041ce4573e7afddcd8e4e
F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4
F src/delete.c 335f36750dc6ac88d580aa36a6487459be9889de
- F src/expr.c 217840a107dcc1e5dbb57cea311daad04bedbb9a
+ F src/expr.c 4d1cef0fae6f3cf3c754773fd413f3e221021003
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
- F src/fkey.c 9c77d842dc9961d92a06a65abb80c64ef1750296
- F src/func.c 18dfedfb857e100b05755a1b12e88b389f957879
- F src/global.c 2f3b6eb7dd5dc94f328f5b40bcdca262d4218be4
+ F src/fkey.c c82a04e7a92bb728f9ab972b76590403283be2af
+ F src/func.c cbb90dc84b22eea25caf39528d342279e61b8898
-F src/global.c fb44b11e02e06c995e6ed6642509edd23599d584
++F src/global.c 617cf51a1c34d304e29843edb105f99562da2bf7
F src/hash.c a4031441741932da9e7a65bee2b36b5d0e81c073
F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
F src/lempar.c 0ee69fca0be54cd93939df98d2aca4ca46f44416
F src/loadext.c f20382fbaeec832438a1ba7797bee3d3c8a6d51d
- F src/main.c 9600da7dae7ede8999fdd8a59cb55f7abe6809ed
-F src/main.c 97d13e749ae84fe62238a5940c5b46b2b22cd369
++F src/main.c aa1b70eb184c62be0e57939223f49616fa330c6f
F src/malloc.c fe085aa851b666b7c375c1ff957643dc20a04bf6
F src/mem0.c 6a55ebe57c46ca1a7d98da93aaa07f99f1059645
F src/mem1.c 437c7c4af964895d4650f29881df63535caaa1fa
F src/random.c cd4a67b3953b88019f8cd4ccd81394a8ddfaba50
F src/resolve.c 9e28280ec98035f31900fdd1db01f86f68ca6c32
F src/rowset.c 64655f1a627c9c212d9ab497899e7424a34222e0
- F src/select.c f843c872a97baa1594c2cc3d4c003409a7bd03af
- F src/shell.c 87953c5d9c73d9494db97d1607e2e2280418f261
- F src/sqlite.h.in 340c7c9e804335a46d42c0cf300b2ba04930c358
+ F src/select.c 1fad66b73a69c4004c9969a95b46d1f03390677d
+ F src/shell.c 8ee5a3cb502e2d574f97b43972e6c1e275e7bec7
-F src/sqlite.h.in cbe846facaba903654b4136c97e7f57b3ac0bac7
++F src/sqlite.h.in 360dadb3a8e24011349cfe45406a313657cc964c
F src/sqlite3.rc fea433eb0a59f4c9393c8e6d76a6e2596b1fe0c0
F src/sqlite3ext.h 6904f4aadf976f95241311fbffb00823075d9477
- F src/sqliteInt.h 7539de59f231581d153b3f3df47903c711554b52
-F src/sqliteInt.h 6b17114bb5c6ae30d360aeeef30ab40587afad4e
++F src/sqliteInt.h a07fdc863510639b287d0721ba16a8d130af2c3e
F src/sqliteLimit.h 164b0e6749d31e0daa1a4589a169d31c0dec7b3d
F src/status.c 35939e7e03abf1b7577ce311f48f682c40de3208
F src/table.c 2cd62736f845d82200acfa1287e33feb3c15d62e
F src/test_intarray.h 489edb9068bb926583445cb02589344961054207
F src/test_journal.c f5c0a05b7b3d5930db769b5ee6c3766dc2221a64
F src/test_loadext.c df586c27176e3c2cb2e099c78da67bf14379a56e
- F src/test_malloc.c 2fdd098d25a101e228c6a7576d0ebdd87371f9ff
-F src/test_malloc.c 01cd65ae7ae93de9fbf8214d1ee6b4eba4850700
++F src/test_malloc.c 3f25943939e8ec73fa5de60744f93381e138a126
F src/test_multiplex.c ac0fbc1748e5b86a41a1d7a84654fae0d53a881d
F src/test_multiplex.h e99c571bc4968b7a9363b661481f3934bfead61d
F src/test_mutex.c a6bd7b9cf6e19d989e31392b06ac8d189f0d573e
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/win/sqlite.vsix 67d8a99aceb56384a81b3f30d6c71743146d2cc9
- P a716b9a3091072774d067c0a1258b0f4c39a4180
- R 29425f73d83a1bbd7b16d5c03bbdc177
- T *branch * configReadOnly
- T *sym-configReadOnly *
- T -sym-trunk *
-P 22989f3588531efd555cc29d6c576e7a34b7edc4
-R af274415395e47bec73279dd70f3872e
-U drh
-Z 2c59ca6ec247c019d5fe7043b4d83355
++P 7c3401657a0410dd121d49742db102c6e7494964 349a55cd8ba9ce65ebfd987ecfebd1204f7d0a85
++R ed3fa0fcbd93fed891c622a4358fe97e
+U mistachkin
- Z c66435427bfb7211d34f4620152d3df9
++Z d5df0a65995ef30255cb29bc68e328f8
- 7c3401657a0410dd121d49742db102c6e7494964
-349a55cd8ba9ce65ebfd987ecfebd1204f7d0a85
++4a470741b65938dd38418c9c1a6e87dad6a84fc7
1, /* bCoreMutex */
SQLITE_THREADSAFE==1, /* bFullMutex */
SQLITE_USE_URI, /* bOpenUri */
+ SQLITE_ALLOW_COVERING_INDEX_SCAN, /* bUseCis */
+ 0, /* bReadOnly */
0x7ffffffe, /* mxStrlen */
128, /* szLookaside */
500, /* nLookaside */
break;
}
+ case SQLITE_CONFIG_COVERING_INDEX_SCAN: {
+ sqlite3GlobalConfig.bUseCis = va_arg(ap, int);
+ break;
+ }
+
+ case SQLITE_CONFIG_READONLY: {
+ sqlite3GlobalConfig.bReadOnly = va_arg(ap, int);
+ break;
+ }
+
default: {
rc = SQLITE_ERROR;
break;
** disabled. The default value may be changed by compiling with the
** [SQLITE_USE_URI] symbol defined.
**
+ ** [[SQLITE_CONFIG_COVERING_INDEX_SCAN]] <dt>SQLITE_CONFIG_COVERING_INDEX_SCAN
+ ** <dd> This option taks a single integer argument which is interpreted as
+ ** a boolean in order to enable or disable the use of covering indices for
+ ** full table scans in the query optimizer. The default setting is determined
+ ** by the [SQLITE_ALLOW_COVERING_INDEX_SCAN] compile-time option, or is "on"
+ ** if that compile-time option is omitted.
+ ** The ability to disable the use of covering indices for full table scans
+ ** is because some incorrectly coded legacy applications might malfunction
+ ** malfunction when the optimization is enabled. Providing the ability to
+ ** disable the optimization allows the older, buggy application code to work
+ ** without change even with newer versions of SQLite.
+ **
+** [[SQLITE_CONFIG_READONLY]] <dt>SQLITE_CONFIG_READONLY
+** <dd> This option takes a single argument of type int. If non-zero, then
+** read-only mode for opening databases is globally enabled. If the parameter
+** is zero, then read-only mode for opening databases is globally disabled. If
+** read-only mode for opening databases is globally enabled, all databases
+** opened by [sqlite3_open()], [sqlite3_open16()], or specified as part of
+** [ATTACH] commands will be opened in read-only mode. Additionally, all calls
+** to [sqlite3_open_v2()] must have the [SQLITE_OPEN_READONLY] flag set in the
+** third argument; otherwise, a [SQLITE_READONLY] error will be returned. If it
+** is globally disabled, [sqlite3_open()], [sqlite3_open16()],
+** [sqlite3_open_v2()], and [ATTACH] commands will function normally. By
+** default, read-only mode is globally disabled.
+**
** [[SQLITE_CONFIG_PCACHE]] [[SQLITE_CONFIG_GETPCACHE]]
** <dt>SQLITE_CONFIG_PCACHE and SQLITE_CONFIG_GETPCACHE
** <dd> These options are obsolete and should not be used by new code.
#define SQLITE_CONFIG_URI 17 /* int */
#define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */
#define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */
- #define SQLITE_CONFIG_READONLY 20 /* int */
+ #define SQLITE_CONFIG_COVERING_INDEX_SCAN 20 /* int */
++#define SQLITE_CONFIG_READONLY 21 /* int */
/*
** CAPI3REF: Database Connection Configuration Options
int bCoreMutex; /* True to enable core mutexing */
int bFullMutex; /* True to enable full mutexing */
int bOpenUri; /* True to interpret filenames as URIs */
+ int bUseCis; /* Use covering indices for full-scans */
+ int bReadOnly; /* True to force read-only mode */
int mxStrlen; /* Maximum string length */
int szLookaside; /* Default lookaside buffer size */
int nLookaside; /* Default lookaside buffer count */
return TCL_OK;
}
+ /*
+ ** Usage: sqlite3_config_cis BOOLEAN
+ **
+ ** Enables or disables the use of the covering-index scan optimization.
+ ** SQLITE_CONFIG_COVERING_INDEX_SCAN.
+ */
+ static int test_config_cis(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+ ){
+ int rc;
+ int bUseCis;
+
+ if( objc!=2 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "BOOL");
+ return TCL_ERROR;
+ }
+ if( Tcl_GetBooleanFromObj(interp, objv[1], &bUseCis) ){
+ return TCL_ERROR;
+ }
+
+ rc = sqlite3_config(SQLITE_CONFIG_COVERING_INDEX_SCAN, bUseCis);
+ Tcl_SetResult(interp, (char *)sqlite3TestErrorName(rc), TCL_VOLATILE);
+
+ return TCL_OK;
+ }
+
+/*
+** Usage: sqlite3_config_readonly BOOLEAN
+**
+** Enables or disables global read-only mode using SQLITE_CONFIG_READONLY.
+*/
+static int test_config_readonly(
+ void * clientData,
+ Tcl_Interp *interp,
+ int objc,
+ Tcl_Obj *CONST objv[]
+){
+ int rc;
+ int bReadOnly;
+
+ if( objc!=2 ){
+ Tcl_WrongNumArgs(interp, 1, objv, "BOOL");
+ return TCL_ERROR;
+ }
+ if( Tcl_GetBooleanFromObj(interp, objv[1], &bReadOnly) ){
+ return TCL_ERROR;
+ }
+
+ rc = sqlite3_config(SQLITE_CONFIG_READONLY, bReadOnly);
+ Tcl_SetResult(interp, (char *)sqlite3TestErrorName(rc), TCL_VOLATILE);
+
+ return TCL_OK;
+}
+
/*
** Usage: sqlite3_dump_memsys3 FILENAME
** sqlite3_dump_memsys5 FILENAME
{ "sqlite3_config_lookaside", test_config_lookaside ,0 },
{ "sqlite3_config_error", test_config_error ,0 },
{ "sqlite3_config_uri", test_config_uri ,0 },
+ { "sqlite3_config_cis", test_config_cis ,0 },
+ { "sqlite3_config_readonly", test_config_readonly ,0 },
{ "sqlite3_db_config_lookaside",test_db_config_lookaside ,0 },
{ "sqlite3_dump_memsys3", test_dump_memsys3 ,3 },
{ "sqlite3_dump_memsys5", test_dump_memsys3 ,5 },