
Thank you, that works. I started down this road but I only got to: instance FromRow IIM where fromRow = IIM <$> field <*> field <*> field <*> T.fromPGArray (fmap T.fromPGArray field) Which I expected to work based on the fact that this is what I need to convert (PGArray (PGArray Double)) to [[Double]]. Why is there an additional fmap needed? On Saturday, December 27, 2014 10:23:47 PM UTC+11, Tom Ellis wrote:
On Fri, Dec 26, 2014 at 09:31:02PM -0800, in...@rotnetix.com javascript: wrote:
I would actually like my data IIM to be:
data IIM = IIM {key :: String ,itype :: String ,idet :: Maybe String ,imat :: [[Double]]} deriving (Read, Show, Eq)
But I can't figure out how to get a fromRow instance for that
instance FromRow IIM where fromRow = IIM <$> field <*> field <*> field <*> fmap (T.fromPGArray . fmap T.fromPGArray) field
PS. I started looking into Opaleye as a possible DSL and would appreciate any help you can give me in figuring out how to represent arrays in that. I am assuming I need to do something with queryRunnerColumn but I was not able to understand the example.
This is indeed somewhat fiddly to do because it requires fiddling with the implementation of postgresql-simple instances. Unfortunately that library does not provide us with enough primitives to do this directly.
I will work on this.
Tom
_______________________________________________ Haskell-Cafe mailing list Haskel...@haskell.org javascript: http://www.haskell.org/mailman/listinfo/haskell-cafe