System.Data.SQLite

Check-in [4642ef13b9]
Login

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

Overview
Comment:Update SQLite core library docs from upstream. Update version history docs.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | preRelease
Files: files | file ages | folders
SHA1: 4642ef13b9276392a907033a80bbf4a4fcd1b604
User & Date: mistachkin 2018-08-07 00:11:25.197
Context
2018-08-11
19:58
Update Eagle in externals to the beta 43 release. check-in: 86636b58e2 user: mistachkin tags: preRelease
2018-08-07
00:11
Update SQLite core library docs from upstream. Update version history docs. check-in: 4642ef13b9 user: mistachkin tags: preRelease
00:06
Fix issue with P/Invoke portability to Windows CE by wrapping sqlite3_msize() on that platform. Enhance tests. check-in: 54ebb78b16 user: mistachkin tags: preRelease
Changes
Unified Diff Ignore Whitespace Patch
Changes to Doc/Extra/Core/lang_UPSERT.html.
257
258
259
260
261
262
263




264
265

<p>In this last example, the phonebook2 entry is only
updated if the validDate for the newly inserted value is
newer than the entry already in the table.  If the table already
contains an entry with the same name and a current validDate,
then the WHERE clause causes the DO UPDATE to become a no-op.














>
>
>
>


257
258
259
260
261
262
263
264
265
266
267
268
269

<p>In this last example, the phonebook2 entry is only
updated if the validDate for the newly inserted value is
newer than the entry already in the table.  If the table already
contains an entry with the same name and a current validDate,
then the WHERE clause causes the DO UPDATE to become a no-op.

<h3>Limitations</h3>

<p>UPSERT does not currently work for <a href="vtab.html">virtual tables</a>.



Changes to Doc/Extra/Provider/version.html.
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
          </td>
        </tr>
      </table>
    </div>
    <div id="mainSection">
    <div id="mainBody">
    <h1 class="heading">Version History</h1>
    <p><b>1.0.109.0 - August 7, 2018</b></p>
    <ul>
      <li>Updated to <a href="https://www.sqlite.org/releaselog/3_24_0.html">SQLite 3.24.0</a>.</li>
      <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.2.0">Entity Framework 6.2.0</a>.</li>
      <li>Do not attempt to initialize the logging subsystem more than once.&nbsp;<b>** Potentially Incompatible Change **</b></li>
      <li>Prevent GetSchemaTable from throwing InvalidCastException. Fix for <a href="https://system.data.sqlite.org/index.html/info/baf42ee135">[baf42ee135]</a>.</li>
      <li>Add preliminary support for the .NET Framework 4.7.2.</li>
      <li>Add preliminary support for .NET Core 2.0 and the .NET Standard 2.0. Pursuant to <a href="https://system.data.sqlite.org/index.html/info/5c89cecd1b">[5c89cecd1b]</a>.</li>







|







39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
          </td>
        </tr>
      </table>
    </div>
    <div id="mainSection">
    <div id="mainBody">
    <h1 class="heading">Version History</h1>
    <p><b>1.0.109.0 - August 15, 2018</b></p>
    <ul>
      <li>Updated to <a href="https://www.sqlite.org/releaselog/3_24_0.html">SQLite 3.24.0</a>.</li>
      <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.2.0">Entity Framework 6.2.0</a>.</li>
      <li>Do not attempt to initialize the logging subsystem more than once.&nbsp;<b>** Potentially Incompatible Change **</b></li>
      <li>Prevent GetSchemaTable from throwing InvalidCastException. Fix for <a href="https://system.data.sqlite.org/index.html/info/baf42ee135">[baf42ee135]</a>.</li>
      <li>Add preliminary support for the .NET Framework 4.7.2.</li>
      <li>Add preliminary support for .NET Core 2.0 and the .NET Standard 2.0. Pursuant to <a href="https://system.data.sqlite.org/index.html/info/5c89cecd1b">[5c89cecd1b]</a>.</li>
