Community Support Policies
Effective May 1, 2017
Legacy CryptoAPI Codec
It will be disabled in all default build configurations.
However, it will still 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 mailing lists may still be used to ask questions about them.
However, any tickets opened for them will be deleted.
Release packages for non-current releases will be archived.
Access to archived release packages will be granted on a case-by-case basis.
18.104.22.168 - April XX, 2017 (release scheduled)
- Updated to SQLite 3.17.0.
- Add experimental support for native sha1 extension.
22.214.171.124 - 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 . ** 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 **
126.96.36.199 - 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].
188.8.131.52 - 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.
184.108.40.206 - April 19, 2016
- Updated to SQLite 3.12.2.
- Add binary package release for Mono on POSIX.
220.127.116.11 - 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 codec so that it no longer prevents page size changes.
18.104.22.168 - March 31, 2016
22.214.171.124 - 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.
126.96.36.199 - August 19, 2015
- Updated to SQLite 188.8.131.52.
- 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.
184.108.40.206 - May 26, 2015
- Updated to SQLite 220.127.116.11.
- 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].
18.104.22.168 - 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].
22.214.171.124 - March 2, 2015
- Updated to SQLite 126.96.36.199.
- 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].
188.8.131.52 - 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 **
184.108.40.206 - 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 **
220.127.116.11 - March 19, 2014
- Updated to SQLite 18.104.22.168.
- 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.
22.214.171.124 - February 12, 2014
- Updated to SQLite 126.96.36.199.
- 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].
188.8.131.52 - 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].
184.108.40.206 - 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 .
- 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.
220.127.116.11 - 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].
18.104.22.168 - 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 **
22.214.171.124 - 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].
126.96.36.199 - April 18, 2013
- Updated to SQLite 188.8.131.52.
- 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.
184.108.40.206 - January 9, 2013
- Updated to SQLite 220.127.116.11.
- 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.
18.104.22.168 - December 29, 2012
- Updated to SQLite 22.214.171.124.
- 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.
126.96.36.199 - 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.
188.8.131.52 - May 27, 2012
- Updated to SQLite 184.108.40.206.
- Support compiling the interop assembly without support for the custom extension functions and the CryptoAPI based 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.
220.127.116.11 - 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.
18.104.22.168 - 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].
22.214.171.124 - 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 **
126.96.36.199 - 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].
188.8.131.52 - 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].
184.108.40.206 - 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().
220.127.116.11 - July 4, 2011
- Updated to SQLite 18.104.22.168
- 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.
22.214.171.124 - June 2, 2011
- Updated to SQLite 126.96.36.199.
- 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].
188.8.131.52 - May 1, 2011
- Add the correct directory to the path. Fix for [50515a0c8e].
184.108.40.206 - 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.
220.127.116.11 - 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().
18.104.22.168 - 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.
22.214.171.124 - February 2011
- Code merge with SQLite 3.7.5.
- Continuing work on supporting Visual Studio 2010.
126.96.36.199 - January 3, 2011
- Code merge with SQLite 3.7.4.
- Continuing work on supporting Visual Studio 2010.