@kilnerm kilnerm released this Dec 18, 2018 · 3 commits to master since this release

Swift Kuery 3.0 includes the following updates:

  • API updated to be consistently asynchronous in design
  • New API added for result handling
  • Column building moved to plugins

The release contains breaking API and behavior changes.

For further details please see the included MigrationGuide.md

Assets 2

@EnriqueL8 EnriqueL8 released this Jun 7, 2018 · 19 commits to master since this release

  • Add case protection for PostgreSQL #130 (Breaking Change)
  • Improve Foreign Key Support #133
  • Add AUTO INCREMENT support for SQLite #136
  • Handle failure of ConnectionPool connection generator #137

Notes

Add case protection for PostgreSQL #130 is a breaking change. Prior to this change all values for table and column names passed into the underlying database were converted to lower case by the PostgreSQL database. With the change the values are now wrapped to ensure the case is respected by the PostgreSQL database.

If you have previously created a database that specifies mixed case table or column names you will encounter issues that may include:

  • Table does not exist.
  • Column does not exist.
  • Queries returning no data.

To continue using your existing database you can align the table and column names in your application with the actual values in the database.

Any raw queries you use may also require updating to ensure your table and column names are wrapped appropriately.

Consider a simple example:

For the table defined as myTable

class MyTable : Table {
        let aColumn = Column("a")
        let tableName = "myTable"
}

Your previous raw select statement

SELECT aColumn FROM myTable

should be updated to

SELECT "aColumn" FROM "myTable"

if you wish to use the mixed case column names, or

SELECT acolumn FROM mytable

to continue using a previously created instance of myTable.

If you build your select statement through the SwiftKuery API the table and column names will automatically be wrapped. In this case should you wish to use a previously created database you would need to change the table definition as follows

class MyTable : Table {
        let acolumn = Column("a")
        let tableName = "mytable"
}
Assets 2

@EnriqueL8 EnriqueL8 released this Apr 30, 2018 · 26 commits to master since this release

  • Fixed not using provided date formatter (#132)
Assets 2

@djones6 djones6 released this Apr 19, 2018 · 28 commits to master since this release

  • fix: Connection Pool should not vend dead connections (#123, #127)
  • fix: Enable Connection Pool to recover from zero capacity (#128)
  • feat: Add UUID type (#125)
Assets 2

@djones6 djones6 released this Apr 17, 2018 · 37 commits to master since this release

  • Add initializer for creating a Table from a [Column], rather than by reflection (#121)
Assets 2

@djones6 djones6 released this Apr 17, 2018 · 39 commits to master since this release

  • Add a flag to indicate whether to return the ID resulting from an insert query (#118)
Assets 2
Jan 3, 2018
Update to swift 403 (#115)
* Update to swift 403

* Update to swift 403
Nov 16, 2017
Migrate to swift 4.0.2 (#112)
* Migrate to swift 4.0.2

* Migrate to swift 4.0.2

@sandmman sandmman released this Oct 30, 2017 · 46 commits to master since this release

What's New

  • Makes full migration to Swift 4
Assets 2

@quanvo87 quanvo87 released this Sep 12, 2017 · 46 commits to master since this release

Add Swift 4 support (#102)

* Swift 4 Linux fixes

* Linux Swift 4 fixes

* Remove comments

* Reduce force unwraps
Assets 2