Index: Doc/Extra/Provider/optimizing.html ================================================================== --- Doc/Extra/Provider/optimizing.html +++ Doc/Extra/Provider/optimizing.html @@ -45,11 +45,11 @@

Tips on Optimizing Your Queries

The next few paragraphs will attempt to give you a few rudimentary rules for speeding up your queries in general, and especially how SQLite is adversely affected by the kinds of SQL behaviors you may have taken for granted in other providers. It is by no means a complete optimization guide. For even more - details on optimizing your queries, visit sqlite.org.

+ details on optimizing your queries, visit sqlite.org.

The Importance of Transactions

If you are inserting data in SQLite without first starting a transaction: DO NOT PASS GO! Call BeginTransaction() right now, and finish with Commit()! If you think I'm kidding, think again. SQLite's A.C.I.D. design means that every single time you insert any data outside a transaction, an implicit Index: Doc/Extra/Provider/version.html ================================================================== --- Doc/Extra/Provider/version.html +++ Doc/Extra/Provider/version.html @@ -43,180 +43,180 @@

Version History

1.0.95.0 - February XX, 2015 (release scheduled)

1.0.94.0 - September 9, 2014

1.0.93.0 - June 23, 2014

1.0.92.0 - March 19, 2014

    -
  • Updated to SQLite 3.8.4.1.
  • +
  • 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].
  • +
  • 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.
  • +
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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.
  • +
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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 **
  • +
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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 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 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].
  • +
  • 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.
  • +
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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 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 **
  • +
  • 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].
  • +
  • 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.
  • +
  • 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].
  • +
  • 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 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.
  • @@ -229,42 +229,42 @@
  • 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].
  • +
  • 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).
  • +
  • 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].
  • +
  • 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.
  • +
  • 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.
  • +
  • Updated to SQLite 3.7.12.1.
  • 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].
  • +
  • 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.
  • @@ -273,23 +273,23 @@
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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.
  • @@ -298,83 +298,83 @@
  • 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].
  • +
  • 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.
  • +
  • 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].
  • +
  • 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 **
  • +
  • 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.
  • +
  • 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].
  • +
  • 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].
  • +
  • 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 **
  • +
  • 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].
  • +
  • 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].
  • +
  • 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.
  • +
  • Updated to SQLite 3.7.8.
  • More enhancements to the build system.
  • -
  • Add official NuGet packages for x86 and x64.
  • +
  • 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].
  • +
  • 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].
  • +
  • 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.
  • +
  • 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.
  • +
  • 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.
  • @@ -387,47 +387,47 @@
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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].
  • +
  • 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 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.
  • +
  • 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

1.0.67.0 - January 3, 2011

1.0.66.1 - August 1, 2010

