Adds functions in the Ringo module to get hssqlppp Statements.

master
Abhinav Sarkar 2016-07-06 17:23:46 +05:30
parent 85cbd41e84
commit 7cec652d96
No known key found for this signature in database
GPG Key ID: 7C9166A6F5465AD5
5 changed files with 44 additions and 3 deletions

View File

@ -13,10 +13,15 @@ module Ringo
, factTableDefinitionSQL
, dimensionTablePopulationSQL
, factTablePopulationSQL
, dimensionTableDefinitionStatements
, factTableDefinitionStatements
, dimensionTablePopulationStatement
, factTablePopulationStatements
) where
import Control.Monad.Reader (runReader)
import Data.Text (Text)
import Database.HsSqlPpp.Syntax ( Statement )
import Ringo.Types
import qualified Ringo.Extractor as E
@ -280,6 +285,9 @@ extractDependencies env = flip runReader env . E.extractDependencies
dimensionTableDefinitionSQL :: Env -> Table -> [Text]
dimensionTableDefinitionSQL env = flip runReader env . G.dimensionTableDefinitionSQL
dimensionTableDefinitionStatements :: Env -> Table -> [Statement]
dimensionTableDefinitionStatements env = flip runReader env . G.dimensionTableDefinitionStatements
-- |
--
-- >>> let storySessionFactTable = extractFactTable env sessionFact
@ -343,6 +351,9 @@ dimensionTableDefinitionSQL env = flip runReader env . G.dimensionTableDefinitio
factTableDefinitionSQL :: Env -> Fact -> Table -> [Text]
factTableDefinitionSQL env fact = flip runReader env . G.factTableDefinitionSQL fact
factTableDefinitionStatements :: Env -> Fact -> Table -> [Statement]
factTableDefinitionStatements env fact = flip runReader env . G.factTableDefinitionStatements fact
-- |
--
-- >>> let storySessionDimTableNames = map tableName $ extractDimensionTables env sessionFact
@ -471,6 +482,10 @@ dimensionTablePopulationSQL :: TablePopulationMode -> Env -> Fact -> TableName -
dimensionTablePopulationSQL popMode env fact =
flip runReader env . G.dimensionTablePopulationSQL popMode fact
dimensionTablePopulationStatement :: TablePopulationMode -> Env -> Fact -> TableName -> Statement
dimensionTablePopulationStatement popMode env fact =
flip runReader env . G.dimensionTablePopulationStatement popMode fact
-- |
--
-- >>> let sqls = factTablePopulationSQL FullPopulation env sessionFact
@ -618,3 +633,7 @@ dimensionTablePopulationSQL popMode env fact =
factTablePopulationSQL :: TablePopulationMode -> Env -> Fact -> [Text]
factTablePopulationSQL popMode env =
flip runReader env . G.factTablePopulationSQL popMode
factTablePopulationStatements :: TablePopulationMode -> Env -> Fact -> [Statement]
factTablePopulationStatements popMode env =
flip runReader env . G.factTablePopulationStatements popMode

View File

@ -1,8 +1,12 @@
module Ringo.Generator
( dimensionTableDefinitionSQL
, factTableDefinitionSQL
, dimensionTableDefinitionStatements
, factTableDefinitionStatements
, dimensionTablePopulationSQL
, dimensionTablePopulationStatement
, factTablePopulationSQL
, factTablePopulationStatements
) where
import Ringo.Generator.Create

View File

@ -3,7 +3,11 @@
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NoImplicitPrelude #-}
module Ringo.Generator.Create (dimensionTableDefinitionSQL, factTableDefinitionSQL) where
module Ringo.Generator.Create ( dimensionTableDefinitionSQL
, dimensionTableDefinitionStatements
, factTableDefinitionSQL
, factTableDefinitionStatements
) where
import Prelude.Compat
import Control.Monad.Reader (Reader, asks)
@ -53,6 +57,10 @@ tableDefinitionSQL table indexFn = do
dimensionTableDefinitionSQL :: Table -> Reader Env [Text]
dimensionTableDefinitionSQL table = tableDefinitionSQL table dimensionTableIndexStatements
dimensionTableDefinitionStatements :: Table -> Reader Env [Statement]
dimensionTableDefinitionStatements table =
(++) <$> tableDefinitionStatements table <*> dimensionTableIndexStatements table
dimensionTableIndexStatements :: Table -> Reader Env [Statement]
dimensionTableIndexStatements Table {..} = do
Settings {..} <- asks envSettings
@ -66,6 +74,10 @@ dimensionTableIndexStatements Table {..} = do
factTableDefinitionSQL :: Fact -> Table -> Reader Env [Text]
factTableDefinitionSQL fact table = tableDefinitionSQL table (factTableIndexStatements fact)
factTableDefinitionStatements :: Fact -> Table -> Reader Env [Statement]
factTableDefinitionStatements fact table =
(++) <$> tableDefinitionStatements table <*> factTableIndexStatements fact table
factTableIndexStatements :: Fact -> Table -> Reader Env [Statement]
factTableIndexStatements fact table = do
allDims <- extractAllDimensionTables fact

View File

@ -3,7 +3,10 @@
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE GADTs #-}
module Ringo.Generator.Populate.Dimension (dimensionTablePopulationSQL) where
module Ringo.Generator.Populate.Dimension
( dimensionTablePopulationSQL
, dimensionTablePopulationStatement
) where
import Prelude.Compat
import Control.Monad.Reader (Reader, asks)

View File

@ -6,7 +6,10 @@
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE GADTs #-}
module Ringo.Generator.Populate.Fact (factTablePopulationSQL) where
module Ringo.Generator.Populate.Fact
( factTablePopulationSQL
, factTablePopulationStatements
) where
import qualified Data.Text as Text