git.iko.soy/typeable/postgresql-simple
on master help sign in
Add a FromRow instance for Vector
5672ac6Doug Beardsley
src/Database/PostgreSQL/Simple/FromRow.hs+10−3
@@ -23,10 +23,12 @@ module Database.PostgreSQL.Simple.FromRow
23 , numFieldsRemaining
23 , numFieldsRemaining
24 ) where
24 ) where
25
25
26−import Control.Applicative (Applicative(..), (<$>))
26+import Control.Applicative (Applicative(..), (<$>))
27−import Control.Monad (replicateM)
27+import Control.Monad (replicateM)
28−import Data.ByteString (ByteString)
28+import Data.ByteString (ByteString)
29import qualified Data.ByteString.Char8 as B
29import qualified Data.ByteString.Char8 as B
30+import Data.Vector (Vector)
31+import qualified Data.Vector as V
30import Database.PostgreSQL.Simple.Types (Only(..))
32import Database.PostgreSQL.Simple.Types (Only(..))
31import qualified Database.PostgreSQL.LibPQ as PQ
33import qualified Database.PostgreSQL.LibPQ as PQ
32import Database.PostgreSQL.Simple.Internal
34import Database.PostgreSQL.Simple.Internal
@@ -169,5 +171,10 @@ instance FromField a => FromRow [a] where
169 n <- numFieldsRemaining
171 n <- numFieldsRemaining
170 replicateM n field
172 replicateM n field
171
173
174+instance FromField a => FromRow (Vector a) where
175+ fromRow = do
176+ n <- numFieldsRemaining
177+ V.replicateM n field
178+
172instance (FromRow a, FromRow b) => FromRow (a :. b) where
179instance (FromRow a, FromRow b) => FromRow (a :. b) where
173 fromRow = (:.) <$> fromRow <*> fromRow
180 fromRow = (:.) <$> fromRow <*> fromRow