System.Data.SQLite
Check-in [05a7dc5557]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update SQLite core library to the 3.19.3 release.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 05a7dc5557a34a0ef799f53d7c90462aa6d0d51a
User & Date: mistachkin 2017-06-10 17:22:55
Context
2017-06-11
02:58
Merge in applicable changes from the 1.0.105.2 release. check-in: 802962c8f3 user: mistachkin tags: trunk
2017-06-10
17:38
Merge updates from trunk. check-in: 091bc3a48a user: mistachkin tags: branch-1.0.105
17:22
Update SQLite core library to the 3.19.3 release. check-in: 05a7dc5557 user: mistachkin tags: trunk
01:09
Simplify the new test case added in the previous check-in. check-in: ac29179121 user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

Changes to Doc/Extra/Core/lang_createtrigger.html.

   285    285   restrictions apply:</p>
   286    286   
   287    287   <ul>
   288    288   <li><p>
   289    289     The name of the table to be modified in an <a href="lang_update.html">UPDATE</a>, <a href="lang_delete.html">DELETE</a>, or <a href="lang_insert.html">INSERT</a>
   290    290     statement must be an unqualified table name.  In other words, one must
   291    291     use just "<i>tablename</i>" not "<i>database</i><b>.</b><i>tablename</i>"
   292         -  when specifying the table.  The table to be modified must exist in the
          292  +  when specifying the table. </p></li>
          293  +
          294  +<li><p>
          295  + For non-TEMP triggers,
          296  +  the table to be modified or queried must exist in the
   293    297     same database as the table or view to which the trigger is attached.
          298  +  TEMP triggers are not subject to the same-database rule.  A TEMP
          299  +  trigger is allowed to query or modify any table in any <a href="lang_attach.html">ATTACH</a>-ed database.
   294    300     </p></li>
   295    301   
   296    302   <li><p>
   297    303     The "INSERT INTO <i>table</i> DEFAULT VALUES" form of the <a href="lang_insert.html">INSERT</a> statement
   298    304     is not supported.
   299    305     </p></li>
   300    306   

Changes to Doc/Extra/Provider/version.html.

    39     39             </td>
    40     40           </tr>
    41     41         </table>
    42     42       </div>
    43     43       <div id="mainSection">
    44     44       <div id="mainBody">
    45     45       <h1 class="heading">Version History</h1>
    46         -    <p><b>1.0.106.0 - July XX, 2017 <font color="red">(release scheduled)</font></b></p>
           46  +    <p><b>1.0.106.0 - August XX, 2017 <font color="red">(release scheduled)</font></b></p>
    47     47       <ul>
    48         -      <li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_2.html">SQLite 3.19.2</a>.</li>
           48  +      <li>Updated to <a href="https://www.sqlite.org/src/timeline">SQLite 3.20.0</a>.</li>
           49  +    </ul>
           50  +    <p><b>1.0.105.2 - June 12, 2017</b></p>
           51  +    <ul>
           52  +      <li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_3.html">SQLite 3.19.3</a>.</li>
           53  +      <li>Fix issues that prevented SQLiteBlob creation from succeeding for tables that did not have an integer primary key.</li>
    49     54       </ul>
    50     55       <p><b>1.0.105.1 - May 15, 2017</b></p>
    51     56       <ul>
    52     57         <li>Prevent culture settings from negatively impacting integer connection string defaults.</li>
    53     58         <li>Make sure the &quot;No_SQLiteConnectionNewParser&quot; and &quot;DefaultFlags_SQLiteConnection&quot; setting values end up being cached.</li>
    54     59         <li>Cache the XML file name and assembly directory used by the configuration subsystem.</li>
    55     60       </ul>

