- Handle SQLite interruption in Get statements.
- Add
SQLiteConnection.BeginTransaction(bool deferred): #53.
- Improve efficiency of calling
IsDBNullthenGetValue(for the same field).
- Fix failure to bind an empty
byte[]as a SQLiteParameter value.- This regression was introduced in 3.3.1.
- Fix
InvalidCastExceptionreading the results of an expression or subquery.- This regression was introduced in 3.3.0.
- Support
ArraySegment<byte>,Memory<byte>andReadOnlyMemory<byte>as parameter values.
- Add
SQLiteDataReader.GetReadOnlySpan(net5.0only) to return direct access to SQLite's memory forBLOBandTEXTcolumns. - Implement
SQLiteDataReader.GetFieldValue<T>. - Implement
GetInt32,GetInt64,GetGuid,GetDouble, etc., without boxing a temporary value. - Implemented synchronous
ReadandNextResultmethods slightly more efficiently.
- Eliminate allocations in common code paths.
- Fix bug introduced in 3.2.3 that failed to bind a parameter value set to the empty string (
"").
- Workaround limitation with AMD64 varargs methods on Unix (macOS) when initializing logging in
SQLiteLog. - Performance optimizatons:
- Make
StatementCompletedEventArgs.Sqllazy. - Remove use of
Regexfor parsingDataSource.
- Make
- Performance optimizations for .NET 5.0:
- Use
stackallocfor temporary allocations. - Use
ArrayPool<byte>for longer-lived allocations.
- Use
- Move DllImportResolver code to
ModuleInitializerto workaround differences in Mono runtime.- Mono does not run the static constructor before evaluating the
DllImportlibrary if the first use of the class is to a P/Invoke method.
- Mono does not run the static constructor before evaluating the
- Add
net5.0target platform.
SQLiteLogonly callssqlite3_configto initialize logging when an event handler is attached toSQLiteLog.Log.- It is no longer called automatically from the
SQLiteConnectionconstructor. This fixes aTypeInitializationExceptionandAppDomainUnloadedExceptioninSQLiteLog. - If you are using
SQLiteLog.Log, you must attach an event handler before calling any other methods of this library. This is a limitation of SQLite. - If other methods in this library are used before
SQLiteLog.Log, the native event handler will fail to be installed properly, and noLogevents will be raised.
- It is no longer called automatically from the
- Support
JournalSizeLimitandPersistWalconnection string options.
- Support URI filenames.
- Supported frameworks:
netstandard2.0,net472,xamarin.ios10,monoandroid81
- Add
net47target platform.
- Rewrite
SQLiteConnection.StatementCompletedto usesqlite3_trace_v2API internally: #29.- This requires SQLite 3.14 or later.
- Use
DateTimeStyles.AdjustToUniversal: #24.
- Create more informative error messages in
SQLiteException.
- Fix the native interop signature for
sqlite3_interrupt.
- Sleep in native code when the database is busy. This reduces managed/native interop.