@@ -107,6 +107,7 @@ import Data.Ratio (Ratio)
107import Data.Time ( UTCTime, ZonedTime, LocalTime, Day, TimeOfDay )
107import Data.Time ( UTCTime, ZonedTime, LocalTime, Day, TimeOfDay )
108import Data.Typeable (Typeable, typeOf)
108import Data.Typeable (Typeable, typeOf)
109import Data.Vector (Vector)
109import Data.Vector (Vector)
110+import Data.Vector.Mutable (IOVector)
110import qualified Data.Vector as V
111import qualified Data.Vector as V
111import Database.PostgreSQL.Simple.Internal
112import Database.PostgreSQL.Simple.Internal
112import Database.PostgreSQL.Simple.Compat
113import Database.PostgreSQL.Simple.Compat
@@ -440,6 +441,9 @@ fromArray typeInfo f = sequence . (parseIt <$>) <$> array delim
440instance (FromField a, Typeable a) => FromField (Vector a) where
441instance (FromField a, Typeable a) => FromField (Vector a) where
441 fromField f v = V.fromList . fromPGArray <$> fromField f v
442 fromField f v = V.fromList . fromPGArray <$> fromField f v
444+instance (FromField a, Typeable a) => FromField (IOVector a) where
445+ fromField f v = liftConversion . V.unsafeThaw =<< fromField f v
444instance FromField UUID where
448instance FromField UUID where
445 fromField f mbs =
449 fromField f mbs =