Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Comment: | Add experimental support for incremental blob I/O. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
717bc31b477b503e94ffb836ab12a9cf |
User & Date: | mistachkin 2016-07-01 21:05:29 |
2016-07-01
| ||
21:23 | Add support for the 'No_SQLiteGetSettingValue' and 'No_SQLiteXmlConfigFile' environment variables. check-in: dc631206c0 user: mistachkin tags: trunk | |
21:05 | Add experimental support for incremental blob I/O. check-in: 717bc31b47 user: mistachkin tags: trunk | |
20:43 | Improve doc comments. Closed-Leaf check-in: 283d973957 user: mistachkin tags: blobIo | |
03:20 | Correct an attribution comment. check-in: 8c08bda9a1 user: mistachkin tags: trunk | |
Changes to Doc/Extra/Provider/dbfactorysupport.html.
81 81 <configuration> 82 82 <system.data> 83 83 <DbProviderFactories> 84 84 <remove invariant="System.Data.SQLite"/> 85 85 <add name="SQLite Data Provider" invariant="System.Data.SQLite" 86 86 description=".NET Framework Data Provider for SQLite" 87 87 type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, 88 - Version=1.0.102.0, Culture=neutral, 88 + Version=1.0.103.0, Culture=neutral, 89 89 PublicKeyToken=db937bc2d44ff139"/> 90 90 </DbProviderFactories> 91 91 </system.data> 92 92 </configuration> 93 93 </pre> 94 94 </div> 95 95 <p>
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.103.0 - August XX, 2016 <font color="red">(release scheduled)</font></b></p> 47 + <ul> 48 + <li>Change the SQLiteReadValueCallback delegate "eventArgs" parameter to be of type SQLiteReadEventArgs. <b>** Potentially Incompatible Change **</b></li> 49 + <li>Make SQLiteReadValueEventArgs and SQLiteReadArrayEventArgs derive from SQLiteReadEventArgs. <b>** Potentially Incompatible Change **</b></li> 50 + <li>Rename SQLiteReadValueEventArgs.ArrayEventArgs property to ExtraEventArgs. <b>** Potentially Incompatible Change **</b></li> 51 + <li>Add NoVerifyTypeAffinity connection flag to disable all type affinity checking.</li> 52 + <li>Add support for <a href="https://www.sqlite.org/c3ref/blob_open.html">incremental blob I/O</a>.</li> 53 + </ul> 46 54 <p><b>1.0.102.0 - June 23, 2016</b></p> 47 55 <ul> 48 56 <li>Updated to <a href="https://www.sqlite.org/releaselog/3_13_0.html">SQLite 3.13.0</a>.</li> 49 57 <li>Update the SQLiteConnection.EnableExtensions method to make use of the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION option, when available. <b>** Potentially Incompatible Change **</b></li> 50 58 <li>Prevent the SQLiteCommand.ExecuteScalar method from throwing an exception when there are no result columns. <b>** Potentially Incompatible Change **</b></li> 51 59 <li>Support per-connection customization for binding parameters and reading values, based on the database type name.</li> 52 60 <li>Add TypeName property to the SQLiteParameter class.</li>
Changes to Doc/Extra/Provider/welcome.html.
156 156 <font color="red"> 157 157 Itanium processor support not currently included. 158 158 </font> 159 159 </p> 160 160 <h1 class="heading">Distributing the Binaries (Compact Framework)</h1> 161 161 <p>Both the <b>System.Data.SQLite.DLL </b>and <b>SQLite.Interop.XXX.DLL</b> files 162 162 must be deployed on the Compact Framework. The XXX is the build number of 163 - the System.Data.SQLite library (e.g. "102"). The 163 + the System.Data.SQLite library (e.g. "103"). The 164 164 <b>SQLite.Interop.XXX.DLL</b> file is a fully native assembly compiled for 165 165 the ARM processor, and System.Data.SQLite is the fully-managed Compact 166 166 Framework assembly.</p> 167 167 <hr /> 168 168 <div id="footer"> 169 169 <p> 170 170 <a href="mailto:sqlite-users@mailinglists.sqlite.org?subject=SQLite.NET%20Class%20Library%20Documentation%20Feedback:%20Welcome"> 171 171 Send comments on this topic.<!--[if gte IE 5]><tool:tip element="seeAlsoToolTip" avoidmouse="false" /><tool:tip element="languageFilterToolTip" avoidmouse="false" /><![endif]--> </div> 172 172 </div> 173 173 </body> 174 174 </html>
Changes to NuGet/SQLite.Beta.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Beta</id> 13 13 <title>System.Data.SQLite (x86/x64) Beta</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a "beta" package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags> 22 22 <copyright>Public Domain</copyright> 23 23 <dependencies> 24 24 <group targetFramework="net20"> 25 - <dependency id="System.Data.SQLite.Core.Beta" version="1.0.102.0" /> 25 + <dependency id="System.Data.SQLite.Core.Beta" version="1.0.103.0" /> 26 26 </group> 27 27 <group targetFramework="net40"> 28 - <dependency id="System.Data.SQLite.Core.Beta" version="1.0.102.0" /> 28 + <dependency id="System.Data.SQLite.Core.Beta" version="1.0.103.0" /> 29 29 </group> 30 30 <group targetFramework="net45"> 31 - <dependency id="System.Data.SQLite.Core.Beta" version="1.0.102.0" /> 31 + <dependency id="System.Data.SQLite.Core.Beta" version="1.0.103.0" /> 32 32 </group> 33 33 <group targetFramework="net451"> 34 - <dependency id="System.Data.SQLite.Core.Beta" version="1.0.102.0" /> 34 + <dependency id="System.Data.SQLite.Core.Beta" version="1.0.103.0" /> 35 35 </group> 36 36 <group targetFramework="net46"> 37 - <dependency id="System.Data.SQLite.Core.Beta" version="1.0.102.0" /> 37 + <dependency id="System.Data.SQLite.Core.Beta" version="1.0.103.0" /> 38 38 </group> 39 39 <group targetFramework="net20"> 40 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 40 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 41 41 </group> 42 42 <group targetFramework="net40"> 43 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 43 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 44 44 </group> 45 45 <group targetFramework="net45"> 46 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 46 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 47 47 </group> 48 48 <group targetFramework="net451"> 49 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 49 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 50 50 </group> 51 51 <group targetFramework="net46"> 52 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 52 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 53 53 </group> 54 54 <group targetFramework="net40"> 55 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 55 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 56 56 </group> 57 57 <group targetFramework="net45"> 58 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 58 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 59 59 </group> 60 60 <group targetFramework="net451"> 61 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 61 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 62 62 </group> 63 63 <group targetFramework="net46"> 64 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 64 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 65 65 </group> 66 66 </dependencies> 67 67 </metadata> 68 68 <files /> 69 69 </package>
Changes to NuGet/SQLite.Core.Beta.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Core.Beta</id> 13 13 <title>System.Data.SQLite Core (x86/x64) Beta</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a "beta" package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Core.MSIL.Beta.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Core.MSIL.Beta</id> 13 13 <title>System.Data.SQLite (MSIL) Beta</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a "beta" package and is not intended for production use. An ADO.NET provider for SQLite (managed-only).</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Core.MSIL.Test.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Core.MSIL.Test</id> 13 13 <title>System.Data.SQLite (MSIL) Test</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a pre-release package and is not intended for production use. An ADO.NET provider for SQLite (managed-only).</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Core.MSIL.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Core.MSIL</id> 13 13 <title>System.Data.SQLite Core (MSIL)</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>An ADO.NET provider for SQLite (managed-only).</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Core.Test.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Core.Test</id> 13 13 <title>System.Data.SQLite Core (x86/x64) Test</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a pre-release package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Core.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Core</id> 13 13 <title>System.Data.SQLite Core (x86/x64)</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.EF6.Beta.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.EF6.Beta</id> 13 13 <title>System.Data.SQLite EF6 Beta</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a "beta" package and is not intended for production use. Support for Entity Framework 6 using System.Data.SQLite.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.EF6.Test.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.EF6.Test</id> 13 13 <title>System.Data.SQLite EF6 Test</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a pre-release package and is not intended for production use. Support for Entity Framework 6 using System.Data.SQLite.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.EF6.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.EF6</id> 13 13 <title>System.Data.SQLite EF6</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>Support for Entity Framework 6 using System.Data.SQLite.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Linq.Beta.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Linq.Beta</id> 13 13 <title>System.Data.SQLite LINQ Beta</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a "beta" package and is not intended for production use. Support for LINQ using System.Data.SQLite.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Linq.Test.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Linq.Test</id> 13 13 <title>System.Data.SQLite LINQ Test</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a pre-release package and is not intended for production use. Support for LINQ using System.Data.SQLite.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.Linq.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Linq</id> 13 13 <title>System.Data.SQLite LINQ</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>Support for LINQ using System.Data.SQLite.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags>
Changes to NuGet/SQLite.MSIL.Beta.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.MSIL.Beta</id> 13 13 <title>System.Data.SQLite (MSIL) Beta</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a "beta" package and is not intended for production use. This is a legacy package; if possible, please use either the "System.Data.SQLite.Beta" or "System.Data.SQLite.Core.Beta" package instead. An ADO.NET provider for SQLite (managed-only).</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags> 22 22 <copyright>Public Domain</copyright> 23 23 <dependencies> 24 24 <group targetFramework="net20"> 25 - <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.102.0" /> 25 + <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.103.0" /> 26 26 </group> 27 27 <group targetFramework="net40"> 28 - <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.102.0" /> 28 + <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.103.0" /> 29 29 </group> 30 30 <group targetFramework="net45"> 31 - <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.102.0" /> 31 + <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.103.0" /> 32 32 </group> 33 33 <group targetFramework="net451"> 34 - <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.102.0" /> 34 + <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.103.0" /> 35 35 </group> 36 36 <group targetFramework="net46"> 37 - <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.102.0" /> 37 + <dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.103.0" /> 38 38 </group> 39 39 <group targetFramework="net20"> 40 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 40 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 41 41 </group> 42 42 <group targetFramework="net40"> 43 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 43 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 44 44 </group> 45 45 <group targetFramework="net45"> 46 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 46 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 47 47 </group> 48 48 <group targetFramework="net451"> 49 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 49 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 50 50 </group> 51 51 <group targetFramework="net46"> 52 - <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.102.0" /> 52 + <dependency id="System.Data.SQLite.Linq.Beta" version="1.0.103.0" /> 53 53 </group> 54 54 <group targetFramework="net40"> 55 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 55 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 56 56 </group> 57 57 <group targetFramework="net45"> 58 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 58 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 59 59 </group> 60 60 <group targetFramework="net451"> 61 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 61 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 62 62 </group> 63 63 <group targetFramework="net46"> 64 - <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.102.0" /> 64 + <dependency id="System.Data.SQLite.EF6.Beta" version="1.0.103.0" /> 65 65 </group> 66 66 </dependencies> 67 67 </metadata> 68 68 <files /> 69 69 </package>
Changes to NuGet/SQLite.MSIL.Test.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.MSIL.Test</id> 13 13 <title>System.Data.SQLite (MSIL) Test</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a pre-release package and is not intended for production use. This is a legacy package; if possible, please use either the "System.Data.SQLite.Test" or "System.Data.SQLite.Core.Test" package instead. An ADO.NET provider for SQLite (managed-only).</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags> 22 22 <copyright>Public Domain</copyright> 23 23 <dependencies> 24 24 <group targetFramework="net20"> 25 - <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.102.0" /> 25 + <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.103.0" /> 26 26 </group> 27 27 <group targetFramework="net40"> 28 - <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.102.0" /> 28 + <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.103.0" /> 29 29 </group> 30 30 <group targetFramework="net45"> 31 - <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.102.0" /> 31 + <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.103.0" /> 32 32 </group> 33 33 <group targetFramework="net451"> 34 - <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.102.0" /> 34 + <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.103.0" /> 35 35 </group> 36 36 <group targetFramework="net46"> 37 - <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.102.0" /> 37 + <dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.103.0" /> 38 38 </group> 39 39 <group targetFramework="net20"> 40 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 40 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 41 41 </group> 42 42 <group targetFramework="net40"> 43 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 43 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 44 44 </group> 45 45 <group targetFramework="net45"> 46 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 46 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 47 47 </group> 48 48 <group targetFramework="net451"> 49 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 49 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 50 50 </group> 51 51 <group targetFramework="net46"> 52 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 52 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 53 53 </group> 54 54 <group targetFramework="net40"> 55 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 55 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 56 56 </group> 57 57 <group targetFramework="net45"> 58 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 58 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 59 59 </group> 60 60 <group targetFramework="net451"> 61 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 61 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 62 62 </group> 63 63 <group targetFramework="net46"> 64 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 64 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 65 65 </group> 66 66 </dependencies> 67 67 </metadata> 68 68 <files /> 69 69 </package>
Changes to NuGet/SQLite.MSIL.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.MSIL</id> 13 13 <title>System.Data.SQLite (MSIL)</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a legacy package; if possible, please use either the "System.Data.SQLite" or "System.Data.SQLite.Core" package instead. An ADO.NET provider for SQLite (managed-only).</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags> 22 22 <copyright>Public Domain</copyright> 23 23 <dependencies> 24 24 <group targetFramework="net20"> 25 - <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.102.0" /> 25 + <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.103.0" /> 26 26 </group> 27 27 <group targetFramework="net40"> 28 - <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.102.0" /> 28 + <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.103.0" /> 29 29 </group> 30 30 <group targetFramework="net45"> 31 - <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.102.0" /> 31 + <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.103.0" /> 32 32 </group> 33 33 <group targetFramework="net451"> 34 - <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.102.0" /> 34 + <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.103.0" /> 35 35 </group> 36 36 <group targetFramework="net46"> 37 - <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.102.0" /> 37 + <dependency id="System.Data.SQLite.Core.MSIL" version="1.0.103.0" /> 38 38 </group> 39 39 <group targetFramework="net20"> 40 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 40 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 41 41 </group> 42 42 <group targetFramework="net40"> 43 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 43 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 44 44 </group> 45 45 <group targetFramework="net45"> 46 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 46 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 47 47 </group> 48 48 <group targetFramework="net451"> 49 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 49 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 50 50 </group> 51 51 <group targetFramework="net46"> 52 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 52 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 53 53 </group> 54 54 <group targetFramework="net40"> 55 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 55 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 56 56 </group> 57 57 <group targetFramework="net45"> 58 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 58 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 59 59 </group> 60 60 <group targetFramework="net451"> 61 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 61 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 62 62 </group> 63 63 <group targetFramework="net46"> 64 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 64 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 65 65 </group> 66 66 </dependencies> 67 67 </metadata> 68 68 <files /> 69 69 </package>
Changes to NuGet/SQLite.Test.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.Test</id> 13 13 <title>System.Data.SQLite (x86/x64) Test</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>This is a pre-release package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags> 22 22 <copyright>Public Domain</copyright> 23 23 <dependencies> 24 24 <group targetFramework="net20"> 25 - <dependency id="System.Data.SQLite.Core.Test" version="1.0.102.0" /> 25 + <dependency id="System.Data.SQLite.Core.Test" version="1.0.103.0" /> 26 26 </group> 27 27 <group targetFramework="net40"> 28 - <dependency id="System.Data.SQLite.Core.Test" version="1.0.102.0" /> 28 + <dependency id="System.Data.SQLite.Core.Test" version="1.0.103.0" /> 29 29 </group> 30 30 <group targetFramework="net45"> 31 - <dependency id="System.Data.SQLite.Core.Test" version="1.0.102.0" /> 31 + <dependency id="System.Data.SQLite.Core.Test" version="1.0.103.0" /> 32 32 </group> 33 33 <group targetFramework="net451"> 34 - <dependency id="System.Data.SQLite.Core.Test" version="1.0.102.0" /> 34 + <dependency id="System.Data.SQLite.Core.Test" version="1.0.103.0" /> 35 35 </group> 36 36 <group targetFramework="net46"> 37 - <dependency id="System.Data.SQLite.Core.Test" version="1.0.102.0" /> 37 + <dependency id="System.Data.SQLite.Core.Test" version="1.0.103.0" /> 38 38 </group> 39 39 <group targetFramework="net20"> 40 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 40 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 41 41 </group> 42 42 <group targetFramework="net40"> 43 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 43 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 44 44 </group> 45 45 <group targetFramework="net45"> 46 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 46 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 47 47 </group> 48 48 <group targetFramework="net451"> 49 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 49 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 50 50 </group> 51 51 <group targetFramework="net46"> 52 - <dependency id="System.Data.SQLite.Linq.Test" version="1.0.102.0" /> 52 + <dependency id="System.Data.SQLite.Linq.Test" version="1.0.103.0" /> 53 53 </group> 54 54 <group targetFramework="net40"> 55 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 55 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 56 56 </group> 57 57 <group targetFramework="net45"> 58 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 58 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 59 59 </group> 60 60 <group targetFramework="net451"> 61 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 61 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 62 62 </group> 63 63 <group targetFramework="net46"> 64 - <dependency id="System.Data.SQLite.EF6.Test" version="1.0.102.0" /> 64 + <dependency id="System.Data.SQLite.EF6.Test" version="1.0.103.0" /> 65 65 </group> 66 66 </dependencies> 67 67 </metadata> 68 68 <files /> 69 69 </package>
Changes to NuGet/SQLite.nuspec.
7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite</id> 13 13 <title>System.Data.SQLite (x86/x64)</title> 14 - <version>1.0.102.0</version> 14 + <version>1.0.103.0</version> 15 15 <authors>SQLite Development Team</authors> 16 16 <description>The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description> 17 17 <language>en-US</language> 18 18 <projectUrl>https://system.data.sqlite.org/</projectUrl> 19 19 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 20 20 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 21 21 <tags>sqlite database ado.net provider interop</tags> 22 22 <copyright>Public Domain</copyright> 23 23 <dependencies> 24 24 <group targetFramework="net20"> 25 - <dependency id="System.Data.SQLite.Core" version="1.0.102.0" /> 25 + <dependency id="System.Data.SQLite.Core" version="1.0.103.0" /> 26 26 </group> 27 27 <group targetFramework="net40"> 28 - <dependency id="System.Data.SQLite.Core" version="1.0.102.0" /> 28 + <dependency id="System.Data.SQLite.Core" version="1.0.103.0" /> 29 29 </group> 30 30 <group targetFramework="net45"> 31 - <dependency id="System.Data.SQLite.Core" version="1.0.102.0" /> 31 + <dependency id="System.Data.SQLite.Core" version="1.0.103.0" /> 32 32 </group> 33 33 <group targetFramework="net451"> 34 - <dependency id="System.Data.SQLite.Core" version="1.0.102.0" /> 34 + <dependency id="System.Data.SQLite.Core" version="1.0.103.0" /> 35 35 </group> 36 36 <group targetFramework="net46"> 37 - <dependency id="System.Data.SQLite.Core" version="1.0.102.0" /> 37 + <dependency id="System.Data.SQLite.Core" version="1.0.103.0" /> 38 38 </group> 39 39 <group targetFramework="net20"> 40 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 40 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 41 41 </group> 42 42 <group targetFramework="net40"> 43 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 43 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 44 44 </group> 45 45 <group targetFramework="net45"> 46 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 46 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 47 47 </group> 48 48 <group targetFramework="net451"> 49 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 49 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 50 50 </group> 51 51 <group targetFramework="net46"> 52 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 52 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 53 53 </group> 54 54 <group targetFramework="net40"> 55 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 55 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 56 56 </group> 57 57 <group targetFramework="net45"> 58 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 58 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 59 59 </group> 60 60 <group targetFramework="net451"> 61 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 61 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 62 62 </group> 63 63 <group targetFramework="net46"> 64 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 64 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 65 65 </group> 66 66 </dependencies> 67 67 </metadata> 68 68 <files /> 69 69 </package>
Changes to NuGet/SQLite.x64.nuspec.
6 6 * Written by Joe Mistachkin. 7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.x64</id> 13 - <version>1.0.102.0</version> 13 + <version>1.0.103.0</version> 14 14 <authors>SQLite Development Team</authors> 15 15 <description>This is a legacy package; if possible, please use either the "System.Data.SQLite" or "System.Data.SQLite.Core" package instead. The official SQLite database engine combined with a complete ADO.NET provider all rolled into a single mixed-mode assembly for x64.</description> 16 16 <language>en-US</language> 17 17 <projectUrl>https://system.data.sqlite.org/</projectUrl> 18 18 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 19 19 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 20 20 <tags>sqlite database ado.net provider interop</tags> 21 21 <copyright>Public Domain</copyright> 22 22 <dependencies> 23 23 <group targetFramework="net20"> 24 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 24 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 25 25 </group> 26 26 <group targetFramework="net40"> 27 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 27 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 28 28 </group> 29 29 <group targetFramework="net45"> 30 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 30 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 31 31 </group> 32 32 <group targetFramework="net451"> 33 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 33 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 34 34 </group> 35 35 <group targetFramework="net46"> 36 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 36 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 37 37 </group> 38 38 <group targetFramework="net40"> 39 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 39 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 40 40 </group> 41 41 <group targetFramework="net45"> 42 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 42 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 43 43 </group> 44 44 <group targetFramework="net451"> 45 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 45 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 46 46 </group> 47 47 <group targetFramework="net46"> 48 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 48 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 49 49 </group> 50 50 </dependencies> 51 51 </metadata> 52 52 <files> 53 53 <file src="..\bin\2008\x64\ReleaseStatic\System.Data.SQLite.dll" target="lib\net20" /> 54 54 <file src="..\bin\2008\Release\bin\System.Data.SQLite.xml" target="lib\net20" /> 55 55 <file src="..\bin\2010\x64\ReleaseStatic\System.Data.SQLite.dll" target="lib\net40" />
Changes to NuGet/SQLite.x86.nuspec.
6 6 * Written by Joe Mistachkin. 7 7 * Released to the public domain, use at your own risk! 8 8 * 9 9 --> 10 10 <package> 11 11 <metadata> 12 12 <id>System.Data.SQLite.x86</id> 13 - <version>1.0.102.0</version> 13 + <version>1.0.103.0</version> 14 14 <authors>SQLite Development Team</authors> 15 15 <description>This is a legacy package; if possible, please use either the "System.Data.SQLite" or "System.Data.SQLite.Core" package instead. The official SQLite database engine combined with a complete ADO.NET provider all rolled into a single mixed-mode assembly for x86.</description> 16 16 <language>en-US</language> 17 17 <projectUrl>https://system.data.sqlite.org/</projectUrl> 18 18 <iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl> 19 19 <licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl> 20 20 <tags>sqlite database ado.net provider interop</tags> 21 21 <copyright>Public Domain</copyright> 22 22 <dependencies> 23 23 <group targetFramework="net20"> 24 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 24 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 25 25 </group> 26 26 <group targetFramework="net40"> 27 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 27 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 28 28 </group> 29 29 <group targetFramework="net45"> 30 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 30 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 31 31 </group> 32 32 <group targetFramework="net451"> 33 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 33 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 34 34 </group> 35 35 <group targetFramework="net46"> 36 - <dependency id="System.Data.SQLite.Linq" version="1.0.102.0" /> 36 + <dependency id="System.Data.SQLite.Linq" version="1.0.103.0" /> 37 37 </group> 38 38 <group targetFramework="net40"> 39 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 39 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 40 40 </group> 41 41 <group targetFramework="net45"> 42 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 42 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 43 43 </group> 44 44 <group targetFramework="net451"> 45 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 45 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 46 46 </group> 47 47 <group targetFramework="net46"> 48 - <dependency id="System.Data.SQLite.EF6" version="1.0.102.0" /> 48 + <dependency id="System.Data.SQLite.EF6" version="1.0.103.0" /> 49 49 </group> 50 50 </dependencies> 51 51 </metadata> 52 52 <files> 53 53 <file src="..\bin\2008\Win32\ReleaseStatic\System.Data.SQLite.dll" target="lib\net20" /> 54 54 <file src="..\bin\2008\Release\bin\System.Data.SQLite.xml" target="lib\net20" /> 55 55 <file src="..\bin\2010\Win32\ReleaseStatic\System.Data.SQLite.dll" target="lib\net40" />
Changes to SQLite.Designer/AssemblyInfo.cs.
39 39 // Major Version 40 40 // Minor Version 41 41 // Build Number 42 42 // Revision 43 43 // 44 44 // You can specify all the values or you can default the Revision and Build Numbers 45 45 // by using the '*' as shown below: 46 -[assembly: AssemblyVersion("1.0.102.0")] 47 -[assembly: AssemblyFileVersion("1.0.102.0")] 46 +[assembly: AssemblyVersion("1.0.103.0")] 47 +[assembly: AssemblyFileVersion("1.0.103.0")]
Changes to SQLite.Designer/source.extension.vsixmanifest.
1 1 <?xml version="1.0" encoding="utf-8"?> 2 2 <Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010"> 3 3 <Identifier Id="67b5f3a9-cde1-430f-a12b-af95bb064851"> 4 4 <Name>System.Data.SQLite Designer</Name> 5 5 <Author>https://system.data.sqlite.org/</Author> 6 - <Version>1.0.102.0</Version> 6 + <Version>1.0.103.0</Version> 7 7 <Description>ADO.NET Data Designer for SQLite</Description> 8 8 <Locale>1033</Locale> 9 9 <InstalledByMsi>false</InstalledByMsi> 10 10 <SupportedProducts> 11 11 <VisualStudio Version="10.0"> 12 12 <Edition>Pro</Edition> 13 13 </VisualStudio>
Changes to SQLite.Interop/props/SQLite.Interop.2005.vsprops.
15 15 <UserMacro 16 16 Name="ConfigurationYear" 17 17 Value="2005" 18 18 PerformEnvironmentSet="true" 19 19 /> 20 20 <UserMacro 21 21 Name="INTEROP_BUILD_NUMBER" 22 - Value="102" 22 + Value="103" 23 23 PerformEnvironmentSet="true" 24 24 /> 25 25 <UserMacro 26 26 Name="INTEROP_LINKER_VERSION" 27 27 Value="1.0" 28 28 PerformEnvironmentSet="true" 29 29 /> 30 30 <UserMacro 31 31 Name="INTEROP_MANIFEST_VERSION" 32 - Value="1.0.102.0" 32 + Value="1.0.103.0" 33 33 PerformEnvironmentSet="true" 34 34 /> 35 35 <UserMacro 36 36 Name="INTEROP_RC_VERSION" 37 - Value="1,0,102,0" 37 + Value="1,0,103,0" 38 38 PerformEnvironmentSet="true" 39 39 /> 40 40 <UserMacro 41 41 Name="INTEROP_INCLUDE_DIRECTORIES" 42 42 Value="src\core" 43 43 PerformEnvironmentSet="true" 44 44 />
Changes to SQLite.Interop/props/SQLite.Interop.2008.vsprops.
15 15 <UserMacro 16 16 Name="ConfigurationYear" 17 17 Value="2008" 18 18 PerformEnvironmentSet="true" 19 19 /> 20 20 <UserMacro 21 21 Name="INTEROP_BUILD_NUMBER" 22 - Value="102" 22 + Value="103" 23 23 PerformEnvironmentSet="true" 24 24 /> 25 25 <UserMacro 26 26 Name="INTEROP_LINKER_VERSION" 27 27 Value="1.0" 28 28 PerformEnvironmentSet="true" 29 29 /> 30 30 <UserMacro 31 31 Name="INTEROP_MANIFEST_VERSION" 32 - Value="1.0.102.0" 32 + Value="1.0.103.0" 33 33 PerformEnvironmentSet="true" 34 34 /> 35 35 <UserMacro 36 36 Name="INTEROP_RC_VERSION" 37 - Value="1,0,102,0" 37 + Value="1,0,103,0" 38 38 PerformEnvironmentSet="true" 39 39 /> 40 40 <UserMacro 41 41 Name="INTEROP_INCLUDE_DIRECTORIES" 42 42 Value="src\core" 43 43 PerformEnvironmentSet="true" 44 44 />
Changes to SQLite.Interop/props/SQLite.Interop.2010.props.
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 12 <ConfigurationYear>2010</ConfigurationYear> 13 - <INTEROP_BUILD_NUMBER>102</INTEROP_BUILD_NUMBER> 13 + <INTEROP_BUILD_NUMBER>103</INTEROP_BUILD_NUMBER> 14 14 <INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION> 15 - <INTEROP_MANIFEST_VERSION>1.0.102.0</INTEROP_MANIFEST_VERSION> 16 - <INTEROP_RC_VERSION>1,0,102,0</INTEROP_RC_VERSION> 15 + <INTEROP_MANIFEST_VERSION>1.0.103.0</INTEROP_MANIFEST_VERSION> 16 + <INTEROP_RC_VERSION>1,0,103,0</INTEROP_RC_VERSION> 17 17 <INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES> 18 18 <INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES> 19 19 <INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES> 20 20 <INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES> 21 21 <INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1</INTEROP_EXTRA_DEFINES> 22 22 <INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES> 23 23 <INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
Changes to SQLite.Interop/props/SQLite.Interop.2012.props.
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 12 <ConfigurationYear>2012</ConfigurationYear> 13 - <INTEROP_BUILD_NUMBER>102</INTEROP_BUILD_NUMBER> 13 + <INTEROP_BUILD_NUMBER>103</INTEROP_BUILD_NUMBER> 14 14 <INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION> 15 - <INTEROP_MANIFEST_VERSION>1.0.102.0</INTEROP_MANIFEST_VERSION> 16 - <INTEROP_RC_VERSION>1,0,102,0</INTEROP_RC_VERSION> 15 + <INTEROP_MANIFEST_VERSION>1.0.103.0</INTEROP_MANIFEST_VERSION> 16 + <INTEROP_RC_VERSION>1,0,103,0</INTEROP_RC_VERSION> 17 17 <INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES> 18 18 <INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES> 19 19 <INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES> 20 20 <INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES> 21 21 <INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1</INTEROP_EXTRA_DEFINES> 22 22 <INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES> 23 23 <INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
Changes to SQLite.Interop/props/SQLite.Interop.2013.props.
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="12.0"> 11 11 <PropertyGroup Label="UserMacros"> 12 12 <ConfigurationYear>2013</ConfigurationYear> 13 - <INTEROP_BUILD_NUMBER>102</INTEROP_BUILD_NUMBER> 13 + <INTEROP_BUILD_NUMBER>103</INTEROP_BUILD_NUMBER> 14 14 <INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION> 15 - <INTEROP_MANIFEST_VERSION>1.0.102.0</INTEROP_MANIFEST_VERSION> 16 - <INTEROP_RC_VERSION>1,0,102,0</INTEROP_RC_VERSION> 15 + <INTEROP_MANIFEST_VERSION>1.0.103.0</INTEROP_MANIFEST_VERSION> 16 + <INTEROP_RC_VERSION>1,0,103,0</INTEROP_RC_VERSION> 17 17 <INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES> 18 18 <INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES> 19 19 <INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES> 20 20 <INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES> 21 21 <INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1</INTEROP_EXTRA_DEFINES> 22 22 <INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES> 23 23 <INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
Changes to SQLite.Interop/props/SQLite.Interop.2015.props.
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="14.0"> 11 11 <PropertyGroup Label="UserMacros"> 12 12 <ConfigurationYear>2015</ConfigurationYear> 13 - <INTEROP_BUILD_NUMBER>102</INTEROP_BUILD_NUMBER> 13 + <INTEROP_BUILD_NUMBER>103</INTEROP_BUILD_NUMBER> 14 14 <INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION> 15 - <INTEROP_MANIFEST_VERSION>1.0.102.0</INTEROP_MANIFEST_VERSION> 16 - <INTEROP_RC_VERSION>1,0,102,0</INTEROP_RC_VERSION> 15 + <INTEROP_MANIFEST_VERSION>1.0.103.0</INTEROP_MANIFEST_VERSION> 16 + <INTEROP_RC_VERSION>1,0,103,0</INTEROP_RC_VERSION> 17 17 <INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES> 18 18 <INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES> 19 19 <INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES> 20 20 <INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES> 21 21 <INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1</INTEROP_EXTRA_DEFINES> 22 22 <INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES> 23 23 <INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
Changes to SQLite.Interop/src/generic/interop.c.
60 60 #define INTEROP_DEBUG_OPEN (0x0008) 61 61 #define INTEROP_DEBUG_OPEN16 (0x0010) 62 62 #define INTEROP_DEBUG_PREPARE (0x0020) 63 63 #define INTEROP_DEBUG_PREPARE16 (0x0040) 64 64 #define INTEROP_DEBUG_RESET (0x0080) 65 65 #define INTEROP_DEBUG_CHANGES (0x0100) 66 66 #define INTEROP_DEBUG_BREAK (0x0200) 67 +#define INTEROP_DEBUG_BLOB_CLOSE (0x0400) 67 68 68 69 #if defined(_MSC_VER) && defined(INTEROP_DEBUG) && \ 69 70 (INTEROP_DEBUG & INTEROP_DEBUG_BREAK) 70 71 #define sqlite3InteropBreak(a) { sqlite3InteropDebug("%s\n", (a)); __debugbreak(); } 71 72 #else 72 73 #define sqlite3InteropBreak(a) 73 74 #endif ................................................................................ 717 718 #endif 718 719 719 720 ret = sqlite3_backup_finish(p); 720 721 721 722 #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_BACKUP_FINISH) 722 723 sqlite3InteropDebug("sqlite3_backup_finish_interop(): sqlite3_backup_finish(%p, %p, %p) returned %d.\n", pDestDb, pSrcDb, p, ret); 723 724 #endif 725 + 726 + return ret; 727 +} 728 + 729 +SQLITE_API int WINAPI sqlite3_blob_close_interop(sqlite3_blob *p) 730 +{ 731 + int ret; 732 + 733 +#if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_BLOB_CLOSE) 734 + sqlite3InteropDebug("sqlite3_blob_close_interop(): calling sqlite3_blob_close(%p)...\n", p); 735 +#endif 736 + 737 + ret = sqlite3_blob_close(p); 738 + 739 +#if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_BLOB_CLOSE) 740 + sqlite3InteropDebug("sqlite3_blob_close_interop(): sqlite3_blob_close(%p) returned %d.\n", p, ret); 741 +#endif 724 742 725 743 return ret; 726 744 } 727 745 728 746 SQLITE_API int WINAPI sqlite3_reset_interop(sqlite3_stmt *stmt) 729 747 { 730 748 int ret;
Changes to SQLite.Interop/src/generic/interop.h.
2 2 * interop.h - 3 3 * 4 4 * Written by Joe Mistachkin. 5 5 * Released to the public domain, use at your own risk! 6 6 */ 7 7 8 8 #ifndef INTEROP_VERSION 9 -#define INTEROP_VERSION "1.0.102.0" 9 +#define INTEROP_VERSION "1.0.103.0" 10 10 #endif 11 11 12 12 #ifndef INTEROP_SOURCE_ID 13 13 #define INTEROP_SOURCE_ID "0000000000000000000000000000000000000000" 14 14 #endif 15 15 16 16 #ifndef INTEROP_SOURCE_TIMESTAMP 17 17 #define INTEROP_SOURCE_TIMESTAMP "0000-00-00 00:00:00 UTC" 18 18 #endif
Changes to Setup/data/verify.lst.
554 554 System.Data.SQLite/Resources/SQLiteDataAdapter.bmp 555 555 System.Data.SQLite/Resources/SR.Designer.cs 556 556 System.Data.SQLite/Resources/SR.resx 557 557 System.Data.SQLite/SQLite3.cs 558 558 System.Data.SQLite/SQLite3_UTF16.cs 559 559 System.Data.SQLite/SQLiteBackup.cs 560 560 System.Data.SQLite/SQLiteBase.cs 561 + System.Data.SQLite/SQLiteBlob.cs 561 562 System.Data.SQLite/SQLiteCommand.cs 562 563 System.Data.SQLite/SQLiteCommandBuilder.cs 563 564 System.Data.SQLite/SQLiteConnection.cs 564 565 System.Data.SQLite/SQLiteConnectionPool.cs 565 566 System.Data.SQLite/SQLiteConnectionStringBuilder.cs 566 567 System.Data.SQLite/SQLiteConvert.cs 567 568 System.Data.SQLite/SQLiteDataAdapter.cs
Changes to System.Data.SQLite.Linq/AssemblyInfo.cs.
49 49 // Minor Version 50 50 // Build Number 51 51 // Revision 52 52 // 53 53 // You can specify all the values or you can default the Build and Revision Numbers 54 54 // by using the '*' as shown below: 55 55 // [assembly: AssemblyVersion("1.0.*")] 56 -[assembly: AssemblyVersion("1.0.102.0")] 57 -[assembly: AssemblyFileVersion("1.0.102.0")] 56 +[assembly: AssemblyVersion("1.0.103.0")] 57 +[assembly: AssemblyFileVersion("1.0.103.0")]
Changes to System.Data.SQLite/AssemblyInfo.cs.
68 68 // Major Version 69 69 // Minor Version 70 70 // Build Number 71 71 // Revision 72 72 // 73 73 // You can specify all the values or you can default the Revision and Build Numbers 74 74 // by using the '*' as shown below: 75 -[assembly: AssemblyVersion("1.0.102.0")] 75 +[assembly: AssemblyVersion("1.0.103.0")] 76 76 #if !PLATFORM_COMPACTFRAMEWORK 77 -[assembly: AssemblyFileVersion("1.0.102.0")] 77 +[assembly: AssemblyFileVersion("1.0.103.0")] 78 78 #endif
Changes to System.Data.SQLite/SQLite3.cs.
54 54 internal const string PublicKey = 55 55 "002400000480000094000000060200000024000052534131000400000100010005a288de5687c4e1" + 56 56 "b621ddff5d844727418956997f475eb829429e411aff3e93f97b70de698b972640925bdd44280df0" + 57 57 "a25a843266973704137cbb0e7441c1fe7cae4e2440ae91ab8cde3933febcb1ac48dd33b40e13c421" + 58 58 "d8215c18a4349a436dd499e3c385cc683015f886f6c10bd90115eb2bd61b67750839e3a19941dc9c"; 59 59 60 60 #if !PLATFORM_COMPACTFRAMEWORK 61 - internal const string DesignerVersion = "1.0.102.0"; 61 + internal const string DesignerVersion = "1.0.103.0"; 62 62 #endif 63 63 64 64 /// <summary> 65 65 /// The opaque pointer returned to us by the sqlite provider 66 66 /// </summary> 67 67 protected internal SQLiteConnectionHandle _sql; 68 68 protected string _fileName;
Changes to System.Data.SQLite/SQLiteBase.cs.
687 687 #else 688 688 SQLiteErrorCode n = UnsafeNativeMethods.sqlite3_backup_finish(backup); 689 689 #endif 690 690 if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, null); 691 691 } 692 692 } 693 693 } 694 + 695 + internal static void CloseBlob(SQLiteConnectionHandle hdl, IntPtr blob) 696 + { 697 + if ((hdl == null) || (blob == IntPtr.Zero)) return; 698 + 699 + try 700 + { 701 + // do nothing. 702 + } 703 + finally /* NOTE: Thread.Abort() protection. */ 704 + { 705 +#if PLATFORM_COMPACTFRAMEWORK 706 + lock (hdl.syncRoot) 707 +#else 708 + lock (hdl) 709 +#endif 710 + { 711 +#if !SQLITE_STANDARD 712 + SQLiteErrorCode n = UnsafeNativeMethods.sqlite3_blob_close_interop(blob); 713 +#else 714 + SQLiteErrorCode n = UnsafeNativeMethods.sqlite3_blob_close(blob); 715 +#endif 716 + if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, null); 717 + } 718 + } 719 + } 694 720 695 721 internal static void FinalizeStatement(SQLiteConnectionHandle hdl, IntPtr stmt) 696 722 { 697 723 if ((hdl == null) || (stmt == IntPtr.Zero)) return; 698 724 699 725 try 700 726 { ................................................................................ 1187 1213 /// <summary> 1188 1214 /// If the database type name has not been explicitly set for the 1189 1215 /// parameter specified, fallback to using the database type name 1190 1216 /// associated with the <see cref="DbType" /> value. 1191 1217 /// </summary> 1192 1218 UseParameterDbTypeForTypeName = 0x2000000000, 1193 1219 1220 + /// <summary> 1221 + /// When returning column values, skip verifying their affinity. 1222 + /// </summary> 1223 + NoVerifyTypeAffinity = 0x4000000000, 1224 + 1194 1225 /// <summary> 1195 1226 /// When binding parameter values or returning column values, always 1196 1227 /// treat them as though they were plain text (i.e. no numeric, 1197 1228 /// date/time, or other conversions should be attempted). 1198 1229 /// </summary> 1199 1230 BindAndGetAllAsText = BindAllAsText | GetAllAsText, 1200 1231
Added System.Data.SQLite/SQLiteBlob.cs.
1 +/******************************************************** 2 + * ADO.NET 2.0 Data Provider for SQLite Version 3.X 3 + * Written by Joe Mistachkin (joe@mistachkin.com) 4 + * 5 + * Released to the public domain, use at your own risk! 6 + ********************************************************/ 7 + 8 +namespace System.Data.SQLite 9 +{ 10 + using System; 11 + 12 + /// <summary> 13 + /// Represents a single SQL blob in SQLite. 14 + /// </summary> 15 + public sealed class SQLiteBlob : IDisposable 16 + { 17 + #region Private Data 18 + /// <summary> 19 + /// The underlying SQLite object this blob is bound to. 20 + /// </summary> 21 + internal SQLiteBase _sql; 22 + 23 + /// <summary> 24 + /// The actual blob handle. 25 + /// </summary> 26 + internal SQLiteBlobHandle _sqlite_blob; 27 + #endregion 28 + 29 + /////////////////////////////////////////////////////////////////////////////////////////////// 30 + 31 + #region Private Constructors 32 + /// <summary> 33 + /// Initializes the blob. 34 + /// </summary> 35 + /// <param name="sqlbase">The base SQLite object.</param> 36 + /// <param name="blob">The blob handle.</param> 37 + private SQLiteBlob( 38 + SQLiteBase sqlbase, 39 + SQLiteBlobHandle blob 40 + ) 41 + { 42 + _sql = sqlbase; 43 + _sqlite_blob = blob; 44 + } 45 + #endregion 46 + 47 + /////////////////////////////////////////////////////////////////////////////////////////////// 48 + 49 + #region Static "Factory" Methods 50 + public static SQLiteBlob Create( 51 + SQLiteDataReader dataReader, 52 + int i, 53 + bool readOnly 54 + ) 55 + { 56 + SQLiteConnection connection = SQLiteDataReader.GetConnection( 57 + dataReader); 58 + 59 + if (connection == null) 60 + throw new InvalidOperationException("Connection not available"); 61 + 62 + SQLite3 sqlite3 = connection._sql as SQLite3; 63 + 64 + if (sqlite3 == null) 65 + throw new InvalidOperationException("Connection has no wrapper"); 66 + 67 + SQLiteConnectionHandle handle = sqlite3._sql; 68 + 69 + if (handle == null) 70 + throw new InvalidOperationException("Connection has an invalid handle."); 71 + 72 + long? rowId = dataReader.GetRowId(i); 73 + 74 + if (rowId == null) 75 + throw new InvalidOperationException("No RowId is available"); 76 + 77 + SQLiteBlobHandle blob = null; 78 + 79 + try 80 + { 81 + // do nothing. 82 + } 83 + finally /* NOTE: Thread.Abort() protection. */ 84 + { 85 + IntPtr ptrBlob = IntPtr.Zero; 86 + 87 + SQLiteErrorCode rc = UnsafeNativeMethods.sqlite3_blob_open( 88 + sqlite3._sql, SQLiteConvert.ToUTF8( 89 + dataReader.GetDatabaseName(i)), SQLiteConvert.ToUTF8( 90 + dataReader.GetTableName(i)), SQLiteConvert.ToUTF8( 91 + dataReader.GetName(i)), (long)rowId, readOnly ? 0 : 1, 92 + ref ptrBlob); 93 + 94 + if (rc != SQLiteErrorCode.Ok) 95 + throw new SQLiteException(rc, null); 96 + 97 + blob = new SQLiteBlobHandle(handle, ptrBlob); 98 + } 99 + 100 + SQLiteConnection.OnChanged(null, new ConnectionEventArgs( 101 + SQLiteConnectionEventType.NewCriticalHandle, null, 102 + null, null, dataReader, blob, null, new object[] { 103 + typeof(SQLiteBlob), dataReader, i, readOnly })); 104 + 105 + return new SQLiteBlob(sqlite3, blob); 106 + } 107 + #endregion 108 + 109 + /////////////////////////////////////////////////////////////////////////////////////////////// 110 + 111 + #region Private Methods 112 + /// <summary> 113 + /// Throws an exception if the blob object does not appear to be open. 114 + /// </summary> 115 + private void CheckOpen() 116 + { 117 + if (_sqlite_blob == IntPtr.Zero) 118 + throw new InvalidOperationException("Blob is not open"); 119 + } 120 + 121 + /////////////////////////////////////////////////////////////////////////////////////////////// 122 + 123 + /// <summary> 124 + /// Throws an exception if an invalid read/write parameter is detected. 125 + /// </summary> 126 + /// <param name="buffer"> 127 + /// When reading, this array will be populated with the bytes read from 128 + /// the underlying database blob. When writing, this array contains new 129 + /// values for the specified portion of the underlying database blob. 130 + /// </param> 131 + /// <param name="count"> 132 + /// The number of bytes to read or write. 133 + /// </param> 134 + /// <param name="offset"> 135 + /// The byte offset, relative to the start of the underlying database 136 + /// blob, where the read or write operation will begin. 137 + /// </param> 138 + private void VerifyParameters( 139 + byte[] buffer, 140 + int count, 141 + int offset 142 + ) 143 + { 144 + if (buffer == null) 145 + throw new ArgumentNullException("buffer"); 146 + 147 + if (offset < 0) 148 + throw new ArgumentException("Negative offset not allowed."); 149 + 150 + if (count < 0) 151 + throw new ArgumentException("Negative count not allowed."); 152 + 153 + if (count > buffer.Length) 154 + throw new ArgumentException("Buffer is too small."); 155 + } 156 + #endregion 157 + 158 + /////////////////////////////////////////////////////////////////////////////////////////////// 159 + 160 + #region Public Methods 161 + /// <summary> 162 + /// Retargets this object to an underlying database blob for a 163 + /// different row; the database, table, and column remain exactly 164 + /// the same. If this operation fails for any reason, this blob 165 + /// object is automatically disposed. 166 + /// </summary> 167 + /// <param name="rowId"> 168 + /// The integer identifier for the new row. 169 + /// </param> 170 + public void Reopen( 171 + long rowId 172 + ) 173 + { 174 + CheckDisposed(); 175 + CheckOpen(); 176 + 177 + SQLiteErrorCode rc = UnsafeNativeMethods.sqlite3_blob_reopen( 178 + _sqlite_blob, rowId); 179 + 180 + if (rc != SQLiteErrorCode.Ok) 181 + { 182 + Dispose(); 183 + throw new SQLiteException(rc, null); 184 + } 185 + } 186 + 187 + /////////////////////////////////////////////////////////////////////////////////////////////// 188 + 189 + /// <summary> 190 + /// Queries the total number of bytes for the underlying database blob. 191 + /// </summary> 192 + /// <returns> 193 + /// The total number of bytes for the underlying database blob. 194 + /// </returns> 195 + public int GetCount() 196 + { 197 + CheckDisposed(); 198 + CheckOpen(); 199 + 200 + return UnsafeNativeMethods.sqlite3_blob_bytes(_sqlite_blob); 201 + } 202 + 203 + /////////////////////////////////////////////////////////////////////////////////////////////// 204 + 205 + /// <summary> 206 + /// Reads data from the underlying database blob. 207 + /// </summary> 208 + /// <param name="buffer"> 209 + /// This array will be populated with the bytes read from the 210 + /// underlying database blob. 211 + /// </param> 212 + /// <param name="count"> 213 + /// The number of bytes to read. 214 + /// </param> 215 + /// <param name="offset"> 216 + /// The byte offset, relative to the start of the underlying 217 + /// database blob, where the read operation will begin. 218 + /// </param> 219 + public void Read( 220 + byte[] buffer, 221 + int count, 222 + int offset 223 + ) 224 + { 225 + CheckDisposed(); 226 + CheckOpen(); 227 + VerifyParameters(buffer, count, offset); 228 + 229 + SQLiteErrorCode rc = UnsafeNativeMethods.sqlite3_blob_read( 230 + _sqlite_blob, buffer, count, offset); 231 + 232 + if (rc != SQLiteErrorCode.Ok) 233 + throw new SQLiteException(rc, null); 234 + } 235 + 236 + /////////////////////////////////////////////////////////////////////////////////////////////// 237 + 238 + /// <summary> 239 + /// Writes data into the underlying database blob. 240 + /// </summary> 241 + /// <param name="buffer"> 242 + /// This array contains the new values for the specified portion of 243 + /// the underlying database blob. 244 + /// </param> 245 + /// <param name="count"> 246 + /// The number of bytes to write. 247 + /// </param> 248 + /// <param name="offset"> 249 + /// The byte offset, relative to the start of the underlying 250 + /// database blob, where the write operation will begin. 251 + /// </param> 252 + public void Write( 253 + byte[] buffer, 254 + int count, 255 + int offset 256 + ) 257 + { 258 + CheckDisposed(); 259 + CheckOpen(); 260 + VerifyParameters(buffer, count, offset); 261 + 262 + SQLiteErrorCode rc = UnsafeNativeMethods.sqlite3_blob_write( 263 + _sqlite_blob, buffer, count, offset); 264 + 265 + if (rc != SQLiteErrorCode.Ok) 266 + throw new SQLiteException(rc, null); 267 + } 268 + 269 + /////////////////////////////////////////////////////////////////////////////////////////////// 270 + 271 + /// <summary> 272 + /// Closes the blob, freeing the associated resources. 273 + /// </summary> 274 + public void Close() 275 + { 276 + Dispose(); 277 + } 278 + #endregion 279 + 280 + /////////////////////////////////////////////////////////////////////////////////////////////// 281 + 282 + #region IDisposable Members 283 + /// <summary> 284 + /// Disposes and finalizes the blob. 285 + /// </summary> 286 + public void Dispose() 287 + { 288 + Dispose(true); 289 + GC.SuppressFinalize(this); 290 + } 291 + #endregion 292 + 293 + /////////////////////////////////////////////////////////////////////////////////////////////// 294 + 295 + #region IDisposable "Pattern" Members 296 + private bool disposed; 297 + private void CheckDisposed() /* throw */ 298 + { 299 +#if THROW_ON_DISPOSED 300 + if (disposed) 301 + throw new ObjectDisposedException(typeof(SQLiteBlob).Name); 302 +#endif 303 + } 304 + 305 + /////////////////////////////////////////////////////////////////////////////////////////////// 306 + 307 + private void Dispose(bool disposing) 308 + { 309 + if (!disposed) 310 + { 311 + if (disposing) 312 + { 313 + //////////////////////////////////// 314 + // dispose managed resources here... 315 + //////////////////////////////////// 316 + 317 + if (_sqlite_blob != null) 318 + { 319 + _sqlite_blob.Dispose(); 320 + _sqlite_blob = null; 321 + } 322 + 323 + _sql = null; 324 + } 325 + 326 + ////////////////////////////////////// 327 + // release unmanaged resources here... 328 + ////////////////////////////////////// 329 + 330 + disposed = true; 331 + } 332 + } 333 + #endregion 334 + 335 + /////////////////////////////////////////////////////////////////////////////////////////////// 336 + 337 + #region Destructor 338 + ~SQLiteBlob() 339 + { 340 + Dispose(false); 341 + } 342 + #endregion 343 + } 344 +}
Changes to System.Data.SQLite/SQLiteConnection.cs.
20 20 using System.Text; 21 21 22 22 ///////////////////////////////////////////////////////////////////////////////////////////////// 23 23 24 24 /// <summary> 25 25 /// This class represents a single value to be returned 26 26 /// from the <see cref="SQLiteDataReader" /> class via 27 - /// its <see cref="SQLiteDataReader.GetBoolean" />, 27 + /// its <see cref="SQLiteDataReader.GetBlob" />, 28 + /// <see cref="SQLiteDataReader.GetBoolean" />, 28 29 /// <see cref="SQLiteDataReader.GetByte" />, 29 30 /// <see cref="SQLiteDataReader.GetBytes" />, 30 31 /// <see cref="SQLiteDataReader.GetChar" />, 31 32 /// <see cref="SQLiteDataReader.GetChars" />, 32 33 /// <see cref="SQLiteDataReader.GetDateTime" />, 33 34 /// <see cref="SQLiteDataReader.GetDecimal" />, 34 35 /// <see cref="SQLiteDataReader.GetDouble" />, ................................................................................ 44 45 /// <see cref="SQLiteDataReader" /> method called is not a value type. 45 46 /// If the value to be returned from the <see cref="SQLiteDataReader" /> 46 47 /// method is unsuitable (e.g. null with a value type), an exception will 47 48 /// be thrown. 48 49 /// </summary> 49 50 public sealed class SQLiteDataReaderValue 50 51 { 52 + /// <summary> 53 + /// The value to be returned from the 54 + /// <see cref="SQLiteDataReader.GetBlob" /> method -OR- null to 55 + /// indicate an error. 56 + /// </summary> 57 + public SQLiteBlob BlobValue; 58 + 51 59 /// <summary> 52 60 /// The value to be returned from the 53 61 /// <see cref="SQLiteDataReader.GetBoolean" /> method -OR- null to 54 62 /// indicate an error. 55 63 /// </summary> 56 64 public bool? BooleanValue; 57 65 ................................................................................ 148 156 /// <see cref="SQLiteDataReader.GetValue" /> method. 149 157 /// </summary> 150 158 public object Value; 151 159 } 152 160 153 161 ///////////////////////////////////////////////////////////////////////////////////////////////// 154 162 163 + /// <summary> 164 + /// This class represents the parameters that are provided 165 + /// to the <see cref="SQLiteDataReader" /> methods, with 166 + /// the exception of the column index (provided separately). 167 + /// </summary> 168 + public abstract class SQLiteReadEventArgs : EventArgs 169 + { 170 + // nothing. 171 + } 172 + 173 + ///////////////////////////////////////////////////////////////////////////////////////////////// 174 + 175 + /// <summary> 176 + /// This class represents the parameters that are provided to 177 + /// the <see cref="SQLiteDataReader.GetBlob" /> method, with 178 + /// the exception of the column index (provided separately). 179 + /// </summary> 180 + public class SQLiteReadBlobEventArgs : SQLiteReadEventArgs 181 + { 182 + #region Private Data 183 + /// <summary> 184 + /// Provides the underlying storage for the 185 + /// <see cref="ReadOnly" /> property. 186 + /// </summary> 187 + private bool readOnly; 188 + #endregion 189 + 190 + ///////////////////////////////////////////////////////////////////////// 191 + 192 + #region Private Constructors 193 + /// <summary> 194 + /// Constructs an instance of this class to pass into a user-defined 195 + /// callback associated with the <see cref="SQLiteDataReader.GetBlob" /> 196 + /// method. 197 + /// </summary> 198 + /// <param name="readOnly"> 199 + /// The value that was originally specified for the "readOnly" 200 + /// parameter to the <see cref="SQLiteDataReader.GetBlob" /> method. 201 + /// </param> 202 + internal SQLiteReadBlobEventArgs( 203 + bool readOnly 204 + ) 205 + { 206 + this.readOnly = readOnly; 207 + } 208 + #endregion 209 + 210 + ///////////////////////////////////////////////////////////////////////// 211 + 212 + #region Public Properties 213 + /// <summary> 214 + /// The value that was originally specified for the "readOnly" 215 + /// parameter to the <see cref="SQLiteDataReader.GetBlob" /> method. 216 + /// </summary> 217 + public bool ReadOnly 218 + { 219 + get { return readOnly; } 220 + set { readOnly = value; } 221 + } 222 + #endregion 223 + } 224 + 225 + ///////////////////////////////////////////////////////////////////////////////////////////////// 226 + 155 227 /// <summary> 156 228 /// This class represents the parameters that are provided 157 229 /// to the <see cref="SQLiteDataReader.GetBytes" /> and 158 230 /// <see cref="SQLiteDataReader.GetChars" /> methods, with 159 231 /// the exception of the column index (provided separately). 160 232 /// </summary> 161 - public class SQLiteReadArrayEventArgs : EventArgs 233 + public class SQLiteReadArrayEventArgs : SQLiteReadEventArgs 162 234 { 163 235 #region Private Data 164 236 /// <summary> 165 237 /// Provides the underlying storage for the 166 238 /// <see cref="DataOffset" /> property. 167 239 /// </summary> 168 240 private long dataOffset; ................................................................................ 340 412 #endregion 341 413 } 342 414 343 415 ///////////////////////////////////////////////////////////////////////////////////////////////// 344 416 345 417 /// <summary> 346 418 /// This class represents the parameters and return values for the 419 + /// <see cref="SQLiteDataReader.GetBlob" />, 347 420 /// <see cref="SQLiteDataReader.GetBoolean" />, 348 421 /// <see cref="SQLiteDataReader.GetByte" />, 349 422 /// <see cref="SQLiteDataReader.GetBytes" />, 350 423 /// <see cref="SQLiteDataReader.GetChar" />, 351 424 /// <see cref="SQLiteDataReader.GetChars" />, 352 425 /// <see cref="SQLiteDataReader.GetDateTime" />, 353 426 /// <see cref="SQLiteDataReader.GetDecimal" />, ................................................................................ 356 429 /// <see cref="SQLiteDataReader.GetGuid" />, 357 430 /// <see cref="SQLiteDataReader.GetInt16" />, 358 431 /// <see cref="SQLiteDataReader.GetInt32" />, 359 432 /// <see cref="SQLiteDataReader.GetInt64" />, 360 433 /// <see cref="SQLiteDataReader.GetString" />, and 361 434 /// <see cref="SQLiteDataReader.GetValue" /> methods. 362 435 /// </summary> 363 - public class SQLiteReadValueEventArgs : EventArgs 436 + public class SQLiteReadValueEventArgs : SQLiteReadEventArgs 364 437 { 365 438 #region Private Data 366 439 /// <summary> 367 440 /// Provides the underlying storage for the 368 441 /// <see cref="MethodName" /> property. 369 442 /// </summary> 370 443 private string methodName; 371 444 372 445 /// <summary> 373 446 /// Provides the underlying storage for the 374 - /// <see cref="ArrayEventArgs" /> property. 447 + /// <see cref="ExtraEventArgs" /> property. 375 448 /// </summary> 376 - private SQLiteReadArrayEventArgs arrayEventArgs; 449 + private SQLiteReadEventArgs extraEventArgs; 377 450 378 451 /// <summary> 379 452 /// Provides the underlying storage for the 380 453 /// <see cref="Value" /> property. 381 454 /// </summary> 382 455 private SQLiteDataReaderValue value; 383 456 #endregion 384 457 385 458 ///////////////////////////////////////////////////////////////////////// 386 459 387 460 #region Private Constructors 388 461 /// <summary> 389 462 /// Constructs a new instance of this class. Depending on the method 390 - /// being called, the <paramref name="arrayEventArgs" /> and/or 463 + /// being called, the <paramref name="extraEventArgs" /> and/or 391 464 /// <paramref name="value" /> parameters may be null. 392 465 /// </summary> 393 466 /// <param name="methodName"> 394 467 /// The name of the <see cref="SQLiteDataReader" /> method that was 395 468 /// responsible for invoking this callback. 396 469 /// </param> 397 - /// <param name="arrayEventArgs"> 470 + /// <param name="extraEventArgs"> 398 471 /// If the <see cref="SQLiteDataReader.GetBytes" /> or 399 472 /// <see cref="SQLiteDataReader.GetChars" /> method is being called, 400 473 /// this object will contain the array related parameters for that 401 - /// method. 474 + /// method. If the <see cref="SQLiteDataReader.GetBlob" /> method is 475 + /// being called, this object will contain the blob related parameters 476 + /// for that method. 402 477 /// </param> 403 478 /// <param name="value"> 404 479 /// This may be used by the callback to set the return value for the 405 480 /// called <see cref="SQLiteDataReader" /> method. 406 481 /// </param> 407 482 internal SQLiteReadValueEventArgs( 408 483 string methodName, 409 - SQLiteReadArrayEventArgs arrayEventArgs, 484 + SQLiteReadEventArgs extraEventArgs, 410 485 SQLiteDataReaderValue value 411 486 ) 412 487 { 413 488 this.methodName = methodName; 414 - this.arrayEventArgs = arrayEventArgs; 489 + this.extraEventArgs = extraEventArgs; 415 490 this.value = value; 416 491 } 417 492 #endregion 418 493 419 494 ///////////////////////////////////////////////////////////////////////// 420 495 421 496 #region Public Properties ................................................................................ 430 505 431 506 ///////////////////////////////////////////////////////////////////////// 432 507 433 508 /// <summary> 434 509 /// If the <see cref="SQLiteDataReader.GetBytes" /> or 435 510 /// <see cref="SQLiteDataReader.GetChars" /> method is being called, 436 511 /// this object will contain the array related parameters for that 437 - /// method. 512 + /// method. If the <see cref="SQLiteDataReader.GetBlob" /> method is 513 + /// being called, this object will contain the blob related parameters 514 + /// for that method. 438 515 /// </summary> 439 - public SQLiteReadArrayEventArgs ArrayEventArgs 516 + public SQLiteReadEventArgs ExtraEventArgs 440 517 { 441 - get { return arrayEventArgs; } 518 + get { return extraEventArgs; } 442 519 } 443 520 444 521 ///////////////////////////////////////////////////////////////////////// 445 522 446 523 /// <summary> 447 524 /// This may be used by the callback to set the return value for the 448 525 /// called <see cref="SQLiteDataReader" /> method. ................................................................................ 536 613 /// skipped. If this is set to non-zero and the necessary return value 537 614 /// is unavailable or unsuitable, an exception will be thrown. 538 615 /// </param> 539 616 public delegate void SQLiteReadValueCallback( 540 617 SQLiteConvert convert, 541 618 SQLiteDataReader dataReader, 542 619 SQLiteConnectionFlags flags, 543 - SQLiteReadValueEventArgs eventArgs, 620 + SQLiteReadEventArgs eventArgs, 544 621 string typeName, 545 622 int index, 546 623 object userData, 547 624 out bool complete 548 625 ); 549 626 550 627 /////////////////////////////////////////////////////////////////////////////////////////////////
Changes to System.Data.SQLite/SQLiteDataReader.cs.
387 387 /// <returns> 388 388 /// This function throws an InvalidTypeCast() exception if the requested type doesn't match the column's definition or affinity. 389 389 /// </returns> 390 390 /// <param name="i">The index of the column to type-check</param> 391 391 /// <param name="typ">The type we want to get out of the column</param> 392 392 private TypeAffinity VerifyType(int i, DbType typ) 393 393 { 394 + if ((_flags & SQLiteConnectionFlags.NoVerifyTypeAffinity) == SQLiteConnectionFlags.NoVerifyTypeAffinity) 395 + return TypeAffinity.None; 396 + 394 397 TypeAffinity affinity = GetSQLiteType(_flags, i).Affinity; 395 398 396 399 switch (affinity) 397 400 { 398 401 case TypeAffinity.Int64: 399 402 if (typ == DbType.Int64) return affinity; 400 403 if (typ == DbType.Int32) return affinity; ................................................................................ 443 446 /// <param name="complete"> 444 447 /// Non-zero if the default handling for the data reader call should be 445 448 /// skipped. If this is set to non-zero and the necessary return value 446 449 /// is unavailable or unsuitable, an exception will be thrown. 447 450 /// </param> 448 451 private void InvokeReadValueCallback( 449 452 int index, 450 - SQLiteReadValueEventArgs eventArgs, 453 + SQLiteReadEventArgs eventArgs, 451 454 out bool complete 452 455 ) 453 456 { 454 457 complete = false; 455 458 SQLiteConnectionFlags oldFlags = _flags; 456 459 _flags &= ~SQLiteConnectionFlags.UseConnectionReadValueCallbacks; 457 460 ................................................................................ 487 490 index, userData, out complete); /* throw */ 488 491 } 489 492 finally 490 493 { 491 494 _flags |= SQLiteConnectionFlags.UseConnectionReadValueCallbacks; 492 495 } 493 496 } 497 + 498 + /// <summary> 499 + /// Attempts to query the integer identifier for the current row. This 500 + /// will not work for tables that were created WITHOUT ROWID -OR- if the 501 + /// query does not include the "rowid" column or one of its aliases -OR- 502 + /// if the <see cref="SQLiteDataReader" /> was not created with the 503 + /// <see cref="CommandBehavior.KeyInfo"/> flag. 504 + /// </summary> 505 + /// <returns> 506 + /// The integer identifier for the current row -OR- null if it could not 507 + /// be determined. 508 + /// </returns> 509 + internal long? GetRowId(int i) 510 + { 511 + // CheckDisposed(); 512 + VerifyForGet(); 513 + 514 + if (_keyInfo == null) 515 + return null; 516 + 517 + int iRowId = _keyInfo.GetRowIdIndex( 518 + GetDatabaseName(i), GetTableName(i)); 519 + 520 + if (iRowId == -1) 521 + return null; 522 + 523 + return GetInt64(iRowId); 524 + } 525 + 526 + /// <summary> 527 + /// Retrieves the column as a <see cref="SQLiteBlob" /> object. 528 + /// This will not work for tables that were created WITHOUT ROWID 529 + /// -OR- if the query does not include the "rowid" column or one 530 + /// of its aliases -OR- if the <see cref="SQLiteDataReader" /> was 531 + /// not created with the <see cref="CommandBehavior.KeyInfo"/> flag. 532 + /// </summary> 533 + /// <param name="i">The index of the column.</param> 534 + /// <param name="readOnly"> 535 + /// Non-zero to open the blob object for read-only access. 536 + /// </param> 537 + /// <returns>A new <see cref="SQLiteBlob" /> object.</returns> 538 + public SQLiteBlob GetBlob(int i, bool readOnly) 539 + { 540 + CheckDisposed(); 541 + VerifyForGet(); 542 + 543 + if ((_flags & SQLiteConnectionFlags.UseConnectionReadValueCallbacks) == SQLiteConnectionFlags.UseConnectionReadValueCallbacks) 544 + { 545 + SQLiteDataReaderValue value = new SQLiteDataReaderValue(); 546 + bool complete; 547 + 548 + InvokeReadValueCallback(i, new SQLiteReadValueEventArgs( 549 + "GetBlob", new SQLiteReadBlobEventArgs(readOnly), value), 550 + out complete); 551 + 552 + if (complete) 553 + return (SQLiteBlob)value.BlobValue; 554 + } 555 + 556 + if (i >= PrivateVisibleFieldCount && _keyInfo != null) 557 + return _keyInfo.GetBlob(i - PrivateVisibleFieldCount, readOnly); 558 + 559 + return SQLiteBlob.Create(this, i, readOnly); 560 + } 494 561 495 562 /// <summary> 496 563 /// Retrieves the column as a boolean value 497 564 /// </summary> 498 565 /// <param name="i">The index of the column.</param> 499 566 /// <returns>bool</returns> 500 567 public override bool GetBoolean(int i) ................................................................................ 1845 1912 /// This method attempts to query the database connection associated with 1846 1913 /// the data reader in use. If the underlying command or connection is 1847 1914 /// unavailable, a null value will be returned. 1848 1915 /// </summary> 1849 1916 /// <returns> 1850 1917 /// The connection object -OR- null if it is unavailable. 1851 1918 /// </returns> 1852 - private static SQLiteConnection GetConnection( 1919 + internal static SQLiteConnection GetConnection( 1853 1920 SQLiteDataReader dataReader 1854 1921 ) 1855 1922 { 1856 1923 try 1857 1924 { 1858 1925 if (dataReader != null) 1859 1926 {
Changes to System.Data.SQLite/SQLiteKeyReader.cs.
1 1 /******************************************************** 2 2 * ADO.NET 2.0 Data Provider for SQLite Version 3.X 3 3 * Written by Robert Simpson (robert@blackcastlesoft.com) 4 - * 4 + * 5 5 * Released to the public domain, use at your own risk! 6 6 ********************************************************/ 7 7 8 8 namespace System.Data.SQLite 9 9 { 10 10 using System; 11 11 using System.Data; ................................................................................ 20 20 /// </remarks> 21 21 /// </summary> 22 22 internal sealed class SQLiteKeyReader : IDisposable 23 23 { 24 24 private KeyInfo[] _keyInfo; 25 25 private SQLiteStatement _stmt; 26 26 private bool _isValid; 27 + private RowIdInfo[] _rowIdInfo; 27 28 28 29 /// <summary> 29 30 /// Used to support CommandBehavior.KeyInfo 30 31 /// </summary> 31 32 private struct KeyInfo 32 33 { 33 34 internal string databaseName; ................................................................................ 35 36 internal string columnName; 36 37 internal int database; 37 38 internal int rootPage; 38 39 internal int cursor; 39 40 internal KeyQuery query; 40 41 internal int column; 41 42 } 43 + 44 + /// <summary> 45 + /// Used to keep track of the per-table RowId column metadata. 46 + /// </summary> 47 + private struct RowIdInfo 48 + { 49 + internal string databaseName; 50 + internal string tableName; 51 + internal int column; 52 + } 42 53 43 54 /// <summary> 44 55 /// A single sub-query for a given table/database. 45 56 /// </summary> 46 57 private sealed class KeyQuery : IDisposable 47 58 { 48 59 private SQLiteCommand _command; ................................................................................ 151 162 /// <param name="stmt"></param> 152 163 internal SQLiteKeyReader(SQLiteConnection cnn, SQLiteDataReader reader, SQLiteStatement stmt) 153 164 { 154 165 Dictionary<string, int> catalogs = new Dictionary<string, int>(); 155 166 Dictionary<string, List<string>> tables = new Dictionary<string, List<string>>(); 156 167 List<string> list; 157 168 List<KeyInfo> keys = new List<KeyInfo>(); 169 + List<RowIdInfo> rowIds = new List<RowIdInfo>(); 158 170 159 171 // Record the statement so we can use it later for sync'ing 160 172 _stmt = stmt; 161 173 162 174 // Fetch all the attached databases on this connection 163 175 using (DataTable tbl = cnn.GetSchema("Catalogs")) 164 176 { ................................................................................ 199 211 { 200 212 for (int i = 0; i < pair.Value.Count; i++) 201 213 { 202 214 string table = pair.Value[i]; 203 215 DataRow preferredRow = null; 204 216 using (DataTable tbl = cnn.GetSchema("Indexes", new string[] { pair.Key, null, table })) 205 217 { 206 - // Loop twice. The first time looking for a primary key index, 218 + // Loop twice. The first time looking for a primary key index, 207 219 // the second time looking for a unique index 208 220 for (int n = 0; n < 2 && preferredRow == null; n++) 209 221 { 210 222 foreach (DataRow row in tbl.Rows) 211 223 { 212 224 if (n == 0 && (bool)row["PRIMARY_KEY"] == true) 213 225 { ................................................................................ 234 246 int database = catalogs[pair.Key]; 235 247 int rootPage = Convert.ToInt32(tblTables.Rows[0]["TABLE_ROOTPAGE"], CultureInfo.InvariantCulture); 236 248 int cursor = stmt._sql.GetCursorForTable(stmt, database, rootPage); 237 249 238 250 // Now enumerate the members of the index we're going to use 239 251 using (DataTable indexColumns = cnn.GetSchema("IndexColumns", new string[] { pair.Key, null, table, (string)preferredRow["INDEX_NAME"] })) 240 252 { 253 + // 254 + // NOTE: If this is actually a RowId (or alias), record that now. There should 255 + // be exactly one index column in that case. 256 + // 257 + bool isRowId = (string)preferredRow["INDEX_NAME"] == "sqlite_master_PK_" + table; 241 258 KeyQuery query = null; 242 259 243 260 List<string> cols = new List<string>(); 244 261 for (int x = 0; x < indexColumns.Rows.Count; x++) 245 262 { 246 263 string columnName = SQLiteConvert.GetStringOrNull( 247 264 indexColumns.Rows[x]["COLUMN_NAME"]); ................................................................................ 253 270 if (row.IsNull(SchemaTableColumn.BaseColumnName)) 254 271 continue; 255 272 256 273 if ((string)row[SchemaTableColumn.BaseColumnName] == columnName && 257 274 (string)row[SchemaTableColumn.BaseTableName] == table && 258 275 (string)row[SchemaTableOptionalColumn.BaseCatalogName] == pair.Key) 259 276 { 277 + if (isRowId) 278 + { 279 + RowIdInfo rowId = new RowIdInfo(); 280 + 281 + rowId.databaseName = pair.Key; 282 + rowId.tableName = table; 283 + rowId.column = (int)row[SchemaTableColumn.ColumnOrdinal]; 284 + 285 + rowIds.Add(rowId); 286 + } 260 287 indexColumns.Rows.RemoveAt(x); 261 288 x--; 262 289 addKey = false; 263 290 break; 264 291 } 265 292 } 266 293 if (addKey == true) 267 294 cols.Add(columnName); 268 295 } 269 296 270 297 // If the index is not a rowid alias, record all the columns 271 298 // needed to make up the unique index and construct a SQL query for it 272 - if ((string)preferredRow["INDEX_NAME"] != "sqlite_master_PK_" + table) 299 + if (!isRowId) 273 300 { 274 301 // Whatever remains of the columns we need that make up the index that are not 275 302 // already in the query need to be queried separately, so construct a subquery 276 303 if (cols.Count > 0) 277 304 { 278 305 string[] querycols = new string[cols.Count]; 279 306 cols.CopyTo(querycols); ................................................................................ 306 333 } 307 334 } 308 335 309 336 // Now we have all the additional columns we have to return in order to support 310 337 // CommandBehavior.KeyInfo 311 338 _keyInfo = new KeyInfo[keys.Count]; 312 339 keys.CopyTo(_keyInfo); 340 + 341 + _rowIdInfo = new RowIdInfo[rowIds.Count]; 342 + rowIds.CopyTo(_rowIdInfo); 343 + } 344 + 345 + /////////////////////////////////////////////////////////////////////////////////////////////// 346 + 347 + internal int GetRowIdIndex( 348 + string databaseName, 349 + string tableName 350 + ) 351 + { 352 + if ((_rowIdInfo != null) && 353 + (databaseName != null) && 354 + (tableName != null)) 355 + { 356 + for (int i = 0; i < _rowIdInfo.Length; i++) 357 + { 358 + if (_rowIdInfo[i].databaseName == databaseName && 359 + _rowIdInfo[i].tableName == tableName) 360 + { 361 + return _rowIdInfo[i].column; 362 + } 363 + } 364 + } 365 + 366 + return -1; 313 367 } 314 368 315 369 /////////////////////////////////////////////////////////////////////////////////////////////// 316 370 317 371 #region IDisposable Members 318 372 public void Dispose() 319 373 { ................................................................................ 458 512 { 459 513 for (int n = 0; n < _keyInfo.Length; n++) 460 514 { 461 515 if (String.Compare(name, _keyInfo[n].columnName, StringComparison.OrdinalIgnoreCase) == 0) return n; 462 516 } 463 517 return -1; 464 518 } 519 + 520 + internal SQLiteBlob GetBlob(int i, bool readOnly) 521 + { 522 + Sync(i); 523 + if (_keyInfo[i].query != null) return _keyInfo[i].query._reader.GetBlob(_keyInfo[i].column, readOnly); 524 + else throw new InvalidCastException(); 525 + } 465 526 466 527 internal bool GetBoolean(int i) 467 528 { 468 529 Sync(i); 469 530 if (_keyInfo[i].query != null) return _keyInfo[i].query._reader.GetBoolean(_keyInfo[i].column); 470 531 else throw new InvalidCastException(); 471 532 } ................................................................................ 561 622 { 562 623 Sync(i); 563 624 if (_keyInfo[i].query != null) return _keyInfo[i].query._reader.GetInt64(_keyInfo[i].column); 564 625 else 565 626 { 566 627 long rowid = _stmt._sql.GetRowIdForCursor(_stmt, _keyInfo[i].cursor); 567 628 if (rowid == 0) throw new InvalidCastException(); 568 - return Convert.ToInt64(rowid); 629 + return rowid; 569 630 } 570 631 } 571 632 572 633 internal string GetString(int i) 573 634 { 574 635 Sync(i); 575 636 if (_keyInfo[i].query != null) return _keyInfo[i].query._reader.GetString(_keyInfo[i].column);
Changes to System.Data.SQLite/Targets/System.Data.SQLite.Files.targets.
17 17 <Compile Include="AssemblyInfo.cs" /> 18 18 <Compile Include="AssemblySourceIdAttribute.cs" /> 19 19 <Compile Include="AssemblySourceTimeStampAttribute.cs" /> 20 20 <Compile Include="SQLite3.cs" /> 21 21 <Compile Include="SQLite3_UTF16.cs" /> 22 22 <Compile Include="SQLiteBackup.cs" /> 23 23 <Compile Include="SQLiteBase.cs" /> 24 + <Compile Include="SQLiteBlob.cs" /> 24 25 <Compile Include="SQLiteCommand.cs"> 25 26 <SubType>Component</SubType> 26 27 </Compile> 27 28 <Compile Include="SQLiteCommandBuilder.cs"> 28 29 <SubType>Component</SubType> 29 30 </Compile> 30 31 <Compile Include="SQLiteConnection.cs">
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
53 53 // associated constructors and are decremented upon the 54 54 // successful completion of the associated ReleaseHandle 55 55 // methods. 56 56 // 57 57 internal static int connectionCount; 58 58 internal static int statementCount; 59 59 internal static int backupCount; 60 + internal static int blobCount; 60 61 #endif 61 62 #endregion 62 63 63 64 ///////////////////////////////////////////////////////////////////////// 64 65 65 66 #region Settings Read Counts (Debug Build Only) 66 67 #if DEBUG ................................................................................ 1677 1678 // 1678 1679 // NOTE: On the .NET Compact Framework, the native interop assembly must 1679 1680 // be used because it provides several workarounds to .NET Compact 1680 1681 // Framework limitations important for proper operation of the core 1681 1682 // System.Data.SQLite functionality (e.g. being able to bind 1682 1683 // parameters and handle column values of types Int64 and Double). 1683 1684 // 1684 - internal const string SQLITE_DLL = "SQLite.Interop.102.dll"; 1685 + internal const string SQLITE_DLL = "SQLite.Interop.103.dll"; 1685 1686 #elif SQLITE_STANDARD 1686 1687 // 1687 1688 // NOTE: Otherwise, if the standard SQLite library is enabled, use it. 1688 1689 // 1689 1690 internal const string SQLITE_DLL = "sqlite3"; 1690 1691 #elif USE_INTEROP_DLL 1691 1692 // ................................................................................ 1799 1800 1800 1801 [DllImport(SQLITE_DLL)] 1801 1802 internal static extern SQLiteErrorCode sqlite3_finalize_interop(IntPtr stmt); 1802 1803 1803 1804 [DllImport(SQLITE_DLL)] 1804 1805 internal static extern SQLiteErrorCode sqlite3_backup_finish_interop(IntPtr backup); 1805 1806 1807 + [DllImport(SQLITE_DLL)] 1808 + internal static extern SQLiteErrorCode sqlite3_blob_close_interop(IntPtr blob); 1809 + 1806 1810 [DllImport(SQLITE_DLL)] 1807 1811 internal static extern SQLiteErrorCode sqlite3_open_interop(byte[] utf8Filename, byte[] vfsName, SQLiteOpenFlagsEnum flags, int extFuncs, ref IntPtr db); 1808 1812 1809 1813 [DllImport(SQLITE_DLL)] 1810 1814 internal static extern SQLiteErrorCode sqlite3_open16_interop(byte[] utf8Filename, byte[] vfsName, SQLiteOpenFlagsEnum flags, int extFuncs, ref IntPtr db); 1811 1815 1812 1816 [DllImport(SQLITE_DLL)] ................................................................................ 2773 2777 #if !PLATFORM_COMPACTFRAMEWORK 2774 2778 [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2775 2779 #else 2776 2780 [DllImport(SQLITE_DLL)] 2777 2781 #endif 2778 2782 internal static extern int sqlite3_backup_pagecount(IntPtr backup); 2779 2783 2784 +#if !PLATFORM_COMPACTFRAMEWORK 2785 + [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2786 +#else 2787 + [DllImport(SQLITE_DLL)] 2788 +#endif 2789 + internal static extern SQLiteErrorCode sqlite3_blob_close(IntPtr blob); 2790 + 2791 +#if !PLATFORM_COMPACTFRAMEWORK 2792 + [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2793 +#else 2794 + [DllImport(SQLITE_DLL)] 2795 +#endif 2796 + internal static extern int sqlite3_blob_bytes(IntPtr blob); 2797 + 2798 +#if !PLATFORM_COMPACTFRAMEWORK 2799 + [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2800 +#else 2801 + [DllImport(SQLITE_DLL)] 2802 +#endif 2803 + internal static extern SQLiteErrorCode sqlite3_blob_open(IntPtr db, byte[] dbName, byte[] tblName, byte[] colName, long rowId, int flags, ref IntPtr ptrBlob); 2804 + 2805 +#if !PLATFORM_COMPACTFRAMEWORK 2806 + [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2807 +#else 2808 + [DllImport(SQLITE_DLL)] 2809 +#endif 2810 + internal static extern SQLiteErrorCode sqlite3_blob_read(IntPtr blob, [MarshalAs(UnmanagedType.LPArray)] byte[] buffer, int count, int offset); 2811 + 2812 +#if !PLATFORM_COMPACTFRAMEWORK 2813 + [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2814 +#else 2815 + [DllImport(SQLITE_DLL)] 2816 +#endif 2817 + internal static extern SQLiteErrorCode sqlite3_blob_reopen(IntPtr blob, long rowId); 2818 + 2819 +#if !PLATFORM_COMPACTFRAMEWORK 2820 + [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2821 +#else 2822 + [DllImport(SQLITE_DLL)] 2823 +#endif 2824 + internal static extern SQLiteErrorCode sqlite3_blob_write(IntPtr blob, [MarshalAs(UnmanagedType.LPArray)] byte[] buffer, int count, int offset); 2825 + 2780 2826 #if !PLATFORM_COMPACTFRAMEWORK 2781 2827 [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] 2782 2828 #else 2783 2829 [DllImport(SQLITE_DLL)] 2784 2830 #endif 2785 2831 internal static extern SQLiteErrorCode sqlite3_declare_vtab(IntPtr db, IntPtr zSQL); 2786 2832 ................................................................................ 3844 3890 3845 3891 #if COUNT_HANDLE 3846 3892 public int WasReleasedOk() 3847 3893 { 3848 3894 return Interlocked.Decrement(ref DebugData.backupCount); 3849 3895 } 3850 3896 #endif 3897 + 3898 + /////////////////////////////////////////////////////////////////////// 3899 + 3900 + public override bool IsInvalid 3901 + { 3902 + get 3903 + { 3904 +#if PLATFORM_COMPACTFRAMEWORK 3905 + lock (syncRoot) 3906 +#endif 3907 + { 3908 + return (handle == IntPtr.Zero); 3909 + } 3910 + } 3911 + } 3912 + 3913 + /////////////////////////////////////////////////////////////////////// 3914 + 3915 +#if DEBUG 3916 + public override string ToString() 3917 + { 3918 +#if PLATFORM_COMPACTFRAMEWORK 3919 + lock (syncRoot) 3920 +#endif 3921 + { 3922 + return handle.ToString(); 3923 + } 3924 + } 3925 +#endif 3926 + } 3927 + #endregion 3928 + 3929 + /////////////////////////////////////////////////////////////////////////// 3930 + 3931 + #region SQLiteBlobHandle Class 3932 + // Provides finalization support for unmanaged SQLite blob objects. 3933 + internal sealed class SQLiteBlobHandle : CriticalHandle 3934 + { 3935 +#if PLATFORM_COMPACTFRAMEWORK 3936 + internal readonly object syncRoot = new object(); 3937 +#endif 3938 + 3939 + /////////////////////////////////////////////////////////////////////// 3940 + 3941 + private SQLiteConnectionHandle cnn; 3942 + 3943 + /////////////////////////////////////////////////////////////////////// 3944 + 3945 + public static implicit operator IntPtr(SQLiteBlobHandle blob) 3946 + { 3947 + if (blob != null) 3948 + { 3949 +#if PLATFORM_COMPACTFRAMEWORK 3950 + lock (blob.syncRoot) 3951 +#endif 3952 + { 3953 + return blob.handle; 3954 + } 3955 + } 3956 + return IntPtr.Zero; 3957 + } 3958 + 3959 + /////////////////////////////////////////////////////////////////////// 3960 + 3961 + internal SQLiteBlobHandle(SQLiteConnectionHandle cnn, IntPtr blob) 3962 + : this() 3963 + { 3964 +#if PLATFORM_COMPACTFRAMEWORK 3965 + lock (syncRoot) 3966 +#endif 3967 + { 3968 + this.cnn = cnn; 3969 + SetHandle(blob); 3970 + } 3971 + } 3972 + 3973 + /////////////////////////////////////////////////////////////////////// 3974 + 3975 + private SQLiteBlobHandle() 3976 + : base(IntPtr.Zero) 3977 + { 3978 +#if COUNT_HANDLE 3979 + Interlocked.Increment(ref DebugData.blobCount); 3980 +#endif 3981 + } 3982 + 3983 + /////////////////////////////////////////////////////////////////////// 3984 + 3985 + protected override bool ReleaseHandle() 3986 + { 3987 + try 3988 + { 3989 +#if !PLATFORM_COMPACTFRAMEWORK 3990 + IntPtr localHandle = Interlocked.Exchange( 3991 + ref handle, IntPtr.Zero); 3992 + 3993 + if (localHandle != IntPtr.Zero) 3994 + SQLiteBase.CloseBlob(cnn, localHandle); 3995 + 3996 +#if !NET_COMPACT_20 && TRACE_HANDLE 3997 + try 3998 + { 3999 + Trace.WriteLine(HelperMethods.StringFormat( 4000 + CultureInfo.CurrentCulture, 4001 + "CloseBlob: {0}", localHandle)); /* throw */ 4002 + } 4003 + catch 4004 + { 4005 + } 4006 +#endif 4007 +#else 4008 + lock (syncRoot) 4009 + { 4010 + if (handle != IntPtr.Zero) 4011 + { 4012 + SQLiteBase.CloseBlob(cnn, handle); 4013 + SetHandle(IntPtr.Zero); 4014 + } 4015 + } 4016 +#endif 4017 +#if COUNT_HANDLE 4018 + Interlocked.Decrement(ref DebugData.blobCount); 4019 +#endif 4020 +#if DEBUG 4021 + return true; 4022 +#endif 4023 + } 4024 +#if !NET_COMPACT_20 && TRACE_HANDLE 4025 + catch (SQLiteException e) 4026 +#else 4027 + catch (SQLiteException) 4028 +#endif 4029 + { 4030 +#if !NET_COMPACT_20 && TRACE_HANDLE 4031 + try 4032 + { 4033 + Trace.WriteLine(HelperMethods.StringFormat( 4034 + CultureInfo.CurrentCulture, 4035 + "CloseBlob: {0}, exception: {1}", 4036 + handle, e)); /* throw */ 4037 + } 4038 + catch 4039 + { 4040 + } 4041 +#endif 4042 + } 4043 + finally 4044 + { 4045 +#if PLATFORM_COMPACTFRAMEWORK 4046 + lock (syncRoot) 4047 +#endif 4048 + { 4049 + SetHandleAsInvalid(); 4050 + } 4051 + } 4052 +#if DEBUG 4053 + return false; 4054 +#else 4055 + return true; 4056 +#endif 4057 + } 4058 + 4059 + /////////////////////////////////////////////////////////////////////// 4060 + 4061 +#if COUNT_HANDLE 4062 + public int WasReleasedOk() 4063 + { 4064 + return Interlocked.Decrement(ref DebugData.blobCount); 4065 + } 4066 +#endif 3851 4067 3852 4068 /////////////////////////////////////////////////////////////////////// 3853 4069 3854 4070 public override bool IsInvalid 3855 4071 { 3856 4072 get 3857 4073 {
Changes to Tests/basic.eagle.
4423 4423 } -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\ 4424 4424 System.Data.SQLite compileCSharp} -match regexp -result {^Ok\ 4425 4425 System#CodeDom#Compiler#CompilerResults#\d+ \{\} 1 \{SQL logic error or missing\ 4426 4426 database -- no such function: REGEXP\} 1 \{SQL logic error or missing database\ 4427 4427 -- no such function: REGEXP\} 0 \{\} 0 1 0 0 0 True 1 \{SQL logic error or\ 4428 4428 missing database -- no such function: REGEXP\} 1 \{SQL logic error or missing\ 4429 4429 database -- no such function: REGEXP\} 0 \{\}$}} 4430 + 4431 +############################################################################### 4432 + 4433 +runTest {test data-1.84 {GetBlob method and SQLiteBlob class} -setup { 4434 + proc getBytesAsList { bytes } { 4435 + set byteList [object create -alias ByteList $bytes] 4436 + return [$byteList ToString] 4437 + } 4438 + 4439 + setupDb [set fileName data-1.84.db] "" "" "" NoVerifyTypeAffinity 4440 +} -body { 4441 + sql execute $db { 4442 + CREATE TABLE t1(x INTEGER PRIMARY KEY, y); 4443 + INSERT INTO t1 (x, y) VALUES(1, 'nope'); 4444 + INSERT INTO t1 (x, y) VALUES(2, '1984'); 4445 + } 4446 + 4447 + set dataReader [sql execute -execute reader -format datareader \ 4448 + -behavior +KeyInfo -alias $db "SELECT x, y FROM t1;"] 4449 + 4450 + set size 4 4451 + set bytes(1) [object create -alias Byte\[\] $size] 4452 + set bytes(2) [object create -alias Byte\[\] $size] 4453 + set result [list] 4454 + 4455 + while {[$dataReader Read]} { 4456 + set blob [$dataReader -alias GetBlob 1 false] 4457 + lappend result [$blob GetCount] 4458 + $blob Read $bytes(1) $size 0 4459 + lappend result [getBytesAsList $bytes(1)] 4460 + 4461 + for {set i 0} {$i < $size} {incr i} { 4462 + set byte [$bytes(1) GetValue $i] 4463 + incr byte; set byte [object invoke -create Byte Parse $byte] 4464 + $bytes(1) SetValue $byte $i 4465 + } 4466 + 4467 + $blob Write $bytes(1) $size 0 4468 + 4469 + if {[$dataReader GetInt64 0] == 1} then { 4470 + $blob Reopen 2 4471 + $blob Read $bytes(2) $size 0 4472 + lappend result [getBytesAsList $bytes(2)] 4473 + } 4474 + 4475 + $blob Close 4476 + } 4477 + 4478 + $dataReader Close; unset dataReader 4479 + 4480 + set dataReader [sql execute -execute reader -format datareader \ 4481 + -alias $db "SELECT x, y FROM t1;"] 4482 + 4483 + while {[$dataReader Read]} { 4484 + lappend result [$dataReader GetInt64 0] 4485 + lappend result [$dataReader GetString 0] 4486 + lappend result [$dataReader GetInt64 1] 4487 + lappend result [$dataReader GetString 1] 4488 + } 4489 + 4490 + set result 4491 +} -cleanup { 4492 + unset -nocomplain blob 4493 + unset -nocomplain dataReader 4494 + 4495 + cleanupDb $fileName 4496 + 4497 + unset -nocomplain byte i bytes size result db fileName 4498 + 4499 + rename getBytesAsList "" 4500 +} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\ 4501 +System.Data.SQLite} -result {4 {110 111 112 101} {49 57 56 52} 4 {49 57 56 52}\ 4502 +1 1 0 opqf 2 2 2 2:95}} 4430 4503 4431 4504 ############################################################################### 4432 4505 4433 4506 reportSQLiteResources $test_channel 4434 4507 4435 4508 ############################################################################### 4436 4509 4437 4510 runSQLiteTestFilesEpilogue 4438 4511 runSQLiteTestEpilogue 4439 4512 runTestEpilogue
Changes to Tests/types.eagle.
108 108 ############################################################################### 109 109 110 110 set readArgs [list \ 111 111 convert dataReader flags eventArgs typeName index userData \ 112 112 completeVarName] 113 113 114 114 set params [list \ 115 - [list Boolean GetBoolean false BooleanValue true 0] \ 116 - [list Byte GetByte false ByteValue true 0] \ 117 - [list Byte GetBytes true BytesValue false 0] \ 118 - [list Char GetChar false CharValue true 0] \ 119 - [list Char GetChars true CharsValue false 0] \ 120 - [list DateTime GetDateTime false DateTimeValue true 0] \ 121 - [list Decimal GetDecimal false DecimalValue true 0] \ 122 - [list Double GetDouble false DoubleValue true 0] \ 123 - [list Single GetFloat false FloatValue true 0] \ 124 - [list Guid GetGuid false GuidValue true \ 115 + [list Boolean GetBoolean false BooleanValue true 0] \ 116 + [list Byte GetByte false ByteValue true 0] \ 117 + [list Byte GetBytes true BytesValue false 0] \ 118 + [list Char GetChar false CharValue true 0] \ 119 + [list Char GetChars true CharsValue false 0] \ 120 + [list DateTime GetDateTime false DateTimeValue true 0] \ 121 + [list Decimal GetDecimal false DecimalValue true 0] \ 122 + [list Double GetDouble false DoubleValue true 0] \ 123 + [list Single GetFloat false FloatValue true 0] \ 124 + [list Guid GetGuid false GuidValue true \ 125 125 00000000-0000-0000-0000-000000000000] \ 126 - [list Int16 GetInt16 false Int16Value true 0] \ 127 - [list Int32 GetInt32 false Int32Value true 0] \ 128 - [list Int64 GetInt64 false Int64Value true 0] \ 129 - [list String GetString false StringValue false null] \ 130 - [list Object GetValue false Value false null]] 126 + [list Int16 GetInt16 false Int16Value true 0] \ 127 + [list Int32 GetInt32 false Int32Value true 0] \ 128 + [list Int64 GetInt64 false Int64Value true 0] \ 129 + [list String GetString false StringValue false null] \ 130 + [list Object GetValue false Value false null] \ 131 + [list SDS.SQLiteBlob GetBlob false BlobValue false 0]] 131 132 132 133 ############################################################################### 133 134 134 135 set expectedResults [list \ 135 136 {False False True False False False False False} \ 136 137 {0 0 1 0 0 0 0 0} \ 137 138 {0 1 48 1 49 3 {49 46 50} 5 {116 104 114\ ................................................................................ 163 164 {0 0 1 0 0 0 0 0} \ 164 165 {0 0 1 0 0 0 0 0} \ 165 166 "<NUL> <NUL> <NUL> <NUL> three \x04\x05\x06\ 166 167 {2016-06-19 19:50:04.1234567}\ 167 168 74f1f402-ddef-4027-a78f-3847fa97b830" \ 168 169 {{} 0 1 1.2 three {4 5 6} {2016-06-19\ 169 170 19:50:04.1234567}\ 170 - 74f1f402-ddef-4027-a78f-3847fa97b830}] 171 + 74f1f402-ddef-4027-a78f-3847fa97b830} \ 172 + {System.Data.SQLite.SQLiteBlob System.Data.SQLite.SQLiteBlob\ 173 + System.Data.SQLite.SQLiteBlob System.Data.SQLite.SQLiteBlob\ 174 + System.Data.SQLite.SQLiteBlob System.Data.SQLite.SQLiteBlob\ 175 + System.Data.SQLite.SQLiteBlob System.Data.SQLite.SQLiteBlob}] 171 176 172 177 ############################################################################### 173 178 174 179 set savedDateTimeFormat [object invoke Interpreter.GetActive DateTimeFormat] 175 180 if {![isObjectHandle $savedDateTimeFormat]} then {set savedDateTimeFormat null} 176 181 object invoke Interpreter.GetActive DateTimeFormat [getDateTimeFormat] 177 182 ................................................................................ 178 183 ############################################################################### 179 184 180 185 for {set i 0} {$i < [llength $params]} {incr i} { 181 186 foreach { 182 187 typeName methodName isArray propertyName isRequired value 183 188 } [lindex $params $i] break 184 189 190 + set typeName [string map [list SDS. System.Data.SQLite.] $typeName] 185 191 set expectedResult [lindex $expectedResults $i] 186 192 187 193 ############################################################################# 188 194 189 195 proc readValueCallback2 $readArgs [subst { 190 196 if {$isArray} then { 191 197 if {\[catch { 192 - set dataOffset \[\$eventArgs ArrayEventArgs.DataOffset\] 198 + set dataOffset \[\$eventArgs ExtraEventArgs.DataOffset\] 193 199 194 - set buffer \[\$eventArgs -create [appendArgs ArrayEventArgs. \ 200 + set buffer \[\$eventArgs -create [appendArgs ExtraEventArgs. \ 195 201 $typeName Buffer]\] 196 202 197 - set bufferOffset \[\$eventArgs ArrayEventArgs.BufferOffset\] 198 - set length \[\$eventArgs ArrayEventArgs.Length\] 203 + set bufferOffset \[\$eventArgs ExtraEventArgs.BufferOffset\] 204 + set length \[\$eventArgs ExtraEventArgs.Length\] 199 205 200 206 set readValue \[\$dataReader \[\$eventArgs MethodName\] \ 201 207 \$index \$dataOffset \$buffer \$bufferOffset \$length\] 202 208 203 209 \$eventArgs \[appendArgs Value. $propertyName\] \$readValue 204 210 } error\]} then { 205 211 set readValue \[\$dataReader -tostring GetValue \$index\] ................................................................................ 209 215 set buffer \[\$string -create -alias ToCharArray] 210 216 } else { 211 217 set buffer \[object invoke -create -alias \ 212 218 System.Text.Encoding.UTF8 GetBytes \$readValue\] 213 219 } 214 220 215 221 \$eventArgs \[appendArgs Value. $propertyName\] \$buffer 216 - \$eventArgs ArrayEventArgs.Length \[\$buffer Length\] 222 + \$eventArgs ExtraEventArgs.Length \[\$buffer Length\] 217 223 } else { 218 - set buffer \[\$eventArgs -create [appendArgs ArrayEventArgs. \ 224 + set buffer \[\$eventArgs -create [appendArgs ExtraEventArgs. \ 219 225 $typeName Buffer]\] 220 226 221 227 \$eventArgs \[appendArgs Value. $propertyName\] \$buffer 222 228 } 223 229 } else { 224 230 if {\[catch { 225 - set readValue \[\$dataReader \[\$eventArgs MethodName\] \$index\] 231 + if {"$typeName" eq "System.Data.SQLite.SQLiteBlob"} then { 232 + set readValue \[object create -flags +NonPublic $typeName \ 233 + null null\] 234 + } else { 235 + set readValue \[\$dataReader \[\$eventArgs MethodName\] \$index\] 226 236 227 - if {"$typeName" eq "Char"} then { 228 - set readValue \[object invoke -create Char Parse \$readValue\] 237 + if {"$typeName" eq "Char"} then { 238 + set readValue \[object invoke -create Char Parse \$readValue\] 239 + } 229 240 } 230 241 231 242 \$eventArgs \[appendArgs Value. $propertyName\] \$readValue 232 243 } error\]} then { 233 244 \$eventArgs \[appendArgs Value. $propertyName\] {$value} 234 245 } 235 246 } ................................................................................ 292 303 $list 0 [expr {$value - 1}] false] 293 304 } 294 305 } else { 295 306 lappend result [list error(array) $::errorCode] 296 307 } 297 308 } else { 298 309 if {[catch { 299 - $dataReader $methodName 0 310 + if {$typeName eq "System.Data.SQLite.SQLiteBlob"} then { 311 + $dataReader $methodName 0 true; # read-only 312 + } else { 313 + $dataReader $methodName 0 314 + } 300 315 } value] == 0} then { 301 316 if {$value eq "\x00"} then { 302 317 lappend result <NUL> 303 318 } else { 304 319 lappend result [getStringFromObjectHandle $value] 305 320 } 306 321 } else {
Changes to Tests/version.eagle.
27 27 # NOTE: For these unit tests to be useful and accurate, the following version 28 28 # numbers must be manually kept synchronized with the version numbers for 29 29 # the source code files, the built binaries, and the release packages. 30 30 # The revision number is reserved for NuGet package versioning. 31 31 # 32 32 set version(major) 1 33 33 set version(minor) 0 34 -set version(build) 102; # NOTE: Incremented with each release. 34 +set version(build) 103; # NOTE: Incremented with each release. 35 35 set version(revision) 0 36 36 37 37 ############################################################################### 38 38 39 39 # 40 40 # NOTE: What is the full version of the EntityFramework NuGet package (which 41 41 # is not [necessarily] the same version as the assembly itself) in use
Changes to lib/System.Data.SQLite/common.eagle.
3164 3164 set result [list] 3165 3165 3166 3166 if {[haveSQLiteObjectCommand] && \ 3167 3167 [haveSQLiteDefineConstant COUNT_HANDLE]} then { 3168 3168 # 3169 3169 # NOTE: Add each critical handle count to the resulting list. 3170 3170 # 3171 - foreach name [list connectionCount statementCount backupCount] { 3171 + foreach name [list \ 3172 + connectionCount statementCount backupCount blobCount] { 3172 3173 if {[catch { 3173 3174 object invoke -flags +NonPublic \ 3174 3175 System.Data.SQLite.DebugData $name 3175 3176 } value] == 0} then { 3176 3177 if {!$quiet} then { 3177 3178 tputs $channel [appendArgs \ 3178 3179 "---- critical handle count \"" $name "\" is " $value \n]
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.102.0 - June 23, 2016<br /> 8 +Version 1.0.103.0 - August XX, 2016 <font color="red">(release scheduled)</font><br /> 9 9 Using <a href="https://www.sqlite.org/releaselog/3_13_0.html">SQLite 3.13.0</a><br /> 10 10 Originally written by Robert Simpson<br /> 11 11 Released to the public domain, use at your own risk!<br /> 12 12 Official provider website: <a href="https://system.data.sqlite.org/">https://system.data.sqlite.org/</a><br /> 13 13 Legacy versions: <a href="http://sqlite.phxsoftware.com/">http://sqlite.phxsoftware.com/</a><br /> 14 14 <br /> 15 15 The current development version can be downloaded from <a href="https://system.data.sqlite.org/index.html/timeline?y=ci"> ................................................................................ 142 142 app.config file:<br /> 143 143 <pre> 144 144 <configuration> 145 145 <system.data> 146 146 <DbProviderFactories> 147 147 <remove invariant="System.Data.SQLite" /> 148 148 <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" 149 - type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 149 + type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 150 150 </DbProviderFactories> 151 151 </system.data> 152 152 </configuration> 153 153 </pre> 154 154 <p> 155 155 See the help documentation for further details on implementing both version-specific 156 156 (GAC enabled) and version independent DBProviderFactories support. ................................................................................ 204 204 supported <a href="https://www.sqlite.org/compile.html">compile-time options</a> 205 205 designed for robustness and maximum backward compatibility with previously 206 206 released versions of System.Data.SQLite. 207 207 </p> 208 208 209 209 <h2><b>Version History</b></h2> 210 210 211 +<p> 212 + <b>1.0.103.0 - August XX, 2016 <font color="red">(release scheduled)</font></b> 213 +</p> 214 +<ul> 215 + <li>Change the SQLiteReadValueCallback delegate "eventArgs" parameter to be of type SQLiteReadEventArgs. <b>** Potentially Incompatible Change **</b></li> 216 + <li>Make SQLiteReadValueEventArgs and SQLiteReadArrayEventArgs derive from SQLiteReadEventArgs. <b>** Potentially Incompatible Change **</b></li> 217 + <li>Rename SQLiteReadValueEventArgs.ArrayEventArgs property to ExtraEventArgs. <b>** Potentially Incompatible Change **</b></li> 218 + <li>Add NoVerifyTypeAffinity connection flag to disable all type affinity checking.</li> 219 + <li>Add support for <a href="https://www.sqlite.org/c3ref/blob_open.html">incremental blob I/O</a>.</li> 220 +</ul> 211 221 <p> 212 222 <b>1.0.102.0 - June 23, 2016</b> 213 223 </p> 214 224 <ul> 215 225 <li>Updated to <a href="https://www.sqlite.org/releaselog/3_13_0.html">SQLite 3.13.0</a>.</li> 216 226 <li>Update the SQLiteConnection.EnableExtensions method to make use of the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION option, when available. <b>** Potentially Incompatible Change **</b></li> 217 227 <li>Prevent the SQLiteCommand.ExecuteScalar method from throwing an exception when there are no result columns. <b>** Potentially Incompatible Change **</b></li>
Changes to test/AssemblyInfo.cs.
34 34 // Version information for an assembly consists of the following four values: 35 35 // 36 36 // Major Version 37 37 // Minor Version 38 38 // Build Number 39 39 // Revision 40 40 // 41 -[assembly: AssemblyVersion("1.0.102.0")] 42 -[assembly: AssemblyFileVersion("1.0.102.0")] 41 +[assembly: AssemblyVersion("1.0.103.0")] 42 +[assembly: AssemblyFileVersion("1.0.103.0")]
Changes to test/app.config.
1 1 <configuration> 2 2 <system.data> 3 3 <DbProviderFactories> 4 4 <remove invariant="System.Data.SQLite" /> 5 - <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 5 + <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 6 6 </DbProviderFactories> 7 7 </system.data> 8 8 </configuration>
Changes to testce/AssemblyInfo.cs.
34 34 // Version information for an assembly consists of the following four values: 35 35 // 36 36 // Major Version 37 37 // Minor Version 38 38 // Build Number 39 39 // Revision 40 40 // 41 -[assembly: AssemblyVersion("1.0.102.0")] 42 -// [assembly: AssemblyFileVersion("1.0.102.0")] 41 +[assembly: AssemblyVersion("1.0.103.0")] 42 +// [assembly: AssemblyFileVersion("1.0.103.0")]
Changes to testlinq/2008/LINQ/App.config.
1 1 <?xml version="1.0"?> 2 2 <configuration> 3 3 <system.data> 4 4 <DbProviderFactories> 5 5 <remove invariant="System.Data.SQLite.Linq" /> 6 - <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 6 + <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 7 7 </DbProviderFactories> 8 8 </system.data> 9 9 <connectionStrings> 10 10 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.Linq.2008.csdl|res://*/NorthwindModel.Linq.2008.ssdl|res://*/NorthwindModel.Linq.2008.msl;provider=System.Data.SQLite.Linq;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 11 11 </connectionStrings> 12 12 </configuration>
Changes to testlinq/2010/EF6/App.config.
2 2 <configuration> 3 3 <configSections> 4 4 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 5 5 </configSections> 6 6 <system.data> 7 7 <DbProviderFactories> 8 8 <remove invariant="System.Data.SQLite.EF6" /> 9 - <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 9 + <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 10 10 </DbProviderFactories> 11 11 </system.data> 12 12 <connectionStrings> 13 13 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.EF6.2010.csdl|res://*/NorthwindModel.EF6.2010.ssdl|res://*/NorthwindModel.EF6.2010.msl;provider=System.Data.SQLite.EF6;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 14 14 </connectionStrings> 15 15 <entityFramework> 16 16 <providers> 17 - <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 17 + <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 18 18 </providers> 19 19 </entityFramework> 20 20 </configuration>
Changes to testlinq/2010/LINQ/App.config.
1 1 <?xml version="1.0"?> 2 2 <configuration> 3 3 <system.data> 4 4 <DbProviderFactories> 5 5 <remove invariant="System.Data.SQLite.Linq" /> 6 - <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 6 + <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 7 7 </DbProviderFactories> 8 8 </system.data> 9 9 <connectionStrings> 10 10 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.Linq.2010.csdl|res://*/NorthwindModel.Linq.2010.ssdl|res://*/NorthwindModel.Linq.2010.msl;provider=System.Data.SQLite.Linq;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 11 11 </connectionStrings> 12 12 </configuration>
Changes to testlinq/2012/EF6/App.config.
2 2 <configuration> 3 3 <configSections> 4 4 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 5 5 </configSections> 6 6 <system.data> 7 7 <DbProviderFactories> 8 8 <remove invariant="System.Data.SQLite.EF6" /> 9 - <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 9 + <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 10 10 </DbProviderFactories> 11 11 </system.data> 12 12 <connectionStrings> 13 13 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.EF6.2012.csdl|res://*/NorthwindModel.EF6.2012.ssdl|res://*/NorthwindModel.EF6.2012.msl;provider=System.Data.SQLite.EF6;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 14 14 </connectionStrings> 15 15 <entityFramework> 16 16 <providers> 17 - <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 17 + <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 18 18 </providers> 19 19 </entityFramework> 20 20 </configuration>
Changes to testlinq/2012/LINQ/App.config.
1 1 <?xml version="1.0"?> 2 2 <configuration> 3 3 <system.data> 4 4 <DbProviderFactories> 5 5 <remove invariant="System.Data.SQLite.Linq" /> 6 - <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 6 + <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 7 7 </DbProviderFactories> 8 8 </system.data> 9 9 <connectionStrings> 10 10 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.Linq.2012.csdl|res://*/NorthwindModel.Linq.2012.ssdl|res://*/NorthwindModel.Linq.2012.msl;provider=System.Data.SQLite.Linq;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 11 11 </connectionStrings> 12 12 </configuration>
Changes to testlinq/2013/EF6/App.config.
2 2 <configuration> 3 3 <configSections> 4 4 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 5 5 </configSections> 6 6 <system.data> 7 7 <DbProviderFactories> 8 8 <remove invariant="System.Data.SQLite.EF6" /> 9 - <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 9 + <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 10 10 </DbProviderFactories> 11 11 </system.data> 12 12 <connectionStrings> 13 13 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.EF6.2013.csdl|res://*/NorthwindModel.EF6.2013.ssdl|res://*/NorthwindModel.EF6.2013.msl;provider=System.Data.SQLite.EF6;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 14 14 </connectionStrings> 15 15 <entityFramework> 16 16 <providers> 17 - <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 17 + <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 18 18 </providers> 19 19 </entityFramework> 20 20 </configuration>
Changes to testlinq/2013/LINQ/App.config.
1 1 <?xml version="1.0"?> 2 2 <configuration> 3 3 <system.data> 4 4 <DbProviderFactories> 5 5 <remove invariant="System.Data.SQLite.Linq" /> 6 - <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 6 + <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 7 7 </DbProviderFactories> 8 8 </system.data> 9 9 <connectionStrings> 10 10 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.Linq.2013.csdl|res://*/NorthwindModel.Linq.2013.ssdl|res://*/NorthwindModel.Linq.2013.msl;provider=System.Data.SQLite.Linq;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 11 11 </connectionStrings> 12 12 </configuration>
Changes to testlinq/2015/EF6/App.config.
2 2 <configuration> 3 3 <configSections> 4 4 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 5 5 </configSections> 6 6 <system.data> 7 7 <DbProviderFactories> 8 8 <remove invariant="System.Data.SQLite.EF6" /> 9 - <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 9 + <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 10 10 </DbProviderFactories> 11 11 </system.data> 12 12 <connectionStrings> 13 13 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.EF6.2015.csdl|res://*/NorthwindModel.EF6.2015.ssdl|res://*/NorthwindModel.EF6.2015.msl;provider=System.Data.SQLite.EF6;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 14 14 </connectionStrings> 15 15 <entityFramework> 16 16 <providers> 17 - <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 17 + <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 18 18 </providers> 19 19 </entityFramework> 20 20 </configuration>
Changes to testlinq/2015/LINQ/App.config.
1 1 <?xml version="1.0"?> 2 2 <configuration> 3 3 <system.data> 4 4 <DbProviderFactories> 5 5 <remove invariant="System.Data.SQLite.Linq" /> 6 - <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.102.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 6 + <add name="SQLite Data Provider (LINQ)" invariant="System.Data.SQLite.Linq" description=".NET Framework Data Provider for SQLite (LINQ)" type="System.Data.SQLite.Linq.SQLiteProviderFactory, System.Data.SQLite.Linq, Version=1.0.103.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> 7 7 </DbProviderFactories> 8 8 </system.data> 9 9 <connectionStrings> 10 10 <add name="northwindEFEntities" connectionString="metadata=res://*/NorthwindModel.Linq.2015.csdl|res://*/NorthwindModel.Linq.2015.ssdl|res://*/NorthwindModel.Linq.2015.msl;provider=System.Data.SQLite.Linq;provider connection string="data source=.\northwindEF.db"" providerName="System.Data.EntityClient" /> 11 11 </connectionStrings> 12 12 </configuration>
Changes to testlinq/Properties/AssemblyInfo.cs.
42 42 // Minor Version 43 43 // Build Number 44 44 // Revision 45 45 // 46 46 // You can specify all the values or you can default the Build and Revision Numbers 47 47 // by using the '*' as shown below: 48 48 // [assembly: AssemblyVersion("1.0.*")] 49 -[assembly: AssemblyVersion("1.0.102.0")] 50 -[assembly: AssemblyFileVersion("1.0.102.0")] 49 +[assembly: AssemblyVersion("1.0.103.0")] 50 +[assembly: AssemblyFileVersion("1.0.103.0")]
Changes to tools/install/Properties/AssemblyInfo.cs.
24 24 // Version information for an assembly consists of the following four values: 25 25 // 26 26 // Major Version 27 27 // Minor Version 28 28 // Build Number 29 29 // Revision 30 30 // 31 -[assembly: AssemblyVersion("1.0.102.0")] 32 -[assembly: AssemblyFileVersion("1.0.102.0")] 31 +[assembly: AssemblyVersion("1.0.103.0")] 32 +[assembly: AssemblyFileVersion("1.0.103.0")]
Changes to www/news.wiki.
1 1 <title>News</title> 2 2 3 3 <b>Version History</b> 4 4 5 +<p> 6 + <b>1.0.103.0 - August XX, 2016 <font color="red">(release scheduled)</font></b> 7 +</p> 8 +<ul> 9 + <li>Change the SQLiteReadValueCallback delegate "eventArgs" parameter to be of type SQLiteReadEventArgs. <b>** Potentially Incompatible Change **</b></li> 10 + <li>Make SQLiteReadValueEventArgs and SQLiteReadArrayEventArgs derive from SQLiteReadEventArgs. <b>** Potentially Incompatible Change **</b></li> 11 + <li>Rename SQLiteReadValueEventArgs.ArrayEventArgs property to ExtraEventArgs. <b>** Potentially Incompatible Change **</b></li> 12 + <li>Add NoVerifyTypeAffinity connection flag to disable all type affinity checking.</li> 13 + <li>Add support for [https://www.sqlite.org/c3ref/blob_open.html|incremental blob I/O].</li> 14 +</ul> 5 15 <p> 6 16 <b>1.0.102.0 - June 23, 2016</b> 7 17 </p> 8 18 <ul> 9 19 <li>Updated to [https://www.sqlite.org/releaselog/3_13_0.html|SQLite 3.13.0].</li> 10 20 <li>Update the SQLiteConnection.EnableExtensions method to make use of the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION option, when available. <b>** Potentially Incompatible Change **</b></li> 11 21 <li>Prevent the SQLiteCommand.ExecuteScalar method from throwing an exception when there are no result columns. <b>** Potentially Incompatible Change **</b></li>