System.Data.SQLite
Check-in [4f5c9aa89f]
Not logged in

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

Overview
Comment:Update SQLite core library to the 3.19.2 release.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4f5c9aa89f7eb679e85843bd866b4e04108501b3
User & Date: mistachkin 2017-05-25 18:52:05
Context
2017-06-10
17:38
Merge updates from trunk. check-in: 091bc3a48a user: mistachkin tags: branch-1.0.105
2017-06-09
23:49
Update a couple method visibility modifiers. check-in: 6ccd600582 user: mistachkin tags: trunk
2017-05-25
18:52
Update SQLite core library to the 3.19.2 release. check-in: 4f5c9aa89f user: mistachkin tags: trunk
2017-05-24
19:25
Pickup the SQLite core library 3.19.1 docs from upstream. check-in: f453665b94 user: mistachkin tags: trunk
Changes
Hide Diffs Side-by-Side Diffs Ignore Whitespace Patch

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

    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     46       <p><b>1.0.106.0 - July 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_1.html">SQLite 3.19.1</a>.</li>
           48  +      <li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_2.html">SQLite 3.19.2</a>.</li>
    49     49       </ul>
    50     50       <p><b>1.0.105.1 - May 15, 2017</b></p>
    51     51       <ul>
    52     52         <li>Prevent culture settings from negatively impacting integer connection string defaults.</li>
    53     53         <li>Make sure the &quot;No_SQLiteConnectionNewParser&quot; and &quot;DefaultFlags_SQLiteConnection&quot; setting values end up being cached.</li>
    54     54         <li>Cache the XML file name and assembly directory used by the configuration subsystem.</li>
    55     55       </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.1.0</SQLITE_MANIFEST_VERSION>
    13         -    <SQLITE_RC_VERSION>3,19,1,0</SQLITE_RC_VERSION>
           12  +    <SQLITE_MANIFEST_VERSION>3.19.2.0</SQLITE_MANIFEST_VERSION>
           13  +    <SQLITE_RC_VERSION>3,19,2,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.1.0"
           17  +		Value="3.19.2.0"
    18     18   		PerformEnvironmentSet="true"
    19     19   	/>
    20     20   	<UserMacro
    21     21   		Name="SQLITE_RC_VERSION"
    22         -		Value="3,19,1,0"
           22  +		Value="3,19,2,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.1.  By combining all the individual C code files into this
            3  +** version 3.19.2.  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.1"
   402         -#define SQLITE_VERSION_NUMBER 3019001
   403         -#define SQLITE_SOURCE_ID      "2017-05-24 13:08:33 f6d7b988f40217821a382bc298180e9e6794f3ed79a83c6ef5cae048989b3f86"
          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"
   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