Changes to SQLite.Interop/props/sqlite3.props.

     5      5    *
     6      6    * Written by Joe Mistachkin.
     7      7    * Released to the public domain, use at your own risk!
     8      8    *
     9      9   -->
    10     10   <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
    11     11     <PropertyGroup Label="UserMacros">
    12         -    <SQLITE_MANIFEST_VERSION>3.19.2.0</SQLITE_MANIFEST_VERSION>
    13         -    <SQLITE_RC_VERSION>3,19,2,0</SQLITE_RC_VERSION>
           12  +    <SQLITE_MANIFEST_VERSION>3.19.3.0</SQLITE_MANIFEST_VERSION>
           13  +    <SQLITE_RC_VERSION>3,19,3,0</SQLITE_RC_VERSION>
    14     14       <SQLITE_COMMON_DEFINES>_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;SQLITE_THREADSAFE=1;SQLITE_USE_URI=1;SQLITE_ENABLE_COLUMN_METADATA=1;SQLITE_ENABLE_STAT4=1;SQLITE_ENABLE_FTS3=1;SQLITE_ENABLE_LOAD_EXTENSION=1;SQLITE_ENABLE_RTREE=1;SQLITE_SOUNDEX=1;SQLITE_ENABLE_MEMORY_MANAGEMENT=1;SQLITE_ENABLE_API_ARMOR=1;SQLITE_ENABLE_DBSTAT_VTAB=1</SQLITE_COMMON_DEFINES>
    15     15       <SQLITE_EXTRA_DEFINES>SQLITE_PLACEHOLDER=1;SQLITE_HAS_CODEC=1</SQLITE_EXTRA_DEFINES>
    16     16       <SQLITE_WINCE_200X_DEFINES>SQLITE_OMIT_WAL=1</SQLITE_WINCE_200X_DEFINES>
    17     17       <SQLITE_WINCE_2013_DEFINES>HAVE_ERRNO_H=1;SQLITE_MSVC_LOCALTIME_API=1</SQLITE_WINCE_2013_DEFINES>
    18     18       <SQLITE_DEBUG_DEFINES>SQLITE_DEBUG=1;SQLITE_MEMDEBUG=1;SQLITE_ENABLE_EXPENSIVE_ASSERT=1</SQLITE_DEBUG_DEFINES>
    19     19       <SQLITE_RELEASE_DEFINES>SQLITE_WIN32_MALLOC=1</SQLITE_RELEASE_DEFINES>
    20     20       <SQLITE_DISABLE_WARNINGS>4055;4100;4127;4146;4210;4232;4244;4245;4267;4306;4389;4701;4703;4706</SQLITE_DISABLE_WARNINGS>

Changes to SQLite.Interop/props/sqlite3.vsprops.

    10     10   <VisualStudioPropertySheet
    11     11   	ProjectType="Visual C++"
    12     12   	Version="8.00"
    13     13   	Name="sqlite3"
    14     14   	>
    15     15   	<UserMacro
    16     16   		Name="SQLITE_MANIFEST_VERSION"
    17         -		Value="3.19.2.0"
           17  +		Value="3.19.3.0"
    18     18   		PerformEnvironmentSet="true"
    19     19   	/>
    20     20   	<UserMacro
    21     21   		Name="SQLITE_RC_VERSION"
    22         -		Value="3,19,2,0"
           22  +		Value="3,19,3,0"
    23     23   		PerformEnvironmentSet="true"
    24     24   	/>
    25     25   	<UserMacro
    26     26   		Name="SQLITE_COMMON_DEFINES"
    27     27   		Value="_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;SQLITE_THREADSAFE=1;SQLITE_USE_URI=1;SQLITE_ENABLE_COLUMN_METADATA=1;SQLITE_ENABLE_STAT4=1;SQLITE_ENABLE_FTS3=1;SQLITE_ENABLE_LOAD_EXTENSION=1;SQLITE_ENABLE_RTREE=1;SQLITE_SOUNDEX=1;SQLITE_ENABLE_MEMORY_MANAGEMENT=1;SQLITE_ENABLE_API_ARMOR=1;SQLITE_ENABLE_DBSTAT_VTAB=1"
    28     28   		PerformEnvironmentSet="true"
    29     29   	/>

