| , (k PS.time, convertPV PersistTimeOfDay) | ||
| , (k PS.timestamp, convertPV (PersistUTCTime. localTimeToUTC utc)) | ||
| , (k PS.timestamptz, convertPV PersistUTCTime) | ||
| , (k PS.interval, convertPV PersistDbSpecific) |
| , (1183, listOf PersistTimeOfDay) | ||
| , (1115, listOf PersistUTCTime) | ||
| , (1185, listOf PersistUTCTime) | ||
| , (1187, listOf PersistDbSpecific) |
| Nothing -> PGFF.returnError PGFF.UnexpectedNull f "" | ||
| Just dat -> case P.parseOnly (nominalDiffTime <* P.endOfInput) dat of | ||
| Left msg -> PGFF.returnError PGFF.ConversionFailed f msg | ||
| Right t -> return $ PgInterval t |
| case P.parseOnly (P.signed P.rational <* P.char 's' <* P.endOfInput) bs of | ||
| Left _ -> Left $ fromPersistValueError "PgInterval" "Interval" x | ||
| Right i -> Right $ PgInterval i | ||
| fromPersistValue x = Left $ fromPersistValueError "PgInterval" "Interval" x |
| , (k PS.time, convertPV PersistTimeOfDay) | ||
| , (k PS.timestamp, convertPV (PersistUTCTime. localTimeToUTC utc)) | ||
| , (k PS.timestamptz, convertPV PersistUTCTime) | ||
| , (k PS.interval, convertPV (PersistDbSpecific . pgIntervalToBs)) |
| , (1183, listOf PersistTimeOfDay) | ||
| , (1115, listOf PersistUTCTime) | ||
| , (1185, listOf PersistUTCTime) | ||
| , (1187, listOf (PersistDbSpecific . pgIntervalToBs)) |
| _ <- runMigrationSilent pgIntervalMigrate | ||
| rid <- insert $ PgIntervalDb $ PgInterval (-0.01) | ||
| r <- getJust rid | ||
| liftIO $ r @?= (PgIntervalDb $ PgInterval 0.01) |
| specs runDb = do | ||
| describe "Postgres Interval tests" $ do | ||
| it "test for insert and read of negative intervals" $ runDb $ do | ||
| _ <- runMigrationSilent pgIntervalMigrate |
|
|
||
| specs :: (MonadUnliftIO m, MonadFail m) => RunDb SqlBackend m -> Spec | ||
| specs runDb = do | ||
| describe "Postgres Interval tests" $ do |
Implements yesodweb#638. Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com>