From b86cf2444d7c106c36b4e979dfca31e37db0fe33 Mon Sep 17 00:00:00 2001 From: Abhinav Sarkar Date: Mon, 11 Jul 2016 17:50:52 +0530 Subject: [PATCH] Rearranges functions in generator populate dimension module. --- .../src/Ringo/Generator/Populate/Dimension.hs | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/ringo/src/Ringo/Generator/Populate/Dimension.hs b/ringo/src/Ringo/Generator/Populate/Dimension.hs index 9cf25da..e7d47be 100644 --- a/ringo/src/Ringo/Generator/Populate/Dimension.hs +++ b/ringo/src/Ringo/Generator/Populate/Dimension.hs @@ -24,6 +24,28 @@ dimensionTablePopulationSQL :: TablePopulationMode -> Fact -> TableName -> Reade dimensionTablePopulationSQL popMode fact dimTableName = ppStatement <$> dimensionTablePopulationStatement popMode fact dimTableName +dimensionTablePopulationStatement :: TablePopulationMode -> Fact -> TableName -> Reader Env Statement +dimensionTablePopulationStatement popMode fact dimTableName = do + Settings {..} <- asks envSettings + let colMapping = dimColumnMapping settingDimPrefix fact dimTableName + let insertTable = suffixTableName popMode settingTableNameSuffixTemplate dimTableName + selectQ <- makeSelectQuery popMode fact dimTableName colMapping + return $ insert insertTable (map fst colMapping) selectQ + +makeSelectQuery :: TablePopulationMode -> Fact -> TableName -> [(ColumnName, ColumnName)] -> Reader Env QueryExpr +makeSelectQuery popMode fact dimTableName colMapping = do + selectList <- makeSelectList fact colMapping + let selectQ = makeSelect + { selDistinct = Distinct + , selSelectList = selectList + , selTref = [tref $ factTableName fact] + , selWhere = makeSelectWhereClause popMode fact colMapping + } + + return $ case popMode of + FullPopulation -> selectQ + IncrementalPopulation -> makeIncSelectQuery selectQ dimTableName colMapping + makeSelectList :: Fact -> [(ColumnName, ColumnName)] -> Reader Env SelectList makeSelectList fact colMapping = do tables <- asks envTables @@ -53,25 +75,3 @@ makeIncSelectQuery selectQ dimTableName colMapping = } where alias = "x" - -makeSelectQuery :: TablePopulationMode -> Fact -> TableName -> [(ColumnName, ColumnName)] -> Reader Env QueryExpr -makeSelectQuery popMode fact dimTableName colMapping = do - selectList <- makeSelectList fact colMapping - let selectQ = makeSelect - { selDistinct = Distinct - , selSelectList = selectList - , selTref = [tref $ factTableName fact] - , selWhere = makeSelectWhereClause popMode fact colMapping - } - - return $ case popMode of - FullPopulation -> selectQ - IncrementalPopulation -> makeIncSelectQuery selectQ dimTableName colMapping - -dimensionTablePopulationStatement :: TablePopulationMode -> Fact -> TableName -> Reader Env Statement -dimensionTablePopulationStatement popMode fact dimTableName = do - Settings {..} <- asks envSettings - let colMapping = dimColumnMapping settingDimPrefix fact dimTableName - let iTableName = suffixTableName popMode settingTableNameSuffixTemplate dimTableName - selectQ <- makeSelectQuery popMode fact dimTableName colMapping - return $ insert iTableName (map fst colMapping) selectQ