This is a binding to libpq: the C application programmer's interface to PostgreSQL. libpq is a set of library functions that allow client programs to pass queries to the PostgreSQL backend server and to receive the results of these queries.
There are technicallly two breaking changes in this release, but they shouldn’t affect anyone not doing anything weird.
- Binary parameters are passed without copying.
- FFI functions are imported without
unsafe. Most uses were incorrect. We make all calls “safe”, as checking whether libpq functions do IO or may call a notifier (potentially calling back into Haskell), is virtually impossible for all versions of libpq. (The above properties are not specified in the documentation).
- Drop support for GHCs prior 8.6
- Require libpq >=10.22 (when using pkgconfig).
- Use CApiFFI for some parts of the API (we cannot use for all due https://gitlab.haskell.org/ghc/ghc/-/issues/22043)
- Support GHC-8.6.1
- Add simple smoke test