]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Merge updates from trunk.
authormistachkin <mistachkin@noemail.net>
Tue, 25 Sep 2012 12:45:03 +0000 (12:45 +0000)
committermistachkin <mistachkin@noemail.net>
Tue, 25 Sep 2012 12:45:03 +0000 (12:45 +0000)
FossilOrigin-Name: 4a470741b65938dd38418c9c1a6e87dad6a84fc7

1  2 
manifest
manifest.uuid
src/global.c
src/main.c
src/sqlite.h.in
src/sqliteInt.h
src/test_malloc.c

diff --cc manifest
index 0f277a2bc3be3a8ce19a21ee72cbb2baf827d8c6,2e6bf42149f5b0246e76a7fe5c7d4450ac13c3dd..1a4afd51ef52fa3b48ff48a1a2318ee99ebd7291
+++ b/manifest
@@@ -1,12 -1,12 +1,12 @@@
- 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
@@@ -126,17 -124,17 +124,17 @@@ F src/btmutex.c 976f45a12e37293e32cae02
  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
@@@ -145,7 -143,7 +143,7 @@@ F src/journal.c 552839e54d1bf76fb8f7abe
  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
@@@ -176,12 -174,12 +174,12 @@@ F src/printf.c 4a9f882f1c1787a8b494a298
  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
@@@ -210,7 -208,7 +208,7 @@@ F src/test_intarray.c d879bbf8e4ce085ab
  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
@@@ -1014,10 -1016,7 +1016,7 @@@ F tool/vdbe-compress.tcl f12c884766bd14
  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
diff --cc manifest.uuid
index d52bd3640751b0385c2d1a95a388f1fa3cb3306e,2d6a191e78798d159aea72e21fdd621e96310d7e..209999d15e8f53244b3b1e8b128f8bceb3f9d535
@@@ -1,1 -1,1 +1,1 @@@
- 7c3401657a0410dd121d49742db102c6e7494964
 -349a55cd8ba9ce65ebfd987ecfebd1204f7d0a85
++4a470741b65938dd38418c9c1a6e87dad6a84fc7
diff --cc src/global.c
index a319b0679f397c07dcdd5514260853d5b3767582,dc86e1e081339d6a09ddd1ca2fec754100a24558..9e9404f44bac211e8e7a52e0f8ee8f05b90b44fd
@@@ -142,7 -146,7 +146,8 @@@ SQLITE_WSD struct Sqlite3Config sqlite3
     1,                         /* bCoreMutex */
     SQLITE_THREADSAFE==1,      /* bFullMutex */
     SQLITE_USE_URI,            /* bOpenUri */
+    SQLITE_ALLOW_COVERING_INDEX_SCAN,   /* bUseCis */
 +   0,                         /* bReadOnly */
     0x7ffffffe,                /* mxStrlen */
     128,                       /* szLookaside */
     500,                       /* nLookaside */
diff --cc src/main.c
index 7ac4b6f851487e828fb963bdf6072023b0c0108e,466dee5516b65bd4c99c684097d4e645bb2a958d..4ad9588369759f6a886a6be6ab3a45bc1b5123be
@@@ -475,11 -475,11 +475,16 @@@ int sqlite3_config(int op, ...)
        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;
diff --cc src/sqlite.h.in
index ef0aa92ee3e883a605c42dd23ebf1a33d175c058,bf97679ab85ad19ecfe3632a105d8c7c8719d5ea..57531e1b1e2f1ded86ff05d7f06ae9db93bd6dc9
@@@ -1562,19 -1563,18 +1563,31 @@@ struct sqlite3_mem_methods 
  ** 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
diff --cc src/sqliteInt.h
index 002927b10e182099db23c2f1be2c3bfabef804c3,7b9894254a521ae5451364293595ed96be7b5dd9..6298c417dad81644ae0b614ec200cde3deb9d234
@@@ -2462,7 -2465,7 +2465,8 @@@ struct Sqlite3Config 
    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 */
index b2aa848b53e56a3d43e8bd1107d89da2a4ea7587,e1420de648890ec4ec241e1b6979cab1e24393be..f03a9ba0e0a11af9126cfd8ef7e57b6c9fff6136
@@@ -1197,34 -1197,35 +1197,63 @@@ static int test_config_uri
    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
@@@ -1475,7 -1476,7 +1504,8 @@@ int Sqlitetest_malloc_Init(Tcl_Interp *
       { "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 },