Changes to SQLite.Interop/src/core/sqlite3.c.

     1      1   /******************************************************************************
     2      2   ** This file is an amalgamation of many separate C source files from SQLite
     3         -** version 3.19.2.  By combining all the individual C code files into this
            3  +** version 3.19.3.  By combining all the individual C code files into this
     4      4   ** single large file, the entire code can be compiled as a single translation
     5      5   ** unit.  This allows many compilers to do optimizations that would not be
     6      6   ** possible if the files were compiled separately.  Performance improvements
     7      7   ** of 5% or more are commonly seen when SQLite is compiled as a single
     8      8   ** translation unit.
     9      9   **
    10     10   ** This file is all you need to compile SQLite.  To use SQLite in other
................................................................................
   394    394   ** string contains the date and time of the check-in (UTC) and a SHA1
   395    395   ** or SHA3-256 hash of the entire source tree.
   396    396   **
   397    397   ** See also: [sqlite3_libversion()],
   398    398   ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
   399    399   ** [sqlite_version()] and [sqlite_source_id()].
   400    400   */
   401         -#define SQLITE_VERSION        "3.19.2"
   402         -#define SQLITE_VERSION_NUMBER 3019002
   403         -#define SQLITE_SOURCE_ID      "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9"
          401  +#define SQLITE_VERSION        "3.19.3"
          402  +#define SQLITE_VERSION_NUMBER 3019003
          403  +#define SQLITE_SOURCE_ID      "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b"
   404    404   
   405    405   /*
   406    406   ** CAPI3REF: Run-Time Library Version Numbers
   407    407   ** KEYWORDS: sqlite3_version sqlite3_sourceid
   408    408   **
   409    409   ** These interfaces provide the same information as the [SQLITE_VERSION],
   410    410   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
................................................................................
 67204  67204         goto end_insert;
 67205  67205       }
 67206  67206       oldCell = findCell(pPage, idx);
 67207  67207       if( !pPage->leaf ){
 67208  67208         memcpy(newCell, oldCell, 4);
 67209  67209       }
 67210  67210       rc = clearCell(pPage, oldCell, &info);
 67211         -    if( info.nSize==szNew && info.nLocal==info.nPayload ){
        67211  +    if( info.nSize==szNew && info.nLocal==info.nPayload 
        67212  +     && (!ISAUTOVACUUM || szNew<pPage->minLocal)
        67213  +    ){
 67212  67214         /* Overwrite the old cell with the new if they are the same size.
 67213  67215         ** We could also try to do this if the old cell is smaller, then add
 67214  67216         ** the leftover space to the free list.  But experiments show that
 67215  67217         ** doing that is no faster then skipping this optimization and just
 67216         -      ** calling dropCell() and insertCell(). */
        67218  +      ** calling dropCell() and insertCell(). 
        67219  +      **
        67220  +      ** This optimization cannot be used on an autovacuum database if the
        67221  +      ** new entry uses overflow pages, as the insertCell() call below is
        67222  +      ** necessary to add the PTRMAP_OVERFLOW1 pointer-map entry.  */
 67217  67223         assert( rc==SQLITE_OK ); /* clearCell never fails when nLocal==nPayload */
 67218  67224         if( oldCell+szNew > pPage->aDataEnd ) return SQLITE_CORRUPT_BKPT;
 67219  67225         memcpy(oldCell, newCell, szNew);
 67220  67226         return SQLITE_OK;
 67221  67227       }
 67222  67228       dropCell(pPage, idx, info.nSize, &rc);
 67223  67229       if( rc ) goto end_insert;
................................................................................
199052 199058   static void fts5SourceIdFunc(
199053 199059     sqlite3_context *pCtx,          /* Function call context */
199054 199060     int nArg,                       /* Number of args */
199055 199061     sqlite3_value **apUnused        /* Function arguments */
199056 199062   ){
199057 199063     assert( nArg==0 );
199058 199064     UNUSED_PARAM2(nArg, apUnused);
199059         -  sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -1, SQLITE_TRANSIENT);
       199065  +  sqlite3_result_text(pCtx, "fts5: 2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b", -1, SQLITE_TRANSIENT);
