{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreihp4stzwjnrbqxd2ymqdbns7ajsjzb3x3agbf3v7lrabplcj5efem",
"uri": "at://did:plc:pi6woz4d47bkuws673w2il2r/app.bsky.feed.post/3mlrgmdypzni2"
},
"path": "/t/ann-hpgsql-a-pure-haskell-postgresql-driver-no-libpq/14101#post_4",
"publishedAt": "2026-05-13T21:16:53.000Z",
"site": "https://discourse.haskell.org",
"tags": [
"these TODOs"
],
"textContent": "This is cool, thank you for creating this!\n\nI have a question about the semantics. Is it always safe to reuse connection unless I got `IrrecoverableHpgsqlError`? The docs are not 100% clear, e.g. this:\n\n> It is possible Hpgsql throws a different kind of exception. File a bug report if that happens, and if you know it came from Hpgsql, treat it like a `IrrecoverableHpgsqlError`.\n\nBut most of the time I have no idea where the exception came from. And in `withTransactionMode` it looks like `IrrecoverableHpgsqlError` might get lost if async exception arrives between `tryAny` and `throw`, which (unless I’m misreading the code) will break the promise.\n\n(Also these TODOs are suspicious)",
"title": "[ANN] hpgsql, a pure Haskell PostgreSQL driver (no libpq)"
}