Changes to Doc/Special/Core/vtab.html.
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
destructor for client data pointer.  The module structure is what defines
the behavior of a virtual table.  The module structure looks like this:

</p><div class="codeblock"><pre>
struct sqlite3_module {
  int iVersion;
  int (*xCreate)(sqlite3*, void *pAux,
               int argc, char **argv,
               sqlite3_vtab **ppVTab,
               char **pzErr);
  int (*xConnect)(sqlite3*, void *pAux,
               int argc, char **argv,
               sqlite3_vtab **ppVTab,
               char **pzErr);
  int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*);
  int (*xDisconnect)(sqlite3_vtab *pVTab);
  int (*xDestroy)(sqlite3_vtab *pVTab);
  int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor);
  int (*xClose)(sqlite3_vtab_cursor*);







|



|







410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
destructor for client data pointer.  The module structure is what defines
the behavior of a virtual table.  The module structure looks like this:

</p><div class="codeblock"><pre>
struct sqlite3_module {
  int iVersion;
  int (*xCreate)(sqlite3*, void *pAux,
               int argc, char *const*argv,
               sqlite3_vtab **ppVTab,
               char **pzErr);
  int (*xConnect)(sqlite3*, void *pAux,
               int argc, char *const*argv,
               sqlite3_vtab **ppVTab,
               char **pzErr);
  int (*xBestIndex)(sqlite3_vtab *pVTab, sqlite3_index_info*);
  int (*xDisconnect)(sqlite3_vtab *pVTab);
  int (*xDestroy)(sqlite3_vtab *pVTab);
  int (*xOpen)(sqlite3_vtab *pVTab, sqlite3_vtab_cursor **ppCursor);
  int (*xClose)(sqlite3_vtab_cursor*);
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
</p><h1 id="virtual_table_methods"><span>2. </span>Virtual Table Methods</h1>

<a name="xcreate"></a>

<h2 id="the_xcreate_method"><span>2.1. </span>The xCreate Method</h2>

<div class="codeblock"><pre>int (*xCreate)(sqlite3 *db, void *pAux,
             int argc, char **argv,
             sqlite3_vtab **ppVTab,
             char **pzErr);
</pre></div>

<p>The xCreate method is called to create a new instance of a virtual table 
in response to a <a href="lang_createvtab.html">CREATE VIRTUAL TABLE</a> statement.
If the xCreate method is the same pointer as the <a href="vtab.html#xconnect">xConnect</a> method, then the







|







499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
</p><h1 id="virtual_table_methods"><span>2. </span>Virtual Table Methods</h1>

<a name="xcreate"></a>

<h2 id="the_xcreate_method"><span>2.1. </span>The xCreate Method</h2>

<div class="codeblock"><pre>int (*xCreate)(sqlite3 *db, void *pAux,
             int argc, char *const*argv,
             sqlite3_vtab **ppVTab,
             char **pzErr);
</pre></div>

<p>The xCreate method is called to create a new instance of a virtual table 
in response to a <a href="lang_createvtab.html">CREATE VIRTUAL TABLE</a> statement.
If the xCreate method is the same pointer as the <a href="vtab.html#xconnect">xConnect</a> method, then the
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
PRIMARY KEY column and a non-NULL xUpdate method.

<a name="xconnect"></a>

</p><h2 id="the_xconnect_method"><span>2.2. </span>The xConnect Method</h2>

<div class="codeblock"><pre>int (*xConnect)(sqlite3*, void *pAux,
             int argc, char **argv,
             sqlite3_vtab **ppVTab,
             char **pzErr);
</pre></div>

<p>The xConnect method is very similar to <a href="vtab.html#xcreate">xCreate</a>. 
It has the same parameters and constructs a new <a href="c3ref/vtab.html">sqlite3_vtab</a> structure 
just like xCreate. 







|







693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
PRIMARY KEY column and a non-NULL xUpdate method.

<a name="xconnect"></a>

</p><h2 id="the_xconnect_method"><span>2.2. </span>The xConnect Method</h2>

<div class="codeblock"><pre>int (*xConnect)(sqlite3*, void *pAux,
             int argc, char *const*argv,
             sqlite3_vtab **ppVTab,
             char **pzErr);
</pre></div>

<p>The xConnect method is very similar to <a href="vtab.html#xcreate">xCreate</a>. 
It has the same parameters and constructs a new <a href="c3ref/vtab.html">sqlite3_vtab</a> structure 
just like xCreate. 
Changes to System.Data.SQLite/ISQLiteNativeModule.cs.
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    /// native code.
    /// </summary>
    public interface ISQLiteNativeModule
    {
        /// <summary>
        /// <para><code>
        /// int (*xCreate)(sqlite3 *db, void *pAux,
        ///              int argc, char **argv,
        ///              sqlite3_vtab **ppVTab,
        ///              char **pzErr);
        /// </code></para>
        /// <para>
        /// The xCreate method is called to create a new instance of a virtual table 
        /// in response to a CREATE VIRTUAL TABLE statement.
        /// If the xCreate method is the same pointer as the xConnect method, then the







|







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    /// native code.
    /// </summary>
    public interface ISQLiteNativeModule
    {
        /// <summary>
        /// <para><code>
        /// int (*xCreate)(sqlite3 *db, void *pAux,
        ///              int argc, char *const*argv,
        ///              sqlite3_vtab **ppVTab,
        ///              char **pzErr);
        /// </code></para>
        /// <para>
        /// The xCreate method is called to create a new instance of a virtual table 
        /// in response to a CREATE VIRTUAL TABLE statement.
        /// If the xCreate method is the same pointer as the xConnect method, then the
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
            );

