Refactored some rudimentary cursor handling code out of the implementation of the fold operators, into a new
Database.PostgreSQL.Simple.Cursormodule, thanks to Bardur Arantsson.
Charcompatible with postgresql's
bpchartype. Thanks to Ivan Lazar Miljenovic for reporting the issue.
Notification, thanks to Matvey Aksenov.
Fixed some example code, thanks to Matvey Aksenov.
Fixed a problem with using
conversionErrorto throw exceptions of type
SomeException. Previously, the exception would be wrapped in a second
SomeExceptiondynamic constructor which would cause normal GHC typecase idioms over
Bumped the lower bound for
baseto 4.6. Thanks to Herbert Valerio Riedel for reporting the issue.
SqlError, thanks to Chris Allen
Fixed a bug where a all-caps
"NULL"text value inside a postgresql array would get parsed as the SQL null value. Thanks goes to Edgar Gomes and Silk for finding and fixing this mistake.
withTransactionand friends to ignore
IOErrors when attempting to roll back the transaction. This fixes a buggy interaction between
withTransactionand async exceptions (e.g.
System.Timeout) on unix platforms. Thanks goes to Erik Hesselink and Silk for providing the test case that exposed this issue.
testTimeoutregression test for the problem above.
Significantly improved the error reporting from
Copy.putCopyData, thanks to Ben Gamari.
Moved the test suite to use
tasty, with a big thanks to Ben Gamari.
FromField.optionalField, and updated the documentation of
FromField.fromJSONField, as inspired by an email conversation with Ian Wagner.
Updated all links in the haddocks to use https, and added a link to the documentation of
Added a truncated changelog to the source distribution.
Implemented the Monad of No Return proposal, future-proofing postgresql-simple against future releases of GHC.
Fixed a rare and usually benign race condition where
getNotificationcould end up waiting on a newly reallocated file descriptor index, potentially leading to deadlock if the descriptor does not become readable promptly. This fix only applies to GHC 7.8 or later, as it depends on
Tweaked the time parsers to accept times of day of the form
hh:mm, omitting seconds, following changes made to aeson.
Updated the documentation of the
Intype to point out a gotcha when using the SQL fragment
... NOT IN ?with
In . Thanks goes to Simon Michael and Dan Haraj for bringing this issue to my attention.
The syntax generated for empty arrays was changed so that postgresql's type inference would work better, thanks to Amit Levy.
Further revision and expansion of the new Time documentation.
This is a documentation-only release
The documentation of the
Timemodule has been completely rewritten, and is far longer and more informative. It contains a brief overview of civil time, the semantics of postgresql's time types, and their relation to Haskell's time types via postgresql-simple.
The documentation of
connectPostgreSQLhas been modified to mention the effects of environment variables on the connection string parameters.
The documentation of
HStore.Internalhas been unhidden from haddock.
A typo in example code was fixed courtesy of Levi Notik.
Optimized the implementation of the streaming operators to avoid creating intermediate lists of rows, thanks to Timo von Holtz.
Added default instances for
FromRowthat depend on Generics, thanks to Alexey Khudyakov.
Fixed support for bytestring-0.9 and GHC 7.4.
- Fixed a bug when printing a
ZonedTimewith a negative offset that is not a whole number of hours.
- Fixed a bug when printing a
Removed the deprecated
Modified the SQL quasiquoter so that it returns a
Query, not an overloaded string, and so that the
OverloadedStringslanguage extension is no longer necessary, thanks to Mike Ledger.
Moved away from
blaze-builderin favor of
bytestring-builder. This shouldn't affect very many people, but does reduce the transitive dependencies.
Rewrote the timestamp printers to use the new
bytestring-builder. The new printers should be a fair bit faster.
Added support for exclusion violations to the
ConstraintViolationtype in the Errors module, thanks to João Cristóvão.
Moved away from the
uuidpackage in favor of the
uuid-typespackage, thanks to Bardur Arantsson. This shouldn't affect anybody, but does reduce the transitive dependencies.
Postgresql-simple now explicitly assumes the UTF8 character encoding for communication between the client and server. All database encodings support UTF8 except for Mule Internal Code, the Multilingual Extensions for Emacs. An exception should be raised upon connecting to a database by the backend if the backend cannot accomodate this requirement.
returningWithfamilies of functions courtesy of Travis Staton.
Support for Ranged types, with thanks to Leonid Onokhov for his contributions.
FromFieldinstance for JSON now allows for top-level values that are not objects or arrays, thanks to Sam Rijs.
The timestamp parsers have been replaced with those now in Aeson. Janne Hellsten adapted the old parsers from postgresql-simple for inclusion in Aeson; Bryan O'Sullivan rewrote those parsers to be faster, with some tweaks contributed by myself. And now to bring the effort full circle, the result has been brought back to postgresql-simple, with some adaptations.
Fixed a bug in the typeinfo system where postgresql's
_recordtype was being reported as a basic type and not an array type. Thanks to Nickolay Kolev for helping to expose this issue.
Fixed a bug with the
typeInfooperator, thanks to Timmy Tofu. In the case of parsing subfields of arrays and composites, it would fetch the
TypeInfoof the array or composite type and not the subtype.
Added a blurb about SSL/TLS in the documentation for connectPostgreSQL
Moved some functions into the Internal module, courtesy of Aleksey Uimanov.