diff --git a/src/Database/Esqueleto/Utils.hs b/src/Database/Esqueleto/Utils.hs index 4f8494fdf..3052f652f 100644 --- a/src/Database/Esqueleto/Utils.hs +++ b/src/Database/Esqueleto/Utils.hs @@ -55,6 +55,7 @@ module Database.Esqueleto.Utils , day, day', dayMaybe, interval, diffDays, diffTimes , exprLift , explicitUnsafeCoerceSqlExprValue + , psqlVersion_ , truncateTable , module Database.Esqueleto.Utils.TH ) where @@ -814,6 +815,8 @@ instance (PersistField a1, PersistField a2, PersistField b, Finite a1, Finite a2 ] (E.else_ $ E.else_ $ E.veryUnsafeCoerceSqlExprValue (E.nothing :: E.SqlExpr (E.Value (Maybe ())))) +psqlVersion_ :: E.SqlExpr (E.Value Text) +psqlVersion_ = E.unsafeSqlFunction "VERSION" () -- Suspected to cause trouble. Needs more testing! -- truncateTable :: (MonadIO m, BackendCompatible SqlBackend backend, PersistEntity record) diff --git a/src/Handler/Admin/Test.hs b/src/Handler/Admin/Test.hs index 86e96ddcc..cbd23f3ae 100644 --- a/src/Handler/Admin/Test.hs +++ b/src/Handler/Admin/Test.hs @@ -28,7 +28,9 @@ import Text.Hamlet -- import Handler.Utils.I18n import Handler.Admin.Test.Download (testDownload) - +import qualified Database.Esqueleto.Experimental as E (selectOne, unValue) +import qualified Database.Esqueleto.PostgreSQL as E (now_) +import qualified Database.Esqueleto.Utils as E (psqlVersion_) -- BEGIN - Buttons needed only here data ButtonCreate = CreateMath | CreateInf | CrashApp -- Dummy for Example @@ -226,6 +228,9 @@ postAdminTestR = do UniWorX{ appSettings' = AppSettings{..} } <- getYesod + psqlVersion <- runDBRead $ E.selectOne $ return E.psqlVersion_ + dbTime <- runDBRead $ E.selectOne $ return E.now_ + let locallyDefinedPageHeading = [whamlet|Admin TestPage for Uni2work|] siteLayout locallyDefinedPageHeading $ do -- defaultLayout $ do @@ -327,6 +332,17 @@ postAdminTestR = do
Environment version #{env_ver}
- Current Time
+ Current Application Time
#{show currtime}
+ $maybe dbtval <- dbTime
+ $with dbt <- E.unValue dbtval
+ Current Database Time
+ #{show dbt} #
+ Difference: #{diffTime dbt}
Instance Start
#{show starttime} #