From fbbf169e58528bddde235d9608f6a8099c52a125 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 20 Aug 2020 07:22:54 +0300 Subject: [PATCH] Revert "TEMP: gut out expensive queries" This reverts commit 220a57da4c35314a1dba09dc6c04bc26358d6e30. I just tested this against the live database, and everything seems to work now. --- src/Handler/Package.hs | 2 +- src/Stackage/Database/Query.hs | 12 ++++++++++++ src/Stackage/Database/Types.hs | 3 +++ templates/package.hamlet | 15 +++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/Handler/Package.hs b/src/Handler/Package.hs index cfb238d..9a84724 100644 --- a/src/Handler/Package.hs +++ b/src/Handler/Package.hs @@ -102,7 +102,7 @@ handlePackage epi = do in if ms == authors then [] else ms - mdisplayedVersion = Nothing + mdisplayedVersion = msppi >>= sppiVersion defaultLayout $ do setTitle $ toHtml pname $(combineScripts 'StaticR [js_highlight_js]) diff --git a/src/Stackage/Database/Query.hs b/src/Stackage/Database/Query.hs index 747c564..3860f10 100644 --- a/src/Stackage/Database/Query.hs +++ b/src/Stackage/Database/Query.hs @@ -503,6 +503,7 @@ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps = do if reverseDepsCount > 0 then getReverseDeps spi (Just maxDisplayedDeps) else pure [] + latestInfo <- getLatests (spiPackageName spi) moduleNames <- getModuleNames (spiSnapshotPackageId spi) mcabalBlobKey <- traverse getBlobKey $ spiCabalBlobId spi pure @@ -513,6 +514,7 @@ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps = do , sppiForwardDepsCount = forwardDepsCount , sppiReverseDeps = map (first dropVersionRev) reverseDeps , sppiReverseDepsCount = reverseDepsCount + , sppiLatestInfo = latestInfo , sppiModuleNames = moduleNames , sppiPantryCabal = mcabalBlobKey RIO.<&> \cabalBlobKey -> @@ -521,6 +523,16 @@ getSnapshotPackagePageInfoQuery spi maxDisplayedDeps = do , pcVersion = spiVersion spi , pcCabalKey = cabalBlobKey } + , sppiVersion = + listToMaybe + [ spiVersionRev spi + | VersionRev ver mrev <- + maybe [] (pure . hciVersionRev) mhciLatest ++ + map liVersionRev latestInfo + , ver > curVer || + (ver == curVer && + fromMaybe (Revision 0) mrev > fromMaybe (Revision 0) mcurRev) + ] } where VersionRev curVer mcurRev = spiVersionRev spi diff --git a/src/Stackage/Database/Types.hs b/src/Stackage/Database/Types.hs index 1c1531e..02dabdb 100644 --- a/src/Stackage/Database/Types.hs +++ b/src/Stackage/Database/Types.hs @@ -249,8 +249,11 @@ data SnapshotPackagePageInfo = SnapshotPackagePageInfo -- ^ Limited list of packages in the snapshot that depend on this package , sppiReverseDepsCount :: !Int -- ^ Count of all packages in the snapshot that depends on this package + , sppiLatestInfo :: ![LatestInfo] , sppiModuleNames :: !(Map ModuleNameP Bool) , sppiPantryCabal :: !(Maybe PantryCabal) + , sppiVersion :: !(Maybe VersionRev) + -- ^ Version on this page. Should be present only if different from latest } toRevMaybe :: Revision -> Maybe Revision diff --git a/templates/package.hamlet b/templates/package.hamlet index 9d39e74..62bb56e 100644 --- a/templates/package.hamlet +++ b/templates/package.hamlet @@ -24,6 +24,21 @@ $newline never #{url} + $maybe displayedVersion <- mdisplayedVersion + + +
Version on this page: + + #{displayedVersion} + $maybe sppi <- msppi + $forall li <- sppiLatestInfo sppi +
+ + #{snapshotPrettyNameShort (liSnapName li)} + : + + + #{liVersionRev li} $maybe hciLatest <- mhciLatest
Latest on Hackage: