- File www/news.wiki — part of check-in [d2d80220a8] at 2013-06-26 02:20:18 on branch trunk — Modify the result code handling performed by the SQLiteModuleNoop class in order to make it more flexible for use with derived classes. Rename the ReturnCode property of the SQLiteException class to ResultCode. (user: mistachkin size: 26774)
22.214.171.124 - June XX, 2013 (release scheduled)
- 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.
- 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 **
126.96.36.199 - 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].
188.8.131.52 - April 18, 2013
- Updated to SQLite 184.108.40.206.
- 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.
220.127.116.11 - January 9, 2013
- Updated to SQLite 18.104.22.168.
- 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.
22.214.171.124 - December 29, 2012
- Updated to SQLite 126.96.36.199.
- 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.
188.8.131.52 - 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.
184.108.40.206 - May 27, 2012
- Updated to SQLite 220.127.116.11.
- 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.
18.104.22.168 - 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.
22.214.171.124 - 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].
126.96.36.199 - 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 **
188.8.131.52 - 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].
184.108.40.206 - 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].
220.127.116.11 - 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().
18.104.22.168 - July 4, 2011
- Updated to SQLite 22.214.171.124
- 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.
126.96.36.199 - June 2, 2011
- Updated to SQLite 188.8.131.52.
- 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].
184.108.40.206 - May 1, 2011
- Add the correct directory to the path. Fix for [50515a0c8e].
220.127.116.11 - 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.
18.104.22.168 - 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().
22.214.171.124 - 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.
126.96.36.199 - February 2011
- Code merge with SQLite 3.7.5.
- Continuing work on supporting Visual Studio 2010.
188.8.131.52 - January 3, 2011
- Code merge with SQLite 3.7.4.
- Continuing work on supporting Visual Studio 2010.