Renames functions to expand abbreviations.
parent
76e415b658
commit
85cbd41e84
|
@ -58,29 +58,29 @@ writeFiles outputDir env = do
|
|||
dimTables = [ (fact, extractDimensionTables env fact) | fact <- facts ]
|
||||
factTables = [ (fact, extractFactTable env fact) | fact <- facts, factTablePersistent fact ]
|
||||
|
||||
dimTableDefnSQLs = [ (Create, tableName table, unlines . map sqlStr $ dimensionTableDefnSQL env table)
|
||||
| (_, tabs) <- dimTables
|
||||
, table <- tabs
|
||||
, table `notElem` tables ]
|
||||
dimTableDefinitionSQLs = [ (Create, tableName table, unlines . map sqlStr $ dimensionTableDefinitionSQL env table)
|
||||
| (_, tabs) <- dimTables
|
||||
, table <- tabs
|
||||
, table `notElem` tables ]
|
||||
|
||||
factTableDefnSQLs = [ (Create , tableName table, unlines . map sqlStr $ factTableDefnSQL env fact table)
|
||||
| (fact, table) <- factTables ]
|
||||
factTableDefinitionSQLs = [ (Create , tableName table, unlines . map sqlStr $ factTableDefinitionSQL env fact table)
|
||||
| (fact, table) <- factTables ]
|
||||
|
||||
dimTablePopulateSQLs typ gen =
|
||||
dimTablePopulationSQLs typ gen =
|
||||
[ (typ , tableName table, sqlStr $ gen env fact (tableName table))
|
||||
| (fact, tabs) <- dimTables
|
||||
, table <- tabs
|
||||
, table `notElem` tables ]
|
||||
|
||||
factTablePopulateSQLs typ gen = [ (typ, tableName table, unlines . map sqlStr $ gen env fact)
|
||||
| (fact, table) <- factTables ]
|
||||
factTablePopulationSQLs typ gen = [ (typ, tableName table, unlines . map sqlStr $ gen env fact)
|
||||
| (fact, table) <- factTables ]
|
||||
|
||||
sqls = concat [ dimTableDefnSQLs
|
||||
, factTableDefnSQLs
|
||||
, dimTablePopulateSQLs FullRefresh $ dimensionTablePopulateSQL FullPopulation
|
||||
, dimTablePopulateSQLs IncRefresh $ dimensionTablePopulateSQL IncrementalPopulation
|
||||
, factTablePopulateSQLs FullRefresh $ factTablePopulateSQL FullPopulation
|
||||
, factTablePopulateSQLs IncRefresh $ factTablePopulateSQL IncrementalPopulation
|
||||
sqls = concat [ dimTableDefinitionSQLs
|
||||
, factTableDefinitionSQLs
|
||||
, dimTablePopulationSQLs FullRefresh $ dimensionTablePopulationSQL FullPopulation
|
||||
, dimTablePopulationSQLs IncRefresh $ dimensionTablePopulationSQL IncrementalPopulation
|
||||
, factTablePopulationSQLs FullRefresh $ factTablePopulationSQL FullPopulation
|
||||
, factTablePopulationSQLs IncRefresh $ factTablePopulationSQL IncrementalPopulation
|
||||
]
|
||||
|
||||
sqlStr = Text.unpack
|
||||
|
|
|
@ -9,10 +9,10 @@ module Ringo
|
|||
, extractFactTable
|
||||
, extractDimensionTables
|
||||
, extractDependencies
|
||||
, dimensionTableDefnSQL
|
||||
, factTableDefnSQL
|
||||
, dimensionTablePopulateSQL
|
||||
, factTablePopulateSQL
|
||||
, dimensionTableDefinitionSQL
|
||||
, factTableDefinitionSQL
|
||||
, dimensionTablePopulationSQL
|
||||
, factTablePopulationSQL
|
||||
) where
|
||||
|
||||
import Control.Monad.Reader (runReader)
|
||||
|
@ -224,7 +224,7 @@ extractDependencies env = flip runReader env . E.extractDependencies
|
|||
-- |
|
||||
--
|
||||
-- >>> let dimTables = filter (`notElem` tables) . nub . concatMap (extractDimensionTables env) $ facts
|
||||
-- >>> let sqls = map (dimensionTableDefnSQL env) dimTables
|
||||
-- >>> let sqls = map (dimensionTableDefinitionSQL env) dimTables
|
||||
-- >>> mapM_ (\sqls -> mapM_ (putStr . Text.unpack) sqls >> putStrLn "--------" ) sqls
|
||||
-- create table dim_geo (
|
||||
-- id serial not null,
|
||||
|
@ -277,13 +277,13 @@ extractDependencies env = flip runReader env . E.extractDependencies
|
|||
-- alter table dim_page_type add unique (page_type);
|
||||
-- <BLANKLINE>
|
||||
-- --------
|
||||
dimensionTableDefnSQL :: Env -> Table -> [Text]
|
||||
dimensionTableDefnSQL env = flip runReader env . G.dimensionTableDefnSQL
|
||||
dimensionTableDefinitionSQL :: Env -> Table -> [Text]
|
||||
dimensionTableDefinitionSQL env = flip runReader env . G.dimensionTableDefinitionSQL
|
||||
|
||||
-- |
|
||||
--
|
||||
-- >>> let storySessionFactTable = extractFactTable env sessionFact
|
||||
-- >>> let sqls = factTableDefnSQL env sessionFact storySessionFactTable
|
||||
-- >>> let sqls = factTableDefinitionSQL env sessionFact storySessionFactTable
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- create table fact_session_by_minute (
|
||||
-- created_at_minute_id bigint not null,
|
||||
|
@ -308,7 +308,7 @@ dimensionTableDefnSQL env = flip runReader env . G.dimensionTableDefnSQL
|
|||
-- create index on fact_session_by_minute (user_agent_id)
|
||||
-- ;
|
||||
-- >>> let pageViewFactTable = extractFactTable env pageViewFact
|
||||
-- >>> let sqls = factTableDefnSQL env pageViewFact pageViewFactTable
|
||||
-- >>> let sqls = factTableDefinitionSQL env pageViewFact pageViewFactTable
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- create table fact_page_view_by_minute (
|
||||
-- created_at_minute_id bigint not null,
|
||||
|
@ -340,13 +340,13 @@ dimensionTableDefnSQL env = flip runReader env . G.dimensionTableDefnSQL
|
|||
-- ;
|
||||
-- create index on fact_page_view_by_minute (user_agent_id)
|
||||
-- ;
|
||||
factTableDefnSQL :: Env -> Fact -> Table -> [Text]
|
||||
factTableDefnSQL env fact = flip runReader env . G.factTableDefnSQL fact
|
||||
factTableDefinitionSQL :: Env -> Fact -> Table -> [Text]
|
||||
factTableDefinitionSQL env fact = flip runReader env . G.factTableDefinitionSQL fact
|
||||
|
||||
-- |
|
||||
--
|
||||
-- >>> let storySessionDimTableNames = map tableName $ extractDimensionTables env sessionFact
|
||||
-- >>> let sqls = map (dimensionTablePopulateSQL FullPopulation env sessionFact) storySessionDimTableNames
|
||||
-- >>> let sqls = map (dimensionTablePopulationSQL FullPopulation env sessionFact) storySessionDimTableNames
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into dim_geo (country_name, city_name, continent_name)
|
||||
-- select distinct
|
||||
|
@ -374,7 +374,7 @@ factTableDefnSQL env fact = flip runReader env . G.factTableDefnSQL fact
|
|||
-- created_at < ?
|
||||
-- ;
|
||||
-- <BLANKLINE>
|
||||
-- >>> let sqls = map (dimensionTablePopulateSQL IncrementalPopulation env sessionFact) storySessionDimTableNames
|
||||
-- >>> let sqls = map (dimensionTablePopulationSQL IncrementalPopulation env sessionFact) storySessionDimTableNames
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into dim_geo (country_name, city_name, continent_name)
|
||||
-- select
|
||||
|
@ -435,7 +435,7 @@ factTableDefnSQL env fact = flip runReader env . G.factTableDefnSQL fact
|
|||
-- ;
|
||||
-- <BLANKLINE>
|
||||
-- >>> let pageViewDimTableNames = map tableName . filter (`notElem` tables) $ extractDimensionTables env pageViewFact
|
||||
-- >>> let sqls = map (dimensionTablePopulateSQL FullPopulation env pageViewFact) pageViewDimTableNames
|
||||
-- >>> let sqls = map (dimensionTablePopulationSQL FullPopulation env pageViewFact) pageViewDimTableNames
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into dim_page_type (page_type)
|
||||
-- select distinct
|
||||
|
@ -446,7 +446,7 @@ factTableDefnSQL env fact = flip runReader env . G.factTableDefnSQL fact
|
|||
-- (page_type is not null) and created_at < ?
|
||||
-- ;
|
||||
-- <BLANKLINE>
|
||||
-- >>> let sqls = map (dimensionTablePopulateSQL IncrementalPopulation env pageViewFact) pageViewDimTableNames
|
||||
-- >>> let sqls = map (dimensionTablePopulationSQL IncrementalPopulation env pageViewFact) pageViewDimTableNames
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into dim_page_type (page_type)
|
||||
-- select
|
||||
|
@ -467,13 +467,13 @@ factTableDefnSQL env fact = flip runReader env . G.factTableDefnSQL fact
|
|||
-- dim_page_type.page_type is null
|
||||
-- ;
|
||||
-- <BLANKLINE>
|
||||
dimensionTablePopulateSQL :: TablePopulationMode -> Env -> Fact -> TableName -> Text
|
||||
dimensionTablePopulateSQL popMode env fact =
|
||||
flip runReader env . G.dimensionTablePopulateSQL popMode fact
|
||||
dimensionTablePopulationSQL :: TablePopulationMode -> Env -> Fact -> TableName -> Text
|
||||
dimensionTablePopulationSQL popMode env fact =
|
||||
flip runReader env . G.dimensionTablePopulationSQL popMode fact
|
||||
|
||||
-- |
|
||||
--
|
||||
-- >>> let sqls = factTablePopulateSQL FullPopulation env sessionFact
|
||||
-- >>> let sqls = factTablePopulationSQL FullPopulation env sessionFact
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into fact_session_by_minute (created_at_minute_id,
|
||||
-- publisher_id,
|
||||
|
@ -515,7 +515,7 @@ dimensionTablePopulateSQL popMode env fact =
|
|||
-- xxff_user_agent_id
|
||||
-- ;
|
||||
-- <BLANKLINE>
|
||||
-- >>> let sqls = factTablePopulateSQL IncrementalPopulation env sessionFact
|
||||
-- >>> let sqls = factTablePopulationSQL IncrementalPopulation env sessionFact
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into fact_session_by_minute (created_at_minute_id,
|
||||
-- publisher_id,
|
||||
|
@ -557,7 +557,7 @@ dimensionTablePopulateSQL popMode env fact =
|
|||
-- xxff_user_agent_id
|
||||
-- ;
|
||||
-- <BLANKLINE>
|
||||
-- >>> let sqls = factTablePopulateSQL FullPopulation env pageViewFact
|
||||
-- >>> let sqls = factTablePopulationSQL FullPopulation env pageViewFact
|
||||
-- >>> mapM_ (putStr . Text.unpack) sqls
|
||||
-- insert into fact_page_view_by_minute (created_at_minute_id,
|
||||
-- publisher_id,
|
||||
|
@ -615,6 +615,6 @@ dimensionTablePopulateSQL popMode env fact =
|
|||
-- xxff_user_agent_id
|
||||
-- ;
|
||||
-- <BLANKLINE>
|
||||
factTablePopulateSQL :: TablePopulationMode -> Env -> Fact -> [Text]
|
||||
factTablePopulateSQL popMode env =
|
||||
flip runReader env . G.factTablePopulateSQL popMode
|
||||
factTablePopulationSQL :: TablePopulationMode -> Env -> Fact -> [Text]
|
||||
factTablePopulationSQL popMode env =
|
||||
flip runReader env . G.factTablePopulationSQL popMode
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
module Ringo.Generator
|
||||
( dimensionTableDefnSQL
|
||||
, factTableDefnSQL
|
||||
, dimensionTablePopulateSQL
|
||||
, factTablePopulateSQL
|
||||
( dimensionTableDefinitionSQL
|
||||
, factTableDefinitionSQL
|
||||
, dimensionTablePopulationSQL
|
||||
, factTablePopulationSQL
|
||||
) where
|
||||
|
||||
import Ringo.Generator.Create
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{-# LANGUAGE GADTs #-}
|
||||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
|
||||
module Ringo.Generator.Create (dimensionTableDefnSQL, factTableDefnSQL) where
|
||||
module Ringo.Generator.Create (dimensionTableDefinitionSQL, factTableDefinitionSQL) where
|
||||
|
||||
import Prelude.Compat
|
||||
import Control.Monad.Reader (Reader, asks)
|
||||
|
@ -19,8 +19,8 @@ import Ringo.Generator.Sql
|
|||
import Ringo.Types.Internal
|
||||
import Ringo.Utils
|
||||
|
||||
tableDefnStmts :: Table -> Reader Env [Statement]
|
||||
tableDefnStmts Table {..} = do
|
||||
tableDefinitionStatements :: Table -> Reader Env [Statement]
|
||||
tableDefinitionStatements Table {..} = do
|
||||
Settings {..} <- asks envSettings
|
||||
let tabName = tableName <> settingTableNameSuffixTemplate
|
||||
|
||||
|
@ -44,17 +44,17 @@ tableDefnStmts Table {..} = do
|
|||
|
||||
return $ tableSQL : map constraintDefnSQL tableConstraints
|
||||
|
||||
tableDefnSQL :: Table -> (Table -> Reader Env [Statement]) -> Reader Env [Text]
|
||||
tableDefnSQL table indexFn = do
|
||||
ds <- map ppStatement <$> tableDefnStmts table
|
||||
tableDefinitionSQL :: Table -> (Table -> Reader Env [Statement]) -> Reader Env [Text]
|
||||
tableDefinitionSQL table indexFn = do
|
||||
ds <- map ppStatement <$> tableDefinitionStatements table
|
||||
is <- map (\st -> ppStatement st <> ";\n") <$> indexFn table
|
||||
return $ ds ++ is
|
||||
|
||||
dimensionTableDefnSQL :: Table -> Reader Env [Text]
|
||||
dimensionTableDefnSQL table = tableDefnSQL table dimensionTableIndexStmts
|
||||
dimensionTableDefinitionSQL :: Table -> Reader Env [Text]
|
||||
dimensionTableDefinitionSQL table = tableDefinitionSQL table dimensionTableIndexStatements
|
||||
|
||||
dimensionTableIndexStmts :: Table -> Reader Env [Statement]
|
||||
dimensionTableIndexStmts Table {..} = do
|
||||
dimensionTableIndexStatements :: Table -> Reader Env [Statement]
|
||||
dimensionTableIndexStatements Table {..} = do
|
||||
Settings {..} <- asks envSettings
|
||||
let tabName = tableName <> settingTableNameSuffixTemplate
|
||||
tablePKColName = head [ cName | PrimaryKey cName <- tableConstraints ]
|
||||
|
@ -63,11 +63,11 @@ dimensionTableIndexStmts Table {..} = do
|
|||
return [ CreateIndexTSQL ea (nmc "") (name tabName) [nmc cName]
|
||||
| cName <- nonPKColNames, length nonPKColNames > 1 ]
|
||||
|
||||
factTableDefnSQL :: Fact -> Table -> Reader Env [Text]
|
||||
factTableDefnSQL fact table = tableDefnSQL table (factTableIndexStmts fact)
|
||||
factTableDefinitionSQL :: Fact -> Table -> Reader Env [Text]
|
||||
factTableDefinitionSQL fact table = tableDefinitionSQL table (factTableIndexStatements fact)
|
||||
|
||||
factTableIndexStmts :: Fact -> Table -> Reader Env [Statement]
|
||||
factTableIndexStmts fact table = do
|
||||
factTableIndexStatements :: Fact -> Table -> Reader Env [Statement]
|
||||
factTableIndexStatements fact table = do
|
||||
allDims <- extractAllDimensionTables fact
|
||||
Settings {..} <- asks envSettings
|
||||
tables <- asks envTables
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{-# LANGUAGE NoImplicitPrelude #-}
|
||||
{-# LANGUAGE GADTs #-}
|
||||
|
||||
module Ringo.Generator.Populate.Dimension (dimensionTablePopulateSQL) where
|
||||
module Ringo.Generator.Populate.Dimension (dimensionTablePopulationSQL) where
|
||||
|
||||
import Prelude.Compat
|
||||
import Control.Monad.Reader (Reader, asks)
|
||||
|
@ -16,12 +16,12 @@ import Ringo.Generator.Internal
|
|||
import Ringo.Generator.Sql
|
||||
import Ringo.Types.Internal
|
||||
|
||||
dimensionTablePopulateSQL :: TablePopulationMode -> Fact -> TableName -> Reader Env Text
|
||||
dimensionTablePopulateSQL popMode fact dimTableName =
|
||||
ppStatement <$> dimensionTablePopulateStmt popMode fact dimTableName
|
||||
dimensionTablePopulationSQL :: TablePopulationMode -> Fact -> TableName -> Reader Env Text
|
||||
dimensionTablePopulationSQL popMode fact dimTableName =
|
||||
ppStatement <$> dimensionTablePopulationStatement popMode fact dimTableName
|
||||
|
||||
dimensionTablePopulateStmt :: TablePopulationMode -> Fact -> TableName -> Reader Env Statement
|
||||
dimensionTablePopulateStmt popMode fact dimTableName = do
|
||||
dimensionTablePopulationStatement :: TablePopulationMode -> Fact -> TableName -> Reader Env Statement
|
||||
dimensionTablePopulationStatement popMode fact dimTableName = do
|
||||
Settings {..} <- asks envSettings
|
||||
tables <- asks envTables
|
||||
defaults <- asks envTypeDefaults
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE GADTs #-}
|
||||
|
||||
module Ringo.Generator.Populate.Fact (factTablePopulateSQL) where
|
||||
module Ringo.Generator.Populate.Fact (factTablePopulationSQL) where
|
||||
|
||||
import qualified Data.Text as Text
|
||||
|
||||
|
@ -52,8 +52,8 @@ $$
|
|||
LANGUAGE 'plpgsql' IMMUTABLE;
|
||||
|]
|
||||
|
||||
factCountDistinctUpdateStmts :: TablePopulationMode -> Fact -> Text -> QueryExpr -> Reader Env [Statement]
|
||||
factCountDistinctUpdateStmts popMode fact groupByColPrefix expr = case expr of
|
||||
factCountDistinctUpdateStatements :: TablePopulationMode -> Fact -> Text -> QueryExpr -> Reader Env [Statement]
|
||||
factCountDistinctUpdateStatements popMode fact groupByColPrefix expr = case expr of
|
||||
Select {selSelectList = SelectList _ origSelectItems, ..} -> do
|
||||
Settings {..} <- asks envSettings
|
||||
tables <- asks envTables
|
||||
|
@ -119,8 +119,8 @@ factCountDistinctUpdateStmts popMode fact groupByColPrefix expr = case expr of
|
|||
let power :: Double = fromIntegral (ceiling . logBase 2 $ (1.04 / errorRate) ** 2 :: Integer)
|
||||
in ceiling $ 2 ** power
|
||||
|
||||
factTablePopulateStmts :: TablePopulationMode -> Fact -> Reader Env [Statement]
|
||||
factTablePopulateStmts popMode fact = do
|
||||
factTablePopulationStatements :: TablePopulationMode -> Fact -> Reader Env [Statement]
|
||||
factTablePopulationStatements popMode fact = do
|
||||
allDims <- extractAllDimensionTables fact
|
||||
Settings {..} <- asks envSettings
|
||||
tables <- asks envTables
|
||||
|
@ -212,7 +212,7 @@ factTablePopulateStmts popMode fact = do
|
|||
|
||||
insertIntoStmt = insert extFactTableName (map fst3 colMap) populateSelectExpr
|
||||
|
||||
updateStmts <- factCountDistinctUpdateStmts popMode fact groupByColPrefix populateSelectExpr
|
||||
updateStmts <- factCountDistinctUpdateStatements popMode fact groupByColPrefix populateSelectExpr
|
||||
return $ insertIntoStmt : updateStmts
|
||||
where
|
||||
groupByColPrefix = "xxff_"
|
||||
|
@ -223,9 +223,9 @@ factTablePopulateStmts popMode fact = do
|
|||
<$> listToMaybe [ colPairs | ForeignKey tName colPairs <- tableConstraints table
|
||||
, tName == oTableName ]
|
||||
|
||||
factTablePopulateSQL :: TablePopulationMode -> Fact -> Reader Env [Text]
|
||||
factTablePopulateSQL popMode fact = do
|
||||
stmts <- factTablePopulateStmts popMode fact
|
||||
factTablePopulationSQL :: TablePopulationMode -> Fact -> Reader Env [Text]
|
||||
factTablePopulationSQL popMode fact = do
|
||||
stmts <- factTablePopulationStatements popMode fact
|
||||
return $ case stmts of
|
||||
[] -> []
|
||||
[i] -> [ ppStatement i ]
|
||||
|
|
Loading…
Reference in New Issue