199060 199066   }
199061 199067   
199062 199068   static int fts5Init(sqlite3 *db){
199063 199069     static const sqlite3_module fts5Mod = {
199064 199070       /* iVersion      */ 2,
199065 199071       /* xCreate       */ fts5CreateMethod,
199066 199072       /* xConnect      */ fts5ConnectMethod,

Changes to SQLite.Interop/src/core/sqlite3.h.

   117    117   ** string contains the date and time of the check-in (UTC) and a SHA1
   118    118   ** or SHA3-256 hash of the entire source tree.
   119    119   **
   120    120   ** See also: [sqlite3_libversion()],
   121    121   ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
   122    122   ** [sqlite_version()] and [sqlite_source_id()].
   123    123   */
   124         -#define SQLITE_VERSION        "3.19.2"
   125         -#define SQLITE_VERSION_NUMBER 3019002
   126         -#define SQLITE_SOURCE_ID      "2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9"
          124  +#define SQLITE_VERSION        "3.19.3"
          125  +#define SQLITE_VERSION_NUMBER 3019003
          126  +#define SQLITE_SOURCE_ID      "2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b"
   127    127   
   128    128   /*
   129    129   ** CAPI3REF: Run-Time Library Version Numbers
   130    130   ** KEYWORDS: sqlite3_version sqlite3_sourceid
   131    131   **
   132    132   ** These interfaces provide the same information as the [SQLITE_VERSION],
   133    133   ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros

Changes to SQLite.Interop/src/ext/fts5.c.

 17302  17302   static void fts5SourceIdFunc(
 17303  17303     sqlite3_context *pCtx,          /* Function call context */
 17304  17304     int nArg,                       /* Number of args */
 17305  17305     sqlite3_value **apUnused        /* Function arguments */
 17306  17306   ){
 17307  17307     assert( nArg==0 );
 17308  17308     UNUSED_PARAM2(nArg, apUnused);
 17309         -  sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -1, SQLITE_TRANSIENT);
        17309  +  sqlite3_result_text(pCtx, "fts5: 2017-06-08 14:26:16 0ee482a1e0eae22e08edc8978c9733a96603d4509645f348ebf55b579e89636b", -1, SQLITE_TRANSIENT);
 17310  17310   }
 17311  17311   
 17312  17312   static int fts5Init(sqlite3 *db){
 17313  17313     static const sqlite3_module fts5Mod = {
 17314  17314       /* iVersion      */ 2,
 17315  17315       /* xCreate       */ fts5CreateMethod,
 17316  17316       /* xConnect      */ fts5ConnectMethod,

Changes to readme.htm.

     1      1   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
     2      2   <html>
     3      3   <head>
     4      4   <title></title>
     5      5   </head>
     6      6   <body>
     7      7   ADO.NET SQLite Data Provider<br />
     8         -Version 1.0.106.0 - July XX, 2017 <font color="red">(release scheduled)</font><br />
     9         -Using <a href="https://www.sqlite.org/releaselog/3_19_2.html">SQLite 3.19.2</a><br />Originally written by Robert Simpson<br />
            8  +Version 1.0.106.0 - August XX, 2017 <font color="red">(release scheduled)</font><br />
            9  +Using <a href="https://www.sqlite.org/src/timeline">SQLite 3.20.0</a><br />Originally written by Robert Simpson<br />
    10     10   Released to the public domain, use at your own risk!<br />
    11     11   Official provider website:&nbsp;<a href="https://system.data.sqlite.org/">https://system.data.sqlite.org/</a><br />
    12     12   Legacy versions:&nbsp;<a href="https://sourceforge.net/projects/sqlite-dotnet2/">https://sourceforge.net/projects/sqlite-dotnet2/</a><br />
    13     13   <br />
    14     14   The current development version can be downloaded from <a href="https://system.data.sqlite.org/index.html/timeline?y=ci">
    15     15   https://system.data.sqlite.org/index.html/timeline?y=ci</a>
    16     16   <br />
................................................................................
   204    204   designed for robustness and maximum backward compatibility with previously
   205    205   released versions of System.Data.SQLite.
   206    206   </p>
   207    207   
   208    208   <h2><b>Version History</b></h2>
   209    209   
   210    210   <p>
   211         -    <b>1.0.106.0 - July XX, 2017 <font color="red">(release scheduled)</font></b>
          211  +    <b>1.0.106.0 - August XX, 2017 <font color="red">(release scheduled)</font></b>
   212    212   </p>
   213    213   <ul>
   214         -    <li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_2.html">SQLite 3.19.2</a>.</li>
          214  +    <li>Updated to <a href="https://www.sqlite.org/src/timeline">SQLite 3.20.0</a>.</li>
          215  +</ul>
          216  +<p>
          217  +    <b>1.0.105.2 - June 12, 2017</b>
          218  +</p>
          219  +<ul>
          220  +    <li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_3.html">SQLite 3.19.3</a>.</li>
          221  +    <li>Fix issues that prevented SQLiteBlob creation from succeeding for tables that did not have an integer primary key.</li>
   215    222   </ul>
   216    223   <p>
   217    224       <b>1.0.105.1 - May 15, 2017</b>
   218    225   </p>
   219    226   <ul>
   220    227       <li>Prevent culture settings from negatively impacting integer connection string defaults.</li>
   221    228       <li>Make sure the &quot;No_SQLiteConnectionNewParser&quot; and &quot;DefaultFlags_SQLiteConnection&quot; setting values end up being cached.</li>

Changes to www/news.wiki.

    41     41       Access to archived release packages will be granted on a case-by-case basis.
    42     42     </li>
    43     43   </ul>
    44     44   
    45     45   <div align="center"><h2><b>Version History</b></h2></div>
    46     46   
    47     47   <p>
    48         -    <b>1.0.106.0 - July XX, 2017 <font color="red">(release scheduled)</font></b>
           48  +    <b>1.0.106.0 - August XX, 2017 <font color="red">(release scheduled)</font></b>
    49     49   </p>
    50     50   <ul>
    51         -    <li>Updated to [https://www.sqlite.org/releaselog/3_19_2.html|SQLite 3.19.2].</li>
           51  +    <li>Updated to [https://www.sqlite.org/src/timeline|SQLite 3.20.0].</li>
           52  +</ul>
           53  +<p>
           54  +    <b>1.0.105.2 - June 12, 2017</b>
           55  +</p>
           56  +<ul>
           57  +    <li>Updated to [https://www.sqlite.org/releaselog/3_19_3.html|SQLite 3.19.3].</li>
           58  +    <li>Fix issues that prevented SQLiteBlob creation from succeeding for tables that did not have an integer primary key.</li>
    52     59   </ul>
    53     60   <p>
    54     61       <b>1.0.105.1 - May 15, 2017</b>
    55     62   </p>
    56     63   <ul>
    57     64       <li>Prevent culture settings from negatively impacting integer connection string defaults.</li>
    58     65       <li>Make sure the &quot;No_SQLiteConnectionNewParser&quot; and &quot;DefaultFlags_SQLiteConnection&quot; setting values end up being cached.</li>