Modernize SQLite feature support
This patch was authored and released by @gwynne.
The following changes have been made:
SQLiteDatabase
now vends the version of SQLite in use per theSQLDatabaseReportedVersion
protocol.UPSERT
syntax is now available for SQLite when the runtime library version is new enough (3.24.0 or newer)RETURNING
syntax is now available for SQLite when the runtime library version is new enough (3.35.0 or newer)- When emitting placeholders for bound parameters, the numbered
?NNN
syntax is now used instead of plain?
placeholders. - Requests to create columns of type
.bigint
(viaSQLCreateTable
or Fluent'sSchemaBuilder
) now map explicitly to theINTEGER
type name, which has the same data size but will correctly enable auto-increment behavior if the column is a table's primary key (previously this only worked when specifyingSQLDataType.int
or Fluent equivalent). - Dropped support for Swift up to and including 5.4, 5.5 is now the minimum.
- CI was heavily updated, with the same changes as were made to SQLiteNIO.
These changes depend on vapor/sqlite-nio#34.