1.0.69.0 - April 12, 2011

    -
  • Code merge with [http://www.sqlite.org/releaselog/3_7_6.html | SQLite 3.7.6].
  • +
  • Code merge with [https://www.sqlite.org/releaselog/3_7_6.html | 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 [http://www.sqlite.org/releaselog/3_7_5.html | SQLite 3.7.5].
  • +
  • Code merge with [https://www.sqlite.org/releaselog/3_7_5.html | SQLite 3.7.5].
  • Continuing work on supporting Visual Studio 2010.

1.0.67.0 - January 3, 2011

    -
  • Code merge with [http://www.sqlite.org/releaselog/3_7_4.html | SQLite 3.7.4].
  • +
  • Code merge with [https://www.sqlite.org/releaselog/3_7_4.html | SQLite 3.7.4].
  • Continuing work on supporting Visual Studio 2010.
Index: www/release.wiki ================================================================== --- www/release.wiki +++ www/release.wiki @@ -202,20 +202,20 @@
  • Change the current directory to "<root>\Doc".
  • Enter the following command to build all the documentation in - [http://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help | CHM] + [https://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help | CHM] format:

    tclsh.exe buildChm.tcl

    - This assumes that [http://www.activestate.com/activetcl | ActiveTcl] + This assumes that [https://www.activestate.com/activetcl | ActiveTcl] version 8.4 or later, the - [http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21138 | HTML Help Workshop], + [https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21138 | HTML Help Workshop], and [http://ndoc3.sourceforge.net/ | NDoc3] have all been installed using the default settings.
  • @@ -323,12 +323,12 @@

    ..\Externals\Eagle\bin\EagleShell.exe -file verify.eagle Output true

    - This assumes that the Fossil, - Inno Setup Unpacker, + This assumes that the Fossil, + Inno Setup Unpacker, UnRAR, and UnZip binaries are available in the locations specified via the "FossilTool", "InnoUnpackTool", "UnRARTool", and "UnZipTool" environment variables, respectively. @@ -355,12 +355,12 @@
    build_nuget.bat

    This assumes that the NuGet binary is available somewhere along the - [http://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH].
    Please refer - to [http://docs.nuget.org/ | NuGet Documentation] for further details.
    + [https://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH].
    Please refer + to [https://docs.nuget.org/ | NuGet Documentation] for further details.

    Update Downloads Page

    @@ -382,14 +382,14 @@

    tclsh.exe updateFileInfo.tcl

    - This assumes that [http://www.activestate.com/activetcl | ActiveTcl] + This assumes that [https://www.activestate.com/activetcl | ActiveTcl] version 8.4 or later has been installed using the default settings and that the Fossil binary is available somewhere along the - [http://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH] (i.e. for + [https://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH] (i.e. for calculating the SHA1 hashes). @@ -398,18 +398,18 @@
    1. Upload all the release packages to the web site.
    2. Commit pending source code changes to the - [http://www.fossil-scm.org/ | Fossil] repository. + [https://www.fossil-scm.org/ | Fossil] repository.
    3. Tag the release in the Fossil repository.
    4. - Push the [http://www.nuget.org/ | NuGet] packages.
      - Please refer to [http://docs.nuget.org/ | NuGet Documentation] for + Push the [https://www.nuget.org/ | NuGet] packages.
      + Please refer to [https://docs.nuget.org/ | NuGet Documentation] for further details.
    5. Announce the release on the System.Data.SQLite mailing list.
    Index: www/source.wiki ================================================================== --- www/source.wiki +++ www/source.wiki @@ -25,21 +25,21 @@

    Obtain & Install Fossil Itself

    - The [http://www.fossil-scm.org | Fossil] open-source - [http://en.wikipedia.org/wiki/Distributed_revision_control | distributed version control] + The [https://www.fossil-scm.org | Fossil] open-source + [https://en.wikipedia.org/wiki/Distributed_revision_control | distributed version control] system is a computer program that must be installed on your machine before you use it. Fortunately, installing Fossil is very easy. Fossil consists of a single executable file that you simply download and run. For convenience, the Fossil executable file should be placed in a directory present in your - [http://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH]. To uninstall + [https://en.wikipedia.org/wiki/PATH_%28variable%29 | PATH]. To uninstall Fossil, simply delete the executable file. - [http://www.fossil-scm.org/index.html/doc/tip/www/quickstart.wiki | Detailed instructions] + [https://www.fossil-scm.org/index.html/doc/tip/www/quickstart.wiki | Detailed instructions] for installing and getting started with Fossil are available on the - [http://www.fossil-scm.org/ | Fossil website]. + [https://www.fossil-scm.org/ | Fossil website].

    Clone Repository (Windows)

    @@ -58,24 +58,24 @@ Enter the following command to create a complete clone (i.e. local copy) of the entire source code repository for the System.Data.SQLite project, including the entire check-in history:

    - fossil [http://www.fossil-scm.org/index.html/help/clone | clone] http://system.data.sqlite.org/ <repositories>/sds.fossil + fossil [https://www.fossil-scm.org/index.html/help/clone | clone] https://system.data.sqlite.org/ <repositories>/sds.fossil
  • Please note that the repository itself uses an - [http://www.fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki | enduring file format] + [https://www.fossil-scm.org/index.html/doc/trunk/www/fileformat.wiki | enduring file format] stored in a single - [http://www.fossil-scm.org/index.html/doc/trunk/www/tech_overview.wiki | SQLite database file] + [https://www.fossil-scm.org/index.html/doc/trunk/www/tech_overview.wiki | SQLite database file] with a particular schema.
  • In this case, after executing the - [http://www.fossil-scm.org/index.html/help/clone | clone] command, the local + [https://www.fossil-scm.org/index.html/help/clone | clone] command, the local clone of the repository will be placed into the "sds.fossil" file in the <repositories> directory.
  • @@ -96,11 +96,11 @@
  • Enter the following command to create a local working copy of all the files that are currently part of the System.Data.SQLite project:

    - fossil [http://www.fossil-scm.org/index.html/help/open | open] <repositories>/sds.fossil + fossil [https://www.fossil-scm.org/index.html/help/open | open] <repositories>/sds.fossil
  • The local source tree should now be ready for use as described in the [./build.wiki | build procedures] and/or [./test.wiki | test procedures]. @@ -111,8 +111,8 @@ the official System.Data.SQLite repository (i.e. instead of having to re-clone the entire thing), enter the following command from the same directory where the working copy is located:

    - fossil [http://www.fossil-scm.org/index.html/help/update | update] + fossil [https://www.fossil-scm.org/index.html/help/update | update]
  • Index: www/support.wiki ================================================================== --- www/support.wiki +++ www/support.wiki @@ -46,17 +46,17 @@ sqlite-users list are available at: