diff --git a/high-sql.cabal b/high-sql.cabal index 32443e8..8c27b3a 100644 --- a/high-sql.cabal +++ b/high-sql.cabal @@ -60,7 +60,7 @@ library text >= 1.1 && < 1.3, hashable == 1.2.*, -- control: - list-t >= 0.2.1 && < 0.3, + list-t >= 0.2.4 && < 0.3, monad-control == 0.3.*, transformers-base == 0.4.*, -- errors: diff --git a/library/HighSQL/Transaction.hs b/library/HighSQL/Transaction.hs index 7911561..bfa49b4 100644 --- a/library/HighSQL/Transaction.hs +++ b/library/HighSQL/Transaction.hs @@ -193,8 +193,6 @@ hoistBackendStream :: Backend.ResultsStream b -> ResultsStream b l s r hoistBackendStream (w, s) = TransactionListT $ hoist (Transaction . lift) $ do - row <- replicateM w s - either (lift . throwIO . parsingError) return $ RowParser.parse row - where - parsingError t = - ResultParsingError t + row <- ($ s) $ ListT.slice $ fromMaybe ($bug "Invalid row width") $ ListT.positive w + either (lift . throwIO . ResultParsingError) return $ RowParser.parse row +