Commit be421e16 authored by Alexandre Delanoë's avatar Alexandre Delanoë

Merge branch 'dev-merge' into dev

parents 4c80c0eb d57cfce1
...@@ -88,7 +88,8 @@ module Gargantext.Core.NodeStory ...@@ -88,7 +88,8 @@ module Gargantext.Core.NodeStory
, nodeStoriesQuery , nodeStoriesQuery
, currentVersion , currentVersion
, archiveStateFromList , archiveStateFromList
, archiveStateToList ) , archiveStateToList
, fixNodeStoryVersions )
where where
-- import Debug.Trace (traceShow) -- import Debug.Trace (traceShow)
...@@ -722,3 +723,45 @@ currentVersion listId = do ...@@ -722,3 +723,45 @@ currentVersion listId = do
----------------------------------------- -----------------------------------------
fixNodeStoryVersions :: (HasNodeStory env err m) => m ()
fixNodeStoryVersions = do
pool <- view connPool
_ <- withResource pool $ \c -> liftBase $ PGS.withTransaction c $ do
nIds <- runPGSQuery c [sql| SELECT id FROM nodes WHERE ? |] (PGS.Only True) :: IO [PGS.Only Int64]
printDebug "[fixNodeStoryVersions] nIds" nIds
_ <- mapM_ (\(PGS.Only nId) -> do
printDebug "[fixNodeStoryVersions] nId" nId
updateVer c TableNgrams.Authors nId
updateVer c TableNgrams.Institutes nId
updateVer c TableNgrams.Sources nId
updateVer c TableNgrams.NgramsTerms nId
pure ()
) nIds
pure ()
pure ()
where
maxVerQuery :: PGS.Query
maxVerQuery = [sql| SELECT max(version)
FROM node_stories
WHERE node_id = ?
AND ngrams_type_id = ? |]
updateVerQuery :: PGS.Query
updateVerQuery = [sql| UPDATE node_stories
SET version = ?
WHERE node_id = ?
AND ngrams_type_id = ? |]
updateVer :: PGS.Connection -> TableNgrams.NgramsType -> Int64 -> IO ()
updateVer c ngramsType nId = do
maxVer <- runPGSQuery c maxVerQuery (nId, ngramsType) :: IO [PGS.Only (Maybe Int64)]
case maxVer of
[] -> pure ()
[PGS.Only Nothing] -> pure ()
[PGS.Only (Just maxVersion)] -> do
_ <- runPGSExecute c updateVerQuery (maxVersion, nId, ngramsType)
pure ()
_ -> panic "Should get only 1 result!"
...@@ -49,4 +49,3 @@ import Database.PostgreSQL.Simple.SqlQQ (sql) ...@@ -49,4 +49,3 @@ import Database.PostgreSQL.Simple.SqlQQ (sql)
import Database.PostgreSQL.Simple.ToField (toField, ToField) import Database.PostgreSQL.Simple.ToField (toField, ToField)
import Database.PostgreSQL.Simple.ToRow (toRow) import Database.PostgreSQL.Simple.ToRow (toRow)
import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..)) import Database.PostgreSQL.Simple.Types (Values(..), QualifiedIdentifier(..))
...@@ -60,5 +60,3 @@ instance DefaultFromField SqlInt4 (Maybe Int) where ...@@ -60,5 +60,3 @@ instance DefaultFromField SqlInt4 (Maybe Int) where
instance DefaultFromField (Nullable SqlText) Text where instance DefaultFromField (Nullable SqlText) Text where
defaultFromField = fromPGSFromField defaultFromField = fromPGSFromField
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment