- Handle SQLite interruption in Get statements.
- Add
SQLiteConnection.BeginTransaction(bool deferred)
: #53.
- Improve efficiency of calling
IsDBNull
thenGetValue
(for the same field).
- Fix failure to bind an empty
byte[]
as a SQLiteParameter value.- This regression was introduced in 3.3.1.
- Fix
InvalidCastException
reading 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.0
only) to return direct access to SQLite's memory forBLOB
andTEXT
columns. - Implement
SQLiteDataReader.GetFieldValue<T>
. - Implement
GetInt32
,GetInt64
,GetGuid
,GetDouble
, etc., without boxing a temporary value. - Implemented synchronous
Read
andNextResult
methods 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.Sql
lazy. - Remove use of
Regex
for parsingDataSource
.
- Make
- Performance optimizations for .NET 5.0:
- Use
stackalloc
for temporary allocations. - Use
ArrayPool<byte>
for longer-lived allocations.
- Use
- Move DllImportResolver code to
ModuleInitializer
to workaround differences in Mono runtime.- Mono does not run the static constructor before evaluating the
DllImport
library 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.0
target platform.
SQLiteLog
only callssqlite3_config
to initialize logging when an event handler is attached toSQLiteLog.Log
.- It is no longer called automatically from the
SQLiteConnection
constructor. This fixes aTypeInitializationException
andAppDomainUnloadedException
inSQLiteLog
. - 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 noLog
events will be raised.
- It is no longer called automatically from the
- Support
JournalSizeLimit
andPersistWal
connection string options.
- Support URI filenames.
- Supported frameworks:
netstandard2.0
,net472
,xamarin.ios10
,monoandroid81
- Add
net47
target platform.
- Rewrite
SQLiteConnection.StatementCompleted
to usesqlite3_trace_v2
API 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.