................................................................................
 92628  92628       case TK_AGG_COLUMN:
 92629  92629         testcase( pExpr->op==TK_ID );
 92630  92630         testcase( pExpr->op==TK_COLUMN );
 92631  92631         testcase( pExpr->op==TK_AGG_FUNCTION );
 92632  92632         testcase( pExpr->op==TK_AGG_COLUMN );
 92633  92633         if( pWalker->eCode==3 && pExpr->iTable==pWalker->u.iCur ){
 92634  92634           return WRC_Continue;
 92635         -      }else{
 92636         -        pWalker->eCode = 0;
 92637         -        return WRC_Abort;
 92638  92635         }
        92636  +      /* Fall through */
        92637  +    case TK_IF_NULL_ROW:
        92638  +      testcase( pExpr->op==TK_IF_NULL_ROW );
        92639  +      pWalker->eCode = 0;
        92640  +      return WRC_Abort;
 92639  92641       case TK_VARIABLE:
 92640  92642         if( pWalker->eCode==5 ){
 92641  92643           /* Silently convert bound parameters that appear inside of CREATE
 92642  92644           ** statements into a NULL when parsing the CREATE statement text out
 92643  92645           ** of the sqlite_master table */
 92644  92646           pExpr->op = TK_NULL;
 92645  92647         }else if( pWalker->eCode==4 ){
................................................................................
120020 120022     */
120021 120023     if( (pSubitem->fg.jointype & JT_OUTER)!=0 ){
120022 120024       isLeftJoin = 1;
120023 120025       if( pSubSrc->nSrc>1 || isAgg ){
120024 120026         return 0; /* Restriction (3) */
120025 120027       }
120026 120028     }
       120029  +#ifdef SQLITE_EXTRA_IFNULLROW
       120030  +  else if( iFrom>0 && !isAgg ){
       120031  +    /* Setting isLeftJoin to -1 causes OP_IfNullRow opcodes to be generated for
       120032  +    ** every reference to any result column from subquery in a join, even though
       120033  +    ** they are not necessary.  This will stress-test the OP_IfNullRow opcode. */
       120034  +    isLeftJoin = -1;
       120035  +  }
       120036  +#endif
120027 120037   
120028 120038     /* Restriction 17: If the sub-query is a compound SELECT, then it must
120029 120039     ** use only the UNION ALL operator. And none of the simple select queries
120030 120040     ** that make up the compound SELECT are allowed to be aggregate or distinct
120031 120041     ** queries.
120032 120042     */
120033 120043     if( pSub->pPrior ){
................................................................................
120273 120283         }
120274 120284         assert( pParent->pOrderBy==0 );
120275 120285         assert( pSub->pPrior==0 );
120276 120286         pParent->pOrderBy = pOrderBy;
120277 120287         pSub->pOrderBy = 0;
120278 120288       }
120279 120289       pWhere = sqlite3ExprDup(db, pSub->pWhere, 0);
120280         -    if( isLeftJoin ){
       120290  +    if( isLeftJoin>0 ){
120281 120291         setJoinExpr(pWhere, iNewParent);
120282 120292       }
120283 120293       if( subqueryIsAgg ){
120284 120294         assert( pParent->pHaving==0 );
120285 120295         pParent->pHaving = pParent->pWhere;
120286 120296         pParent->pWhere = pWhere;
120287 120297         pParent->pHaving = sqlite3ExprAnd(db, 
................................................................................
130282 130292   ** a bitmask indicating which tables are used in that expression
130283 130293   ** tree.
130284 130294   */
130285 130295   SQLITE_PRIVATE Bitmask sqlite3WhereExprUsage(WhereMaskSet *pMaskSet, Expr *p){
130286 130296     Bitmask mask;
130287 130297     if( p==0 ) return 0;
130288 130298     if( p->op==TK_COLUMN ){
130289         -    mask = sqlite3WhereGetMask(pMaskSet, p->iTable);
130290         -    return mask;
       130299  +    return sqlite3WhereGetMask(pMaskSet, p->iTable);
130291 130300     }
       130301  +  mask = (p->op==TK_IF_NULL_ROW) ? sqlite3WhereGetMask(pMaskSet, p->iTable) : 0;
130292 130302     assert( !ExprHasProperty(p, EP_TokenOnly) );
130293         -  mask = p->pRight ? sqlite3WhereExprUsage(pMaskSet, p->pRight) : 0;
       130303  +  if( p->pRight ) mask |= sqlite3WhereExprUsage(pMaskSet, p->pRight);
130294 130304     if( p->pLeft ) mask |= sqlite3WhereExprUsage(pMaskSet, p->pLeft);
130295 130305     if( ExprHasProperty(p, EP_xIsSelect) ){
130296 130306       mask |= exprSelectUsage(pMaskSet, p->x.pSelect);
130297 130307     }else if( p->x.pList ){
130298 130308       mask |= sqlite3WhereExprListUsage(pMaskSet, p->x.pList);
130299 130309     }
130300 130310     return mask;
................................................................................
199042 199052   static void fts5SourceIdFunc(
199043 199053     sqlite3_context *pCtx,          /* Function call context */
199044 199054     int nArg,                       /* Number of args */
199045 199055     sqlite3_value **apUnused        /* Function arguments */
199046 199056   ){
199047 199057     assert( nArg==0 );
199048 199058     UNUSED_PARAM2(nArg, apUnused);
199049         -  sqlite3_result_text(pCtx, "fts5: 2017-05-24 13:08:33 f6d7b988f40217821a382bc298180e9e6794f3ed79a83c6ef5cae048989b3f86", -1, SQLITE_TRANSIENT);
       199059  +  sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -1, SQLITE_TRANSIENT);
199050 199060   }
199051 199061   
199052 199062   static int fts5Init(sqlite3 *db){
199053 199063     static const sqlite3_module fts5Mod = {
199054 199064       /* iVersion      */ 2,
199055 199065       /* xCreate       */ fts5CreateMethod,
199056 199066       /* 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.1"
   125         -#define SQLITE_VERSION_NUMBER 3019001
   126         -#define SQLITE_SOURCE_ID      "2017-05-24 13:08:33 f6d7b988f40217821a382bc298180e9e6794f3ed79a83c6ef5cae048989b3f86"
          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"
   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-24 13:08:33 f6d7b988f40217821a382bc298180e9e6794f3ed79a83c6ef5cae048989b3f86", -1, SQLITE_TRANSIENT);
        17309  +  sqlite3_result_text(pCtx, "fts5: 2017-05-25 16:50:27 edb4e819b0c058c7d74d27ebd14cc5ceb2bad6a6144a486a970182b7afe3f8b9", -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.

     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      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_1.html">SQLite 3.19.1</a><br />Originally written by Robert Simpson<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 />
    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 />
................................................................................
   207    207   
   208    208   <h2><b>Version History</b></h2>
   209    209   
   210    210   <p>
   211    211       <b>1.0.106.0 - July 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_1.html">SQLite 3.19.1</a>.</li>
          214  +    <li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_2.html">SQLite 3.19.2</a>.</li>
   215    215   </ul>
   216    216   <p>
   217    217       <b>1.0.105.1 - May 15, 2017</b>
   218    218   </p>
   219    219   <ul>
   220    220       <li>Prevent culture settings from negatively impacting integer connection string defaults.</li>
   221    221       <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.

    44     44   
    45     45   <div align="center"><h2><b>Version History</b></h2></div>
    46     46   
    47     47   <p>
    48     48       <b>1.0.106.0 - July 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_1.html|SQLite 3.19.1].</li>
           51  +    <li>Updated to [https://www.sqlite.org/releaselog/3_19_2.html|SQLite 3.19.2].</li>
    52     52   </ul>
    53     53   <p>
    54     54       <b>1.0.105.1 - May 15, 2017</b>
    55     55   </p>
    56     56   <ul>
    57     57       <li>Prevent culture settings from negatively impacting integer connection string defaults.</li>
    58     58       <li>Make sure the &quot;No_SQLiteConnectionNewParser&quot; and &quot;DefaultFlags_SQLiteConnection&quot; setting values end up being cached.</li>