Rearranges functions in generator populate dimension module.
parent
e70c7f1174
commit
b86cf2444d
|
@ -24,6 +24,28 @@ dimensionTablePopulationSQL :: TablePopulationMode -> Fact -> TableName -> Reade
|
||||||
dimensionTablePopulationSQL popMode fact dimTableName =
|
dimensionTablePopulationSQL popMode fact dimTableName =
|
||||||
ppStatement <$> dimensionTablePopulationStatement 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 -> [(ColumnName, ColumnName)] -> Reader Env SelectList
|
||||||
makeSelectList fact colMapping = do
|
makeSelectList fact colMapping = do
|
||||||
tables <- asks envTables
|
tables <- asks envTables
|
||||||
|
@ -53,25 +75,3 @@ makeIncSelectQuery selectQ dimTableName colMapping =
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
alias = "x"
|
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
|
|
||||||
|
|
Loading…
Reference in New Issue