Releases: vapor/sqlite-nio
Embed sqlite amalgamation v3.40.0 source code
This patch was authored by @Austinpayne and released by @gwynne.
This PR removes dependence on a system libsqlite3
by embedding the amalgamation (single source file) release of sqlite3 in vendored form. The included source code is fetched from https://sqlite.org/download.html. (#35)
Projects which include logic in their Dockerfile
and/or CI workflows to ensure that the libsqlite3-dev
package (or equivalent) is installed on the build image can now safely remove it, but are not required to do so. No additional actions are necessary to take advantage of any additional features supported by the embedded library; SQLKit and Fluent will detect their availability automatically when possible (most notably UPSERT
support).
Closes #32
Support for reporting SQLite version numbers to clients
This patch was authored and released by @gwynne.
The sqlite3_libversion()
and sqlite3_libversion_number()
APIs are now wrapped by public static Swift methods on SQLConnection
, making it simpler for clients to find out what version is in use. Provides necessary support for a corresponding update to enable version-specific feature support in vapor/sqlite-kit.
Additional changes:
- Dropped support for Swift versions up to and including 5.4; 5.5 is now the minimum.
- CI has been heavily updated (current Swift versions, code coverage and API breakage, etc.)
- Modernized use of NIO by unit tests.
- Allow overriding logging level in tests with
LOG_LEVEL
env var.
Improve SQLite Boolean decoding
This patch was authored by @wibed and released by @tanner0101.
Allows for a boolean field to be stored as string.
.field("is_true", .string, .required)
Additionally it is now its separate type, together with the other types, instead of referring to an anonymous int
for a return, which makes It cleaner.
Before:
If the field type of a presumed boolean is set to string. it results in below error msg
typeMismatch(Swift.Bool, Swift.DecodingError.Context(codingPath: [], debugDescription: "Could not initialize Bool from \"0\".", underlyingError: nil))
SQLiteNIO 1.0.0
More information on Vapor 4 official release:
https://forums.swift.org/t/vapor-4-official-release-begins/34802
Add support for duplicate column names
This patch was authored and released by @tanner0101.
Adds support for duplicate column names to SQLiteRow
(#21, fixes #12).
SQLiteRow.columns
is now an array of columns instead of a dictionary. SQLiteRow.column
uses a lookup table to keep O(1)
performance.
Date decode from integer values
This patch was authored by @Frizlab and released by @tanner0101.
Adds support for decoding Swift.Date
from SQLite integer values (#16).
Release Candidate 1
Updates to Swift 5.2, macOS 10.15, and iOS 13.
Release candidates represent the final shift toward focusing on bug fixes and documentation. Breaking changes will only be accepted for critical issues. We expect a final release of this package shortly after Swift 5.2's release date.
Fix Reference Date
Date
was inadvertently storing secondsSinceReferenceDate
values in the database. This should use secondsSince1970
to match Vapor 3's behavior and use a more sensible value.
SQLiteNIO 1.0.0 Beta 2.1
Publicized useful SQLiteRow
properties (#11)
SQLiteNIO 1.0.0 Beta 2
-
Add support for passing custom
Logger
-
Enabled test discovery on Linux (#8)
-
Fixed package manifest provider name