Releases: vapor/postgres-nio
Release Candidate 1
Updates to Swift 5.2 and macOS 10.15. Replaces CMD5 module with SwiftCrypto.
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.
Support Swift.Set
Adds support for converting Swift.Set to / from a native Postgres array.
Handle NAME Type in PropertyData.string Property
Allows data that is contained as the .name type to be accessed through the PostgresData.string property.
var buffer = ByteBufferAllocator().buffer(capacity: 13)
buffer.writeString("password_hash")
let data = PostgresData(.name, value: buffer)
let string = data.string
// string == "password_hash"char(n) (BPCHAR) length fix
Fix Numeric String Serialization
add PostgresData+JSON support
Adds new methods and properties for using the JSON data type. These methods mirror the existing methods for JSONB.
User-defined Enum + Optional Fix
Bound optional values that are nil should no longer result in an unexpected type warning (fixes #74)
PostgresData will now return strings correctly for user-defined types like enums.
Remove BPCHAR to Swift Integer conversion
Removes support for converting PostgresData containing BPCHAR bytes (CHARACTER(n), CHAR, etc) to Swift integers. Postgres CHAR(n) fields may be padded with extra zero-bytes which makes conversion tricky. Since Postgres intends CHARACTER fields to store string values, PostgresData should only support conversion to Swift strings. To store 8-bits natively, use Postgres "char" type (note the quotes).
PostgresNIO 1.0.0 Beta 2.3
Publicize useful PostgresRow properties (#70)
PostgresNIO 1.0.0 Beta 2.2
- Added
PostgresConnection.addListener(channel:handler:)(#60)
This method lets you add handlers for LISTEN / NOTIFY messages.
// add notification listener to connection
conn.addListener(channel: "example") { context, notification in
print(notification) // notification payload
context.stop() // stop listening
}
// subscribe to notifications on this connection
_ = try conn.simpleQuery("LISTEN example").wait()
// send notification w/ empty payload
_ = try conn.simpleQuery("NOTIFY example").wait()