Community Support Policies
Effective May 1, 2017
Updated May 22, 2021
Legacy CryptoAPI-based (RC4) Codec
- It is unsupported.
- It is disabled in all default build configurations.
- It may not be possible to build binaries with it enabled.
Design-Time Components for Visual Studio
- They will still be built and included in the release packages.
- However, they will no longer be "officially supported".
- The forum may still be used to ask questions about them.
- However, any tickets opened for them will be deleted.
- Due to changes in the Visual Studio package installation model, they are not supported by Visual Studio 2017 and later versions.
Release Packages
- Release packages for non-current releases will be archived.
- Access to archived release packages will be granted on a case-by-case basis.
Version History
1.0.119.0 - September 29, 2024
- Updated to SQLite 3.46.1.
- Update internal resource list of reserved SQL words.
- Add experimental support for using NuGet runtime identifiers to help locate the interop assembly. Pursuant to forum post 3757f4365b.
- Avoid NullReferenceException from Path.Combine method when the PublishSingleFile property is enabled for a project. Pursuant to forum post 66a0d2716a.
- Avoid setting up for the Changed event when it will not be fired. Pursuant to forum post 25cafb35e5.
- Add the Serialize and Deserialize methods to the SQLiteConnection class.
- Add the Tag property to the SQLiteConnection class.
- Add the VfsName connection string property.
- Add the IncludeDefaultFlags connection string property, enabled by default. ** Potentially Incompatible Change **
- Add the ConnectionPoolOnly and AggressiveDisposal connection flags. ** Potentially Incompatible Change **
- Add the "compress" and "zipfile" extensions to the interop assembly.
- Add the GetPasswordCallback property to the SQLiteConnection class for use with SEE.
- Add the NoCase property to the SQLiteParameterCollection class.
- Fix rarely seen NullReferenceException in the StaticWeakConnectionPool.Add method.
- Revise the calculation used to bind DateTime values. Fix for [bbddfeb773].
- Fix support for unnamed parameters using the ?NNN syntax. Pursuant to forum post 76cb35b58d.
1.0.118.0 - June 10, 2023
- Updated to SQLite 3.42.0.
- Add the ConnectionStringPreview, SqlStringPreview, and Canceled connection events.
- Add support for the sqlite3_is_interrupted core library API. Pursuant to forum post b6a707bffb.
- Add support for the sqlite_trace_v2 core library API. Pursuant to forum post 1c418d7edc.
- Add TextHexPassword connection string property for use with SEE.
- Add SQLite_ForceLogRetry environment variable to force logging of all internal retries during statment preparation and stepping.
- Add StepRetries connection string property to allow the maximum number of retries when stepping a query to be overridden.
- Fix ExecuteScalar and ExecuteNonQuery handling of write transactions that require more than one call to step. Pursuant to forum post f4e718891d. ** Potentially Incompatible Change **
- Parameter names should be case-sensitive. Fix for [e22d357a21]. ** Potentially Incompatible Change **
1.0.117.0 - November 28, 2022
- Updated to SQLite 3.40.0.
- Add support for creating custom window functions. Pursuant to forum post 21de219031.
- Suppress finalizer calls for SQLite3 objects that are closed. Fix for [ce4d70ea6f].
- Improvements to object disposal diagnostics. Pursuant to [ce4d70ea6f].
- Add MaximumSleepTime property to the SQLiteCommand class and DefaultMaximumSleepTime connection string property.
- Add experimental support for running the test suite using .NET 5 and .NET 6.
- Add experimental support for native sha3 extension.
1.0.116.0 - June 1, 2022
- Updated to SQLite 3.38.5.
- More flexible connection pooling via the new ISQLiteConnectionPool2 interface.
- Add SQLite_StrongConnectionPool environment variable to prevent pooled connections from being garbage collected.
- Improvements to object disposal handling for database connections.
1.0.115.5 - November 2, 2021
- Updated to SQLite trunk.
- Add Busy event to the SQLiteConnection class. Pursuant to forum post 08a52f61fc.
- Fix metadata UTF-16 string length calculations on Linux. Fix for forum post eeaefb84ec.
1.0.115.0 - August 25, 2021
- Updated to SQLite 3.36.0.
1.0.114.0 - May 22, 2021
- Updated to SQLite 3.35.5.
- Updated to Entity Framework 6.4.4.
- Add preliminary support for the .NET Framework 4.8.
- Add support for math functions now provided by the SQLite core library.
- Add support for ORDER BY and LIMIT for UPDATE and DELETE.
- Add TextPassword connection string property for use with SEE.
1.0.113.0 - June 1, 2020
- Updated to SQLite 3.32.1.
- Add SQLite_ForceLogLifecycle environment variable to force logging of calls into key members pertaining to the lifecycle of connections and their associated classes (e.g. LINQ, EF6, etc).
- Support automatic value conversions for columns with a declared type of MEDIUMINT or MEDIUMUINT. Pursuant to [515cb60b10].
1.0.112.3 - Xxxx XX, 2020
- When using the (unsupported) legacy CryptoAPI-based (RC4) codec, skip encrypting page #1 because that can lead to database corruption and other malfunctions.
- Add SQLite_ForceLogLifecycle environment variable to force logging of calls into key members pertaining to the lifecycle of connections and their associated classes (e.g. LINQ, EF6, etc).
- Support automatic value conversions for columns with a declared type of MEDIUMINT or MEDIUMUINT. Pursuant to [515cb60b10].
1.0.112.2 - April 27, 2020
- Fix NuGet packaging for .NET Standard 2.1. Fix for [7c73262e6f].
1.0.112.1 - April 6, 2020
- Updated to SQLite 3.31.1.
- Include the "LINQ" partial classes in the primary managed assembly for .NET Standard 2.1. Fix for [ad28d8e026].
1.0.112.0 - October 28, 2019
- Updated to SQLite 3.30.1.
- Add preliminary support for .NET Core 3.0 and the .NET Standard 2.1. Pursuant to [ce75d320d0].
- Updated to Entity Framework 6.3.0.
- Add support for new DBCONFIG options from the SQLite core library. Pursuant to [03b6b0edd7].
- Add SetLimitOption method to the SQLiteConnection class.
1.0.111.0 - June 10, 2019
- Updated to SQLite 3.28.0.
- Add No_SQLiteLog environment variable.
1.0.110.0 - March 4, 2019
- Updated to SQLite 3.27.2.
- Add HidePassword connection flag to remove the password from the connection string once the database is opened. Pursuant to [23d8d6171e].
- Add experimental StrictConformance connection flag to force strict compliance to the ADO.NET standard. Pursuant to [e36e05e299].
- Add support for the sqlite3changeset_start_v2() and sqlite3changeset_start_v2_strm() interfaces.
1.0.109.0 - August 15, 2018
- Updated to SQLite 3.24.0.
- Updated to Entity Framework 6.2.0.
- Do not attempt to initialize the logging subsystem more than once. ** Potentially Incompatible Change **
- Prevent GetSchemaTable from throwing InvalidCastException. Fix for [baf42ee135].
- Add preliminary support for the .NET Framework 4.7.2.
- Add preliminary support for .NET Core 2.0 and the .NET Standard 2.0. Pursuant to [5c89cecd1b].
- Add simpler overload for the SQLiteBlob.Create method. Pursuant to [dfc8133ba2].
- Add GetFieldAffinity method to the SQLiteDataReader class.
1.0.108.0 - March 2, 2018
- Support extended result codes when messages are looked up without the SQLite core library.
- Override System.Object members for the SQLiteException class to improve its ToString return value. Pursuant to [53962f9eff].
- More database connection configuration options for the sqlite3_db_config() interface. ** Potentially Incompatible Change **
- Set HResult property of SQLiteException based on the SQLite core library error code. ** Potentially Incompatible Change **
- Modify experimental WaitForEnlistmentReset method to require a nullable boolean parameter for the value to return when the connection is disposed. ** Potentially Incompatible Change **
1.0.107.0 - January 30, 2018
- Updated to SQLite 3.22.0.
- Improve performance of type name lookups by removing superfluous locking and string creation.
- Support asynchronous completion of distributed transactions. Fix for [5cee5409f8].
- Add experimental WaitForEnlistmentReset method to the SQLiteConnection class. Pursuant to [7e1dd697dc].
- Fix some internal memory accounting present only in the debug build.
- Make sure inbound native delegates are unhooked before adding a connection to the pool. Fix for [0e48e80333].
- Add preliminary support for the .NET Framework 4.7.1.
- Updates to internal DbType mapping related lookup tables. Pursuant to [a799e3978f].
1.0.106.0 - November 2, 2017
- Updated to SQLite 3.21.0.
- Add full support for the native session extension.
- Add BindDecimalAsText and GetDecimalAsText connection flags to force binding and returning of decimal values as text. Pursuant to [b167206ad3].
- Add BindInvariantDecimal and GetInvariantDecimal connection flags, enabled by default, to force binding and returning of decimal values using the invariant culture. Pursuant to [b167206ad3]. ** Potentially Incompatible Change **
- Add preliminary support for Visual Studio 2017 and the .NET Framework 4.7. This does not include support for the design-time components for Visual Studio, see [8292431f51].
1.0.105.2 - June 12, 2017
- Updated to SQLite 3.19.3.
- Fix issues that prevented SQLiteBlob creation from succeeding for tables that did not have an integer primary key.
1.0.105.1 - May 15, 2017
- Prevent culture settings from negatively impacting integer connection string defaults.
- Make sure the "No_SQLiteConnectionNewParser" and "DefaultFlags_SQLiteConnection" setting values end up being cached.
- Cache the XML file name and assembly directory used by the configuration subsystem.
1.0.105.0 - April 9, 2017
- Updated to SQLite 3.18.0.
- Add experimental support for native sha1 extension.
1.0.104.0 - December 16, 2016
- Updated to SQLite 3.15.2.
- Add the "%PreLoadSQLite_AssemblyDirectory%", "%PreLoadSQLite_TargetFramework%", and "%PreLoadSQLite_XmlConfigDirectory%" replacement tokens for use in configuration setting values. Pursuant to [d4728aecb7].
- Prevent the GetByte, GetChar, and GetInt16 methods of the SQLiteDataReader class from throwing exceptions for large integer values. Pursuant to [5535448538]. ** Potentially Incompatible Change **
- Use SAVEPOINTs to properly implement nested transactions when the new AllowNestedTransactions connection flag is used. Pursuant to [1f7bfff467].
- When converting a Julian Day value to an integer, round to the nearest millisecond first. Pursuant to [69cf6e5dc8]. ** Potentially Incompatible Change **
1.0.103.0 - September 15, 2016
- Updated to SQLite 3.14.2.
- Add preliminary support for the .NET Framework 4.6.2.
- Change the SQLiteReadValueCallback delegate "eventArgs" parameter to be of type SQLiteReadEventArgs. ** Potentially Incompatible Change **
- Make SQLiteReadValueEventArgs and SQLiteReadArrayEventArgs derive from SQLiteReadEventArgs. ** Potentially Incompatible Change **
- Rename SQLiteReadValueEventArgs.ArrayEventArgs property to ExtraEventArgs. ** Potentially Incompatible Change **
- Add No_SQLiteGetSettingValue and No_SQLiteXmlConfigFile environment variables.
- Reduce the number of calls to GetSettingValue from SQLiteConnection. Pursuant to [25d53b48f6]. ** Potentially Incompatible Change **
- Add NoVerifyTypeAffinity connection flag to disable all type affinity checking.
- Add support for incremental blob I/O.
- Improve support for the sqlite3_db_config() interface. Pursuant to [f64f4aee95].
1.0.102.0 - June 23, 2016
- Updated to SQLite 3.13.0.
- Update the SQLiteConnection.EnableExtensions method to make use of the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION option, when available. ** Potentially Incompatible Change **
- Prevent the SQLiteCommand.ExecuteScalar method from throwing an exception when there are no result columns. ** Potentially Incompatible Change **
- Support per-connection customization for binding parameters and reading values, based on the database type name.
- Add TypeName property to the SQLiteParameter class.
- Add VerifyOnly method to the SQLiteCommand class.
- Add IsReadOnly method to the SQLiteConnection class.
1.0.101.0 - April 19, 2016
- Updated to SQLite 3.12.2.
- Add binary package release for Mono on POSIX.
1.0.100.0 - April 15, 2016
- Updated to SQLite 3.12.1.
- Support compiling and using the interop assembly on Linux and Mac OS X.
- Support running the test suite under Mono on Linux and Mac OS X.
- Properly handle NULL values in the "name" column of the results returned by PRAGMA index_info(). Fix for [5251bd0878].
- For column types that resolve to boolean, recognize case-insensitive prefixes of "True" and "False". Fix for [dbd65441a5].
- Add NoVerifyTextAffinity connection flag to skip type affinity checking when fetching a column value as a string. Pursuant to [dbd65441a5].
- The UnixEpoch DateTime format should use Int64 internally, not Int32. ** Potentially Incompatible Change **
- Avoid using Path.Combine with null values in the native library pre-loader. Fix for [da685c0bac].
- Fix the (unsupported) legacy CryptoAPI-based (RC4) codec so that it no longer prevents page size changes.
1.0.99.1 - March 31, 2016
- Updated to SQLite 3.9.3.
1.0.99.0 - December 9, 2015
- Updated to SQLite 3.9.2.
- Add preliminary support for the .NET Framework 4.6.1.
- Fix handling of sqlite3_index_info members not available with older versions of the SQLite core library. ** Potentially Incompatible Change **
- Update and improve documentation comments for the native virtual table methods.
- Permit an existing registered function to be replaced. Fix for [2556655d1b].
- Make GetValue work for boolean columns with textual "True" and "False" values. Fix for [7714b60d61]. ** Potentially Incompatible Change **
- Add Reset method to the SQLiteCommand class.
- Add FileName property to the SQLiteConnection class.
- Add experimental support for the native json1 and fts5 extensions.
- Add GetDatabaseName, GetTableName, and GetOriginalName methods to the SQLiteDataReader class.
1.0.98.0 - August 19, 2015
- Updated to SQLite 3.8.11.1.
- Add full support for Visual Studio 2015 and the .NET Framework 4.6.
- Add support for creating custom SQL functions using delegates.
- Implement the Substring method for LINQ using the "substr" core SQL function. ** Potentially Incompatible Change **
- Prevent encrypted connections from being used with the connection pool. Pursuant to [89d3a159f1]. ** Potentially Incompatible Change **
- Honor the second argument to Math.Round when using LINQ. ** Potentially Incompatible Change **
- Honor the pre-existing flags for connections during the Open method. Fix for [964063da16]. ** Potentially Incompatible Change **
- Remove errant semi-colons from the SQL used by LINQ to INSERT and then SELECT rows with composite primary keys. Fix for [9d353b0bd8].
- Refactor INSERT/UPDATE handling (in the LINQ assembly) so it can handle composite and non-integer primary keys. Fix for [41aea496e0].
- Change the base type for the SQLiteConnectionFlags enumeration to long integer. ** Potentially Incompatible Change **
- Add extended return codes to the SQLiteErrorCode enumeration. Pursuant to [71bedaca19]. ** Potentially Incompatible Change **
- Improve exception handling in all native callbacks implemented in the SQLiteConnection class.
- Add Progress event and ProgressOps connection string property to enable raising progress events during long-running queries.
- Add "Recursive Triggers" connection string property to enable or disable the recursive trigger capability. Pursuant to [3a82ee635b].
- Add NoDefaultFlags connection string property to prevent the default connection flags from being used. Pursuant to [964063da16].
- Add VfsName connection string property to allow a non-default VFS to be used by the SQLite core library.
- Add BusyTimeout connection string property to set the busy timeout to be used by the SQLite core library.
- Add UnbindFunction and UnbindAllFunctions methods to the SQLiteConnection class.
- Enable integration with the ZipVFS extension.
1.0.97.0 - May 26, 2015
- Updated to SQLite 3.8.10.2.
- Updated to Entity Framework 6.1.3.
- Improve ADO.NET conformance of the SQLiteDataReader.RecordsAffected property. Fix for [74542e702e]. ** Potentially Incompatible Change **
- Prevent the IDataReader.GetDataTypeName method from throwing "No current row" exceptions. Fix for [94252b9059].
- When BinaryGUID handling is off, transform the LINQ parameter types as well. Fix for [a4d9c7ee94]. ** Potentially Incompatible Change **
- The IDataReader.GetDataTypeName method should always return the declared type name. ** Potentially Incompatible Change **
- Add DefaultFlags_SQLiteConnection environment variable to enable customization of the default connection flags.
- Prevent calls to sqlite3_step() and sqlite3_interrupt() from being interrupted via ThreadAbortException.
- Make sure enabling UseUTF16Encoding sets the schema encoding to UTF-16. Fix for [7c151a2f0e].
1.0.96.0 - March 5, 2015
- Prevent the IDataReader.GetOrdinal method from throwing "No current row" exceptions. Fix for [c28d7fe915].
- When counting the number of tables in the GetSchemaTable method, do not include those that have a null or empty name. Fix for [92dbf1229a].
1.0.95.0 - March 2, 2015
- Updated to SQLite 3.8.8.3.
- Updated to Entity Framework 6.1.2.
- Modify configuration file transforms performed by the NuGet packages to allow Entity Framework 6 design-time integration to work automatically. Fix for [2be4298631], [abad7c577d], and [417d669435].
- The "System.Data.SQLite.EF6*" and "System.Data.SQLite.Linq*" NuGet packages no longer depend on the "System.Data.SQLite.Core*" packages. ** Potentially Incompatible Change **
- The "System.Data.SQLite.MSIL*" NuGet packages no longer directly include any files; they are now meta-packages. ** Potentially Incompatible Change **
- The "System.Data.SQLite.x86*" and "System.Data.SQLite.x64*" NuGet packages now depend on the "System.Data.SQLite.Linq" and "System.Data.SQLite.EF6" NuGet packages. ** Potentially Incompatible Change **
- Make sure SQL statements generated for DbUpdateCommandTree objects are properly delimited.
- Make sure SQLiteIndexOutputs.ConstraintUsages instances are created prior to calling ISQLiteManagedModule.BestIndex. Fix for [56f511d268].
- Correct marshalling of strings and blobs in the SQLiteValue class. Fix for [85b824b736].
- Various minor performance enhancements to the SQLiteDataReader class. Pursuant to [e122d26e70].
- Defer disposing of connections created by the static SQLiteCommand.Execute method when a data reader is returned. Fix for [daeaf3150a].
- Wrap SELECT statements in parenthesis if they have an ORDER BY, LIMIT, or OFFSET clause and a compound operator is involved. Fix for [0a32885109].
- In the SQLiteDataReader.VerifyType method, remove duplicate "if" statement for the DbType.SByte value and move the remaining "if" to the Int64 affinity. Fix for [c5cc2fb334]. ** Potentially Incompatible Change **
- Handle Julian Day values that fall outside of the supported range for OLE Automation dates. Fix for [3e783eecbe]. ** Potentially Incompatible Change **
- Make sure the interop files are copied when publishing a project that refers to a NuGet package containing them. Fix for [e796ac82c1]. ** Potentially Incompatible Change **
- Make sure the interop files are copied before the PostBuildEvent. Fix for [f16c93a932]. ** Potentially Incompatible Change **
- Modify GetSchemaTable method to avoid setting SchemaTableColumn.IsKey column to true when more than one table is referenced. Fix for [47c6fa04d3]. ** Potentially Incompatible Change **
- Add AppendManifestToken_SQLiteProviderManifest environment variable to enable better integration between LINQ and the underlying store connection.
- Add SQLite_ForceLogPrepare environment variable to force logging of all prepared SQL regardless of the flags for the associated connection.
- Honor the DateTimeFormat, DateTimeKind, DateTimeFormatString, BinaryGUID connection string and/or provider manifest token properties from within the LINQ assembly. Fix for [8d928c3e88]. ** Potentially Incompatible Change **
- Add PrepareRetries connection string property to allow the maximum number of retries when preparing a query to be overridden. Fix for [647d282d11].
- Add BindDateTimeWithKind connection flag to force DateTime parameter values to match the DateTimeKind associated with the connection, if applicable. Fix for [a7d04fb111].
1.0.94.0 - September 9, 2014
- Updated to SQLite 3.8.6.
- Updated to Entity Framework 6.1.1.
- Refactor and simplify NuGet packages in order to support per-solution SQLite interop assembly files. ** Potentially Incompatible Change **
- Add RefreshFlags method to the SQLiteDataReader class to forcibly refresh its connection flags.
- Improve automatic detection and handling of the Entity Framework 6 assembly by the design-time components installer. Pursuant to [e634e330a6]. ** Potentially Incompatible Change **
- Improve SQLiteDataReader performance slightly by caching the connection flags. ** Potentially Incompatible Change **
- Add ClearCachedSettings method to the SQLiteConnection class.
- Add NoConvertSettings connection flag to disable querying of runtime configuration settings from within the SQLiteConvert class. Pursuant to [58ed318f2f].
- Minimize usage of the "Use_SQLiteConvert_DefaultDbType" and "Use_SQLiteConvert_DefaultTypeName" settings. Fix for [58ed318f2f]. ** Potentially Incompatible Change **
1.0.93.0 - June 23, 2014
- Updated to SQLite 3.8.5.
- Updated to Entity Framework 6.1.
- Add support for mapping transaction isolation levels to their legacy default values. Pursuant to [56b42d99c1].
- Add support for setting the default DbType and type name used for mappings on a per-connection basis. Pursuant to [3c00ec5b52].
- Add DetectTextAffinity and DetectStringType connection flags to enable automatic detection of column types, when necessary. Pursuant to [3c00ec5b52].
- Add SetChunkSize method to the SQLiteConnection class. Pursuant to [d1c008fa0a].
- Add SharedFlags static property to the SQLiteConnection class.
- Make the ISQLiteSchemaExtensions interface public. ** Potentially Incompatible Change **
- Have the SQLiteProviderFactory class (in the System.Data.SQLite.Linq assembly) implement the IServiceProvider interface.
- Fix bug in documentation generator automation that prevented some internal documentation links from working.
- Fix DateTime constant handling in the LINQ assembly. Fix for [da9f18d039]. ** Potentially Incompatible Change **
1.0.92.0 - March 19, 2014
- Updated to SQLite 3.8.4.1.
- Update the list of keywords returned by SQLiteConnection.GetSchema("ReservedWords"). ** Potentially Incompatible Change **
- Raise the static SQLiteConnection.Changed event when any SQLiteCommand or SQLiteDataReader object is closed or disposed.
- Add the SQLiteDataReader.StepCount property to return the number of rows seen so far.
- Add StickyHasRows connection flag to cause the SQLiteDataReader.HasRows property to return non-zero if there were ever any rows in the associated result sets.
- When the TraceWarning connection flag is set, issue warnings about possibly malformed UNC paths. Pursuant to [283344397b].
- Convert the primary NuGet package, "System.Data.SQLite", into a meta-package.
- Enhancements to the NuGet packages, including the new "modular" packages.
1.0.91.0 - February 12, 2014
- Updated to SQLite 3.8.3.1.
- Refresh all included SQLite core library documentation (e.g. SQL syntax).
- Add support for Entity Framework 6.
- Add support for per-connection mappings between type names and DbType values. Pursuant to [e87af1d06a].
- Modify the namespace used for all internal classes in the System.Data.SQLite.Linq assembly. ** Potentially Incompatible Change **
- Add SQLiteCompileOptions and InteropCompileOptions properties to the SQLiteConnection class to return the compile-time options for the SQLite core library and interop assembly, respectively.
- Add BindInvariantText and ConvertInvariantText connection flags to force the invariant culture to be used when converting parameter values to/from strings.
- Add NoConnectionPool and UseConnectionPool connection flags to disable or enable connection pooling by default.
- Modify handling of the design-time components installer to run Visual Studio devenv.exe /setup after installing the package. This appears to be necessary in some circumstances for Visual Studio 2013. Pursuant to [a47eff2c71].
- Modify the native library pre-loader to support reading settings from an XML configuration file and to be capable of checking more than one directory. Persuant to [f0246d1817].
- Support detecting when the native library pre-loader should use the CodeBase property instead of the Location property as the basis for locating the interop assembly.
- Change the default behavior for the native library pre-loader so it first searches the executing (i.e. System.Data.SQLite) assembly directory and then the application domain directory. Pursuant to [f0246d1817]. ** Potentially Incompatible Change **
- Include DbType.AnsiString in the list of types that need special ColumnSize handling. Fix for [0550f0326e].
1.0.90.0 - December 23, 2013
- Updated to SQLite 3.8.2.
- Add Visual Studio 2013 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2013 support to the redesigned designer support installer.
- Add support for Windows Embedded Compact 2013.
- Add experimental support for the native regexp extension.
- Never create a new connection wrapper in the SQLiteConnection.Shutdown method. ** Potentially Incompatible Change **
- Add experimental GetMemoryStatistics, ReleaseMemory, and Shutdown methods to the SQLiteConnection class.
- Add memory leak detection to the test project for the .NET Compact Framework.
- Add SQLITE_ENABLE_MEMORY_MANAGEMENT compile-time option to the interop assembly.
- Use current isolation level when enlisting into an existing transaction. Fix for [56b42d99c1].
- Better handling of non-error log messages from the SQLite core library. Pursuant to [44df10ea90].
- Add TraceWarning connection flag to enable tracing of type mapping failures and disable tracing of them by default. Pursuant to [6d45c782e4].
- Use 32-bit values to keep track of numeric precision and scale when building the schema table for a query. Fix for [ef2216192d].
1.0.89.0 - October 28, 2013
- Updated to SQLite 3.8.1.
- Add AutoCommit property to the SQLiteConnection class. Fix for [9ba9346f75].
- Use declared column sizes for the AnsiStringFixedLength and StringFixedLength mapped database types. Fix for [3113734605].
- Check the result of sqlite3_column_name function against NULL.
- Return false for the SQLiteParameterCollection.IsSynchronized property because it is not thread-safe.
- Raise the static SQLiteConnection.Changed event when any SQLiteCommand, SQLiteDataReader, or CriticalHandle derived object instance is created. Fix for [aba4549801].
- Add SQLiteCommand.Execute, SQLiteCommand.ExecuteNonQuery, and SQLiteCommand.ExecuteScalar method overloads that take a CommandBehavior parameter.
- Revise how the extra object data is passed to the static SQLiteConnection.Changed event. ** Potentially Incompatible Change **
- Make sure the database cannot be changed by a query when the CommandBehavior.SchemaOnly flag is used. Fix for [f8dbab8baf]. ** Potentially Incompatible Change **
- Fix bug in NDoc3 that was preventing some of the MSDN documentation links from working.
- Include the XML documentation files in the NuGet packages. Fix for [5970d5b0a6].
- Add InteropVersion, InteropSourceId, ProviderVersion, and ProviderSourceId properties to the SQLiteConnection class.
- Add experimental support for interfacing with the authorizer callback in the SQLite core library.
- Add experimental support for the native totype extension.
1.0.88.0 - August 7, 2013
- Various fixes to managed virtual table integration infrastructure.
- Implement workaround for an incorrect PROCESSOR_ARCHITECTURE being reported. Fix for [9ac9862611].
- Modify classes that implement the IDisposable pattern to set the disposed flag after their base classes have been disposed.
- When automatically registering custom functions, use the executing assembly (i.e. System.Data.SQLite) for reference detection. Fix for [4e49a58c4c].
1.0.87.0 - July 8, 2013
- Add all the necessary infrastructure to allow virtual tables to be implemented in managed code. Fix for [9a544991be].
- The DbType to type name translation needs to prioritize the Entity Framework type names. Fix for [47f4bac575].
- Add DateTimeFormatString connection string property to allow the DateTime format string used for all parsing and formatting to be overridden.
- Add NoFunctions connection flag to skip binding functions registered in the application domain.
- Add several data-types for compatibility purposes. Fix for [fe50b8c2e8].
- Add SQLiteConnection.BindFunction method to facilitate adding custom functions on a per-connection basis.
- When reading a DateTime value, avoid unnecessary string conversions. Fix for [4d87fbc742].
- Modify the index introspection code so that it does not treat PRAGMA table_info "pk" column values as boolean. Fix for [f2c47a01eb].
- Disable use of the new connection string parsing algorithm when the No_SQLiteConnectionNewParser environment variable is set. Pursuant to [bbdda6eae2].
- Rename the ReturnCode property of the SQLiteException class to ResultCode. ** Potentially Incompatible Change **
1.0.86.0 - May 23, 2013
- Updated to SQLite 3.7.17.
- Disable use of the AllowPartiallyTrustedCallers attribute when compiled for the .NET Framework 4.0/4.5. ** Potentially Incompatible Change **
- Allow semi-colons in the data source file name. Fix for [e47b3d8346]. ** Potentially Incompatible Change **
- NULL values should be reported as type "object", not "DBNull". Fix for [48a6b8e4ca].
1.0.85.0 - April 18, 2013
- Updated to SQLite 3.7.16.2.
- Properly handle embedded NUL characters in parameter and column values. Fix for [3567020edf].
- Make use of the sqlite3_prepare_v2 function when applicable.
- Check for a valid row in the SQLiteDataReader.GetValue method.
- Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).
- Support automated testing when running on the .NET Compact Framework 2.0.
- Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to [e4c8121f7b].
- Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to [1c456ae75f].
- Add static Execute method to the SQLiteCommand class.
- Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to [393d954be0].
- Add public constructor to the SQLiteDataAdapter class that allows passing the parseViaFramework parameter to the SQLiteConnection constructor.
- When built with the CHECK_STATE compile-time option, skip throwing exceptions from the SQLiteDataReader class when the object is being disposed.
- Support automatic value conversions for columns with a declared type of BIGUINT, INTEGER8, INTEGER16, INTEGER32, INTEGER64, SMALLUINT, TINYSINT, UNSIGNEDINTEGER, UNSIGNEDINTEGER8, UNSIGNEDINTEGER16, UNSIGNEDINTEGER32, UNSIGNEDINTEGER64, INT8, INT16, INT32, INT64, UINT, UINT8, UINT16, UINT32, UINT64, or ULONG.
- Add BindUInt32AsInt64 connection flag to force binding of UInt32 values as Int64 instead. Pursuant to [c010fa6584].
- Add BindAllAsText and GetAllAsText connection flags to force binding and returning of all values as text.
- Remove AUTOINCREMENT from the column type name map. ** Potentially Incompatible Change **
- Avoid throwing overflow exceptions from the SQLite3.GetValue method for integral column types. Partial fix for [c010fa6584]. ** Potentially Incompatible Change **
- Use the legacy connection closing algorithm when built with the INTEROP_LEGACY_CLOSE compile-time option.
- Support using the directory containing the primary managed-only assembly as the basis for native library pre-loading.
- Still further enhancements to the build and test automation.
1.0.84.0 - January 9, 2013
- Updated to SQLite 3.7.15.2.
- Explicitly dispose of all SQLiteCommand objects managed by the DbDataAdapter class. Fix for [6434e23a0f].
- Add Cancel method to the SQLiteConnection class to interrupt a long running query.
- Improve thread safety of the SQLiteLog.LogMessage method.
1.0.83.0 - December 29, 2012
- Updated to SQLite 3.7.15.1.
- Add Visual Studio 2012 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2012 support to the redesigned designer support installer.
- Allow opened connections to skip adding the extension functions included in the interop assembly via the new NoExtensionFunctions connection flag.
- Support loading of SQLite extensions via the new EnableExtensions and LoadExtension methods of the SQLiteConnection class. Pursuant to [17045010df].
- Remove one set of surrounding single or double quotes from property names and values parsed from the connection string. Fix for [b4cc611998].
- Modify parsing of connection strings to allow property names and values to be quoted. ** Potentially Incompatible Change **
- Add ParseViaFramework property to the SQLiteConnection class to allow the built-in (i.e. framework provided) connection string parser to be used when opening a connection. Pursuant to [b4cc611998].
- Add notifications before and after any connection is opened and closed, as well as other related notifications, via the new static Changed event.
- Add an overload of the SQLiteLog.LogMessage method that takes a single string parameter.
- Add an overload of the SQLiteConnection.LogMessage method that takes a SQLiteErrorCode parameter.
- All applicable calls into the SQLite core library now return a SQLiteErrorCode instead of an integer error code.
- Make sure the error code of the SQLiteException class gets serialized.
- Make the test project for the .NET Compact Framework more flexible.
- When available, the new sqlite3_errstr function from the core library is used to get the error message for a specific return code.
- The SetMemoryStatus, Shutdown, ResultCode, ExtendedResultCode, and SetAvRetry methods of the SQLiteConnection class now return a SQLiteErrorCode instead of an integer error code. ** Potentially Incompatible Change **
- The public constructor for the SQLiteException now takes a SQLiteErrorCode instead of an integer error code. ** Potentially Incompatible Change **
- The ErrorCode property of the SQLiteException is now an Int32, to allow the property inherited from the base class to be properly overridden. ** Potentially Incompatible Change **
- The ErrorCode field of the LogEventArgs is now an object instead of an integer. ** Potentially Incompatible Change **
- The names and messages associated with the SQLiteErrorCode enumeration values have been normalized to match those in the SQLite core library. ** Potentially Incompatible Change **
- Implement more robust locking semantics for the CriticalHandle derived classes when compiled for the .NET Compact Framework.
- Cache column indexes as they are looked up when using the SQLiteDataReader to improve performance.
- Prevent the SQLiteConnection.Close method from throwing non-fatal exceptions during its disposal.
- Rename the interop assembly functions sqlite3_cursor_rowid, sqlite3_context_collcompare, sqlite3_context_collseq, sqlite3_cursor_rowid, and sqlite3_table_cursor to include an "_interop" suffix. ** Potentially Incompatible Change **
- Prevent the LastInsertRowId, MemoryUsed, and MemoryHighwater connection properties from throwing NotSupportedException when running on the .NET Compact Framework. Fix for [dd45aba387].
- Improve automatic detection of the sqlite3_close_v2 function when compiled to use the standard SQLite library.
- Add protection against ThreadAbortException asynchronously interrupting native resource initialization and finalization.
- Add native logging callback for use with the sqlite3_log function to the interop assembly, enabled via the INTEROP_LOG preprocessor definition.
- Add various diagnostic messages to the interop assembly, enabled via flags in the INTEROP_DEBUG preprocessor definition.
- Further enhancements to the build and test automation.
- Add test automation for the Windows CE binaries.
1.0.82.0 - September 3, 2012
- Updated to SQLite 3.7.14.
- Properly handle quoted data source values in the connection string. Fix for [8c3bee31c8].
- The primary NuGet package now supports x86 / x64 and the .NET Framework 2.0 / 4.0 (i.e. in a single package).
- Change the default value for the Synchronous connection string property to Full to match the default used by the SQLite core library itself. ** Potentially Incompatible Change **
- Add the ability to skip applying default connection settings to opened databases via the new SetDefaults connection string property.
- Add the ability to skip expanding data source file names to their fully qualified paths via the new ToFullPath connection string property.
- Fix the database cleanup ordering in the tests for ticket [343d392b51].
- Add support for the sqlite3_close_v2 function from the SQLite core library.
- Add support for URI file names via the new FullUri connection string property.
- Improve support for the standard SQLite core library in the LINQ assembly and the test suite.
- Add SetMemoryStatus static method to the SQLiteConnection class.
- Improve threaded handling of the delegate used by the SQLiteLog class.
- Add define constants to support enabling or disabling individual groups of trace statements.
1.0.81.0 - May 27, 2012
- Updated to SQLite 3.7.12.1.
- Support compiling the interop assembly without support for the custom extension functions and the CryptoAPI-based (RC4) codec.
- Add DefineConstants property to the SQLiteConnection class to return the list of define constants used when compiling the core managed assembly.
- Add release archive verification tool to the release automation.
- Fix NullReferenceException when calling the SQLiteDataAdapter.FillSchema method on a query that returns multiple result sets. Fix for [3aa50d8413].
- Fix subtle race condition between threads fetching connection handles from the connection pool and any garbage collection (GC) threads that may be running. Fix for [996d13cd87].
- Add missing call to SetTimeout in the SQLite3_UTF16.Open method.
- Add checks to prevent the SQLiteConnectionPool.Remove method from returning any connection handles that are closed or invalid.
- Modify static SQLiteBase helper methods to prevent them from passing IntPtr.Zero to the SQLite native library.
- Remove static locks from the static helper methods in the SQLiteBase class, replacing them with a lock on the connection handle instance being operated upon.
- Revise CriticalHandle derived classes to make them more thread-safe.
- Add connection pool related diagnostic messages when compiled with the DEBUG define constant.
- Add PoolCount property to the SQLiteConnection class to return the number of pool entries for the file name associated with the connection.
- Rename internal SQLiteLastError methods to GetLastError.
- Add assembly file test constraints to all tests that execute the "test.exe" or "testlinq.exe" files.
1.0.80.0 - April 1, 2012
- Updated to SQLite 3.7.11.
- In the SQLiteFunction class, when calling user-provided methods from a delegate called by native code, avoid throwing exceptions, optionally tracing the caught exceptions. Fix for [8a426d12eb].
- Add Visual Studio 2005 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2005 support to the redesigned designer support installer.
- Add experimental support for "pre-loading" the native SQLite library based on the processor architecture of the current process. This feature is now enabled by default at compile-time.
- Add support for the native SQLite Online Backup API. Fix for [c71846ed57].
- Acquire and hold a static data lock while checking if the native SQLite library has been initialized to prevent a subtle race condition that can result in superfluous error messages. Fix for [72905c9a77].
- Support tracing of all parameter binding activity and use the connection flags to control what is traced.
- When converting a DateTime instance of an "Unspecified" kind to a string, use the same kind as the connection, if available.
- Add overload of the SQLiteDataReader.GetValues method that returns a NameValueCollection.
- Add static ToUnixEpoch method to the SQLiteConvert class to convert a DateTime value to the number of whole seconds since the Unix epoch.
- In the implicit conversion operators (to IntPtr) for both the SQLiteConnectionHandle and SQLiteStatementHandle classes, return IntPtr.Zero if the instance being converted is null.
- Write warning message to the active trace listeners (for the Debug build configuration only) if a column type or type name cannot be mapped properly. See [4bbf851fa5].
- When tracing SQL statements to be prepared, bypass the internal length limit of the sqlite3_log function by using the SQLiteLog class directly instead. Also, detect null and/or empty strings and emit a special message in that case.
- For the setup, the Visual Studio task should only be initially checked if the GAC task is available and vice-versa.
- Improve compatibility with custom command processors by using __ECHO instead of _ECHO in batch tools.
- Add OpenAndReturn method to the SQLiteConnection class to open a connection and return it.
- Add missing CheckDisposed calls to the SQLiteConnection class.
- Add missing throw statement to the SQLiteConnection class.
- Make sure the interop project uses /fp:precise for Windows CE.
- Regenerate package load key to support loading the designer package into Visual Studio 2008 without having the matching SDK installed.
- Modify transaction object disposal so that it can never cause an exception to be thrown.
1.0.79.0 - January 28, 2012
- Use the WoW64 registry keys when installing the VS designer components on 64-bit Windows. Fix for [d8491abd0b].
- Correct resource name used by the LINQ assembly to locate several key string resources. Fix for [fbebb30da9].
1.0.78.0 - January 27, 2012
- Updated to SQLite 3.7.10
- Redesign the VS designer support installer and integrate it into the setup packages.
- When emitting SQL for foreign keys in the VS designer, be sure to take all returned schema rows into account. Remainder of fix for [b226147b37].
- Add Flags connection string property to control extra behavioral flags for the connection.
- Refactor all IDisposable implementations to conform to best practices, potentially eliminating leaks in certain circumstances.
- Even more enhancements to the build and test automation.
- Support parameter binding to more primitive types, including unsigned integer types.
- Recognize the TIMESTAMP column data type as the DateTime type. Fix for [bb4b04d457].
- Prevent logging superfluous messages having to do with library initialization checking. Fix for [3fc172d1be].
- Support the DateTimeKind and BaseSchemaName connection string properties in the SQLiteConnectionStringBuilder class. Fix for [f3ec1e0066].
- Overloads of the SQLiteConvert.ToDateTime and SQLiteConvert.ToJulianDay methods that do not require an instance should be static. Partial fix for [4bbf851fa5]. ** Potentially Incompatible Change **
1.0.77.0 - November 28, 2011
- Updated to SQLite 3.7.9
- More enhancements to the build and test automation.
- Plug native memory leak when closing a database connection containing a statement that cannot be finalized for some reason.
- The SQLite3 class should always attempt to dispose the contained SQLiteConnectionHandle, even when called via the finalizer.
- When compiled with DEBUG defined, emit diagnostic information related to resource cleanup to any TraceListener objects that may be registered.
- Stop characterizing all log messages as errors. From now on, if the errorCode is zero, the message will not be considered an error.
- Never attempt to configure the native logging interface if the SQLite core library has already been initialized for the process. Fix for [2ce0870fad].
- Allow the SQLiteLog class to be used for logging messages without having an open connection.
- Support building the core System.Data.SQLite assemblies using the .NET Framework 4.0 Client Profile. Fix for [566f1ad1e4].
- When generating the schema based on the contents of a SQLiteDataReader, skip flagging columns as unique if the data reader is holding the result of some kind of multi-table construct (e.g. a cross join) because we must allow duplicate values in that case. Fix for [7e3fa93744].
- When returning schema information that may be used by the .NET Framework to construct dynamic SQL, use a fake schema name (instead of null) so that the table names will be properly qualified with the catalog name (i.e. the attached database name). Partial fix for [343d392b51].
- Add SQLiteSourceId property to the SQLiteConnection class to return the SQLite source identifier.
- Add MemoryUsed and MemoryHighwater properties to the SQLiteConnection class to help determine the memory usage of SQLite.
- Add DateTimeKind connection string property to control the DateTimeKind of parsed DateTime values. Partial fix for [343d392b51]. ** Potentially Incompatible Change **
- Improve the robustness of the SQLiteLog class when it will be initialized and unloaded multiple times.
- Fix the name of the interop assembly for Windows CE. Add unit tests to prevent this type of issue from happening again. Fix for [737ca4ff74].
- Formally support the SQL type name BOOLEAN in addition to BOOL. Fix for [544dba0a2f].
- Make sure the SQLiteConvert.TypeNameToDbType method is thread-safe. Fix for [84718e79fa].
1.0.76.0 - October 4, 2011
- Prevent the domain unload event handler in SQLiteLog from being registered multiple times. Fix for [0d5b1ef362].
- Stop allowing non-default application domains to initialize the SQLiteLog class. Fix for [ac47dd230a].
1.0.75.0 - October 3, 2011
- Updated to SQLite 3.7.8
- More enhancements to the build system.
- Add official NuGet packages for x86 and x64.
- Add Changes and LastInsertRowId properties to the connection class.
- Support more formats when converting data from/to the DateTime type.
- Make all the assembly versioning attributes consistent.
- Add unit testing infrastructure using Eagle.
- Integrate all legacy unit tests, including the "testlinq" project, into the new test suite.
- Add projects to build the interop assembly statically linked to the Visual C++ runtime. Fix for [53f0c5cbf6].
- Add SQLITE_ENABLE_STAT2 compile-time option to the interop assembly. Fix for [74807fbf27].
- Fix mutex issues exposed when running the test suite with the debug version of SQLite.
- Fix transaction enlistment when repeated attempts are made to enlist in the same transaction. Fix for [ccfa69fc32].
- Support the SQLITE_FCNTL_WIN32_AV_RETRY file control to mitigate the impact of file sharing violations caused by external processes.
- Refactor the logging interface to be thread-safe and self-initializing.
- Shutdown the SQLite native interface when the AppDomain is being unloaded. Fix for [b4a7ddc83f].
- Support Skip operation for LINQ using OFFSET. Fix for [8b7d179c3c].
- Support EndsWith operation for LINQ using SUBSTR. Fix for [59edc1018b].
- Support all SQLite journal modes. Fix for [448d663d11].
- Do not throw exceptions when disposing SQLiteDataReader. Fix for [e1b2e0f769].
- The REAL type should be mapped to System.Double. Fix for [2c630bffa7] and [b0a5990f48].
- Minor optimization to GetParamValueBytes(). Fix for [201128cc88].
- Support the ON UPDATE, ON DELETE, and MATCH clause information when generating schema metadata for foreign keys. Partial fix for [b226147b37]. VS designer changes are not yet tested.
- Fix incorrect resource name for SR.resx in the mixed-mode assembly.
- Reduce the number of String.Compare() calls in the hot path for SQLiteCommand.ExecuteReader().
1.0.74.0 - July 4, 2011
- Updated to SQLite 3.7.7.1
- Fix incorrect hard-coded .NET Framework version information SQLiteFactory_Linq.cs that was causing IServiceProvider.GetService to fail when running against the .NET Framework 3.5.
- Fix all XML documentation warnings.
- Restore support for the mixed-mode assembly (i.e. the one that can be registered in the Global Assembly Cache).
- Restore support for the Compact Framework.
- Remove unused "using" statements from the System.Data.SQLite and System.Data.SQLite.Linq projects.
- Remove hard-coded System.Data.SQLite.Linq version from SQLiteFactory_Linq.cs
- Modify the setup to support bundled packages (i.e. with the mixed-mode assembly) and standard packages (i.e. with the managed assembly separate from the native interop library).
- Disable the ability to register with the Global Assembly Cache in the standard setup package (i.e. it is available in the bundled setup only).
- Remove PATH modification from the setup.
- Modify the naming scheme for the source, setup, and binary packages to allow for the necessary variants.
- In the build automation, attempt to automatically detect if Visual Studio 2008 and/or 2010 are installed and support building binaries for both at once, when available.
- Add release automation to build the source, setup, and binary packages in all supported build variants.
- Add the testlinq project to the new build system and make it work properly with Visual Studio 2008 and 2010.
1.0.73.0 - June 2, 2011
- Updated to SQLite 3.7.6.3.
- Minor optimization to GetBytes(). Fix for [8c1650482e].
- Update various assembly information settings.
- Correct System.Data.SQLite.Linq version and resource information. Fix for [6489c5a396] and [133daf50d6].
- Moved log handler from SQLiteConnection object to SQLiteFactory object to prevent if from being prematurely GCed.
- We should block x64 installs on x86 and we should install native only if the setup package itself is native. Fix for [e058ce156e].
1.0.72.0 - May 1, 2011
- Add the correct directory to the path. Fix for [50515a0c8e].
1.0.71.0 - April 27, 2011
- Updated to SQLite 3.7.6+ [1bd1484cd7] to get additional Windows error logging.
- Updated setup to optionally add install directory to PATH if GAC option selected.
1.0.70.0 - April 22, 2011
- Added support for sqlite3_extended_result_codes(), sqlite3_errcode(), and sqlite3_extended_errcode() via SetExtendedResultCodes(), ResultCode(), and ExtendedResultCode().
- Added support for SQLITE_CONFIG_LOG via SQLiteLogEventHandler().
1.0.69.0 - April 12, 2011
- Code merge with SQLite 3.7.6.
- New VS2008 and VS2010 solution files.
- Build and packaging automation.
- New Inno Setup files.
- Designer support currently not ready for release.
1.0.68.0 - February 2011
- Code merge with SQLite 3.7.5.
- Continuing work on supporting Visual Studio 2010.
1.0.67.0 - January 3, 2011
- Code merge with SQLite 3.7.4.
- Continuing work on supporting Visual Studio 2010.