streaming-postgresql-simple v0.2.0.0 Release NotesRelease Date: 2017-02-03 // almost 6 years ago
Correctly perform finalisation in
The previous implementation would perform the necessary finalisation only if the stream was drained. Some handling was in-place such that exceptions wouldn't cause the stream to end prematurely, but this isn't enough. We now use
MonadResourceto register an action to drain the stream.
👉 Users should now wrap calls using
>>> runResourceT (S.mapM_ print (query c "SELECT * FROM t"))
Correctly deal with transactions in
streamrequires a transaction in order to function. If there isn't a transaction open,
streamwould create one, but if you manually called
rollbackfrom within the stream, the internal state would become inconsistent. This would lead to confusing error messages.
We now watch the transaction state as we pull items out from the stream, and inform the user if the internal state is not what we expected. Further more, cleanup actions (commit/rolling back the transaction) now only happen if there is still a transaction open.