From 88ce82efe90fdb40545784b34ec8fbfab8216972 Mon Sep 17 00:00:00 2001 From: Jonathan Knowles Date: Tue, 8 Sep 2020 02:55:35 +0000 Subject: [PATCH] Make `readTotalProduction` fail fast on encountering a parse failure. In response to review feedback: https://github.com/input-output-hk/cardano-wallet/pull/2111#discussion_r484482133 --- lib/core/src/Cardano/Pool/DB/Sqlite.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/core/src/Cardano/Pool/DB/Sqlite.hs b/lib/core/src/Cardano/Pool/DB/Sqlite.hs index 3c3d96c2be0..70b3ba07693 100644 --- a/lib/core/src/Cardano/Pool/DB/Sqlite.hs +++ b/lib/core/src/Cardano/Pool/DB/Sqlite.hs @@ -212,8 +212,12 @@ newDBLayer trace fp timeInterpreter = do pure (foldl' toMap Map.empty production) readTotalProduction = - Map.fromList . rights . fmap parseRow <$> rawSql query [] + Map.fromList . fmap (assertSuccess . parseRow) <$> rawSql query [] where + assertSuccess = flip either id $ \e -> error $ mconcat + [ "readTotalProduction: unexpected parse failure: " + , show e + ] query = T.unwords [ "SELECT pool_id, count(pool_id) as block_count" , "FROM pool_production"