        ///////////////////////////////////////////////////////////////////////

        /// <summary>
        /// <para><code>
        /// int (*xConnect)(sqlite3*, void *pAux,
        ///              int argc, char **argv,
        ///              sqlite3_vtab **ppVTab,
        ///              char **pzErr);
        /// </code></para>
        /// <para>
        /// The xConnect method is very similar to xCreate. 
        /// It has the same parameters and constructs a new sqlite3_vtab structure 
        /// just like xCreate. 







|







251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
            );

        ///////////////////////////////////////////////////////////////////////

        /// <summary>
        /// <para><code>
        /// int (*xConnect)(sqlite3*, void *pAux,
        ///              int argc, char *const*argv,
        ///              sqlite3_vtab **ppVTab,
        ///              char **pzErr);
        /// </code></para>
        /// <para>
        /// The xConnect method is very similar to xCreate. 
        /// It has the same parameters and constructs a new sqlite3_vtab structure 
        /// just like xCreate. 
Changes to readme.htm.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
ADO.NET SQLite Data Provider<br />
Version 1.0.109.0 - August 7, 2018<br />
Using <a href="https://www.sqlite.org/releaselog/3_24_0.html">SQLite 3.24.0</a><br />Originally written by Robert Simpson<br />
Released to the public domain, use at your own risk!<br />
Official provider website:&nbsp;<a href="https://system.data.sqlite.org/">https://system.data.sqlite.org/</a><br />
Legacy versions:&nbsp;<a href="https://sourceforge.net/projects/sqlite-dotnet2/">https://sourceforge.net/projects/sqlite-dotnet2/</a><br />
<br />
The current development version can be downloaded from <a href="https://system.data.sqlite.org/index.html/timeline?y=ci">
https://system.data.sqlite.org/index.html/timeline?y=ci</a>







|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
ADO.NET SQLite Data Provider<br />
Version 1.0.109.0 - August 15, 2018<br />
Using <a href="https://www.sqlite.org/releaselog/3_24_0.html">SQLite 3.24.0</a><br />Originally written by Robert Simpson<br />
Released to the public domain, use at your own risk!<br />
Official provider website:&nbsp;<a href="https://system.data.sqlite.org/">https://system.data.sqlite.org/</a><br />
Legacy versions:&nbsp;<a href="https://sourceforge.net/projects/sqlite-dotnet2/">https://sourceforge.net/projects/sqlite-dotnet2/</a><br />
<br />
The current development version can be downloaded from <a href="https://system.data.sqlite.org/index.html/timeline?y=ci">
https://system.data.sqlite.org/index.html/timeline?y=ci</a>
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
designed for robustness and maximum backward compatibility with previously
released versions of System.Data.SQLite.
</p>

<h2><b>Version History</b></h2>

<p>
    <b>1.0.109.0 - August 7, 2018</b>
</p>
<ul>
    <li>Updated to <a href="https://www.sqlite.org/releaselog/3_24_0.html">SQLite 3.24.0</a>.</li>
    <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.2.0">Entity Framework 6.2.0</a>.</li>
    <li>Do not attempt to initialize the logging subsystem more than once.&nbsp;<b>** Potentially Incompatible Change **</b></li>
    <li>Prevent GetSchemaTable from throwing InvalidCastException. Fix for [baf42ee135].</li>
    <li>Add preliminary support for the .NET Framework 4.7.2.</li>







|







204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
designed for robustness and maximum backward compatibility with previously
released versions of System.Data.SQLite.
</p>

<h2><b>Version History</b></h2>

<p>
    <b>1.0.109.0 - August 15, 2018</b>
</p>
<ul>
    <li>Updated to <a href="https://www.sqlite.org/releaselog/3_24_0.html">SQLite 3.24.0</a>.</li>
    <li>Updated to <a href="https://www.nuget.org/packages/EntityFramework/6.2.0">Entity Framework 6.2.0</a>.</li>
    <li>Do not attempt to initialize the logging subsystem more than once.&nbsp;<b>** Potentially Incompatible Change **</b></li>
    <li>Prevent GetSchemaTable from throwing InvalidCastException. Fix for [baf42ee135].</li>
    <li>Add preliminary support for the .NET Framework 4.7.2.</li>
Changes to www/news.wiki.
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    Access to archived release packages will be granted on a case-by-case basis.
  </li>
</ul>

<div align="center"><h2><b>Version History</b></h2></div>

<p>
    <b>1.0.109.0 - August 7, 2018</b>
</p>
<ul>
    <li>Updated to [https://www.sqlite.org/releaselog/3_24_0.html|SQLite 3.24.0].</li>
    <li>Updated to [https://www.nuget.org/packages/EntityFramework/6.2.0|Entity Framework 6.2.0].</li>
    <li>Do not attempt to initialize the logging subsystem more than once.&nbsp;<b>** Potentially Incompatible Change **</b></li>
    <li>Prevent GetSchemaTable from throwing InvalidCastException. Fix for [baf42ee135].</li>
    <li>Add preliminary support for the .NET Framework 4.7.2.</li>







|







41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
    Access to archived release packages will be granted on a case-by-case basis.
  </li>
</ul>

<div align="center"><h2><b>Version History</b></h2></div>

<p>
    <b>1.0.109.0 - August 15, 2018</b>
</p>
<ul>
    <li>Updated to [https://www.sqlite.org/releaselog/3_24_0.html|SQLite 3.24.0].</li>
    <li>Updated to [https://www.nuget.org/packages/EntityFramework/6.2.0|Entity Framework 6.2.0].</li>
    <li>Do not attempt to initialize the logging subsystem more than once.&nbsp;<b>** Potentially Incompatible Change **</b></li>
    <li>Prevent GetSchemaTable from throwing InvalidCastException. Fix for [baf42ee135].</li>
    <li>Add preliminary support for the .NET Framework 4.7.2.</li>