Adds more docs for Types.

master
Abhinav Sarkar 2016-07-11 19:06:36 +05:30
parent a89a3013f9
commit 3fd28c7bff
No known key found for this signature in database
GPG Key ID: 7C9166A6F5465AD5
1 changed files with 32 additions and 28 deletions

View File

@ -141,17 +141,17 @@ instance Show Table where
show Table {..} = show Table {..} =
unlines $ ("Table " ++ Text.unpack tableName) : map show tableColumns ++ map show tableConstraints unlines $ ("Table " ++ Text.unpack tableName) : map show tableColumns ++ map show tableConstraints
-- | Type of 'FactColumnType'. -- | Type of a 'FactColumnType'
data FactColumnKind = data FactColumnKind =
FCKNone -- ^ Type of a FactColumnType without any parameters FCKNone -- ^ A FactColumnType without any parameters
| FCKTargetTable -- ^ Type of a FactColumnType with 'factColTargetTable' as the only parameter. | FCKTargetTable -- ^ A FactColumnType with 'factColTargetTable' as the only parameter
| FCKMaybeSourceColumn -- ^ Type of a FactColumnType with 'factColMaybeSourceColumn' as the only parameter. | FCKMaybeSourceColumn -- ^ A FactColumnType with 'factColMaybeSourceColumn' as the only parameter
| FCKSourceColumn -- ^ Type of a FactColumnType with 'factColSourceColumn' as the only parameter. | FCKSourceColumn -- ^ A FactColumnType with 'factColSourceColumn' as the only parameter
#if MIN_VERSION_base(4,9,0) #if MIN_VERSION_base(4,9,0)
-- | Type of a fact column. -- | Type of a fact column
#else #else
-- | Type of a fact column. -- | Type of a fact column
-- --
-- 'DimTime': -- 'DimTime':
-- A fact column which contains a time dimension data (e.g. `created_at`). This is not exatracted -- A fact column which contains a time dimension data (e.g. `created_at`). This is not exatracted
@ -275,7 +275,7 @@ deriving instance Show FactColumn
-- | A fact is a table that records measurements or metrics for a specific event -- | A fact is a table that records measurements or metrics for a specific event
-- --
-- The following represent a set of facts for the same multi-publisher blog system: -- The following represents a fact for the same multi-publisher blog system:
-- --
-- >>> :{ -- >>> :{
-- let postFact = -- let postFact =
@ -313,7 +313,7 @@ data Fact = Fact
, factColumns :: ![FactColumn] , factColumns :: ![FactColumn]
} deriving (Show) } deriving (Show)
-- | Returns the name of the source column of a fact column -- | Returns the name of the optional source column of a fact column
factSourceColumnName :: FactColumn -> Maybe ColumnName factSourceColumnName :: FactColumn -> Maybe ColumnName
factSourceColumnName FactColumn {..} = case factColType of factSourceColumnName FactColumn {..} = case factColType of
DimTime -> Just factColTargetColumn DimTime -> Just factColTargetColumn
@ -346,36 +346,40 @@ timeUnitToSeconds Week = 7 * timeUnitToSeconds Day
-- | Global settings for the library -- | Global settings for the library
data Settings = Settings data Settings = Settings
{ -- | Prefix for the names of the generated dimension tables { -- | Prefix for the names of the generated dimension tables. Default: "dim_".
settingDimPrefix :: !Text settingDimPrefix :: !Text
-- | Prefix for the names of the generated fact tables -- | Prefix for the names of the generated fact tables. Default: "fact_".
, settingFactPrefix :: !Text , settingFactPrefix :: !Text
-- | Infix for the names of the generated fact tables -- | Infix for the names of the generated fact tables. Default: "_by_".
, settingFactInfix :: !Text , settingFactInfix :: !Text
-- | Time unit used to summarize the fact table data -- | Time unit used to summarize the fact table data. Default: 'Minute'.
, settingTimeUnit :: !TimeUnit , settingTimeUnit :: !TimeUnit
-- | Suffix for the names of the generated average-count fact columns -- | Suffix for the names of the generated average-count fact columns. Default: "_count".
, settingAvgCountColumnSuffix :: !Text , settingAvgCountColumnSuffix :: !Text
-- | Suffix for the names of the generated average-sum fact columns -- | Suffix for the names of the generated average-sum fact columns. Default: "_sum".
, settingAvgSumColumnSuffix :: !Text , settingAvgSumColumnSuffix :: !Text
-- | Name of the id columns of the generated dimension tables -- | Name of the id columns of the generated dimension tables. Default: "id".
, settingDimTableIdColumnName :: !Text , settingDimTableIdColumnName :: !Text
-- | Type of the id columns of the generated dimension tables -- | Type of the id columns of the generated dimension tables. Default: "serial".
, settingDimTableIdColumnType :: !Text , settingDimTableIdColumnType :: !Text
-- | Type of the count fact columns of the generated dimension tables -- | Type of the count fact columns of the generated dimension tables. Default: "integer".
, settingFactCountColumnType :: !Text , settingFactCountColumnType :: !Text
-- | Maximum error rate for the hyperloglog algorithm for computing -- | Maximum error rate for the hyperloglog algorithm for computing
-- count distinct fact columns of the generated dimension tables -- count distinct fact columns of the generated dimension tables. Default: 0.05.
, settingFactCountDistinctErrorRate :: !Double , settingFactCountDistinctErrorRate :: !Double
-- | Name of the generated JSON file containing the dependency graph -- | Name of the generated JSON file containing the dependency graph.
-- Default: "dependencies.json".
, settingDependenciesJSONFileName :: !Text , settingDependenciesJSONFileName :: !Text
-- | Name of the generated JSON file containing the list of name of the generated fact tables -- | Name of the generated JSON file containing the list of name of the generated
-- fact tables. Default: "facts.json".
, settingFactsJSONFileName :: !Text , settingFactsJSONFileName :: !Text
-- | Name of the generated JSON file containing the list of name of the generated dimension tables -- | Name of the generated JSON file containing the list of name of the generated
-- dimension tables. Default: "dimensions.json".
, settingDimensionsJSONFileName :: !Text , settingDimensionsJSONFileName :: !Text
-- | Value to coalesce the missing foreign key id column values to in the generated fact tables -- | Value to coalesce the missing foreign key id column values to in the generated
-- fact tables. Default: -1.
, settingForeignKeyIdCoalesceValue :: !Int , settingForeignKeyIdCoalesceValue :: !Int
-- | Suffix template for names of all the generated tables -- | Suffix template for names of all the generated tables. Default: "{{suff}}".
, settingTableNameSuffixTemplate :: !Text , settingTableNameSuffixTemplate :: !Text
} deriving (Eq, Show) } deriving (Eq, Show)
@ -384,6 +388,7 @@ defSettings :: Settings
defSettings = Settings defSettings = Settings
{ settingDimPrefix = "dim_" { settingDimPrefix = "dim_"
, settingFactPrefix = "fact_" , settingFactPrefix = "fact_"
, settingFactInfix = "_by_"
, settingTimeUnit = Minute , settingTimeUnit = Minute
, settingAvgCountColumnSuffix = "_count" , settingAvgCountColumnSuffix = "_count"
, settingAvgSumColumnSuffix = "_sum" , settingAvgSumColumnSuffix = "_sum"
@ -391,7 +396,6 @@ defSettings = Settings
, settingDimTableIdColumnType = "serial" , settingDimTableIdColumnType = "serial"
, settingFactCountColumnType = "integer" , settingFactCountColumnType = "integer"
, settingFactCountDistinctErrorRate = 0.05 , settingFactCountDistinctErrorRate = 0.05
, settingFactInfix = "_by_"
, settingDependenciesJSONFileName = "dependencies.json" , settingDependenciesJSONFileName = "dependencies.json"
, settingFactsJSONFileName = "facts.json" , settingFactsJSONFileName = "facts.json"
, settingDimensionsJSONFileName = "dimensions.json" , settingDimensionsJSONFileName = "dimensions.json"
@ -407,9 +411,9 @@ data ValidationError =
| MissingFact !TableName | MissingFact !TableName
-- | When referencing a column which is missing from the env -- | When referencing a column which is missing from the env
| MissingColumn !TableName !ColumnName | MissingColumn !TableName !ColumnName
-- | When referencing a fact which is missing from the env -- | When a fact has no 'DimTime' columns
| MissingTimeColumn !TableName | MissingTimeColumn !TableName
-- | When a 'DimTime' fact column of a fact is 'Null' -- | When a 'DimTime' fact column of a fact is nullable
| MissingNotNullConstraint !TableName !ColumnName | MissingNotNullConstraint !TableName !ColumnName
-- | When the default value of a type is missing from the env -- | When the default value of a type is missing from the env
| MissingTypeDefault !Text | MissingTypeDefault !Text
@ -456,5 +460,5 @@ data TablePopulationMode = FullPopulation -- ^ Populating the tables full
| IncrementalPopulation -- ^ Populating the tables incrementally | IncrementalPopulation -- ^ Populating the tables incrementally
deriving (Eq, Show) deriving (Eq, Show)
-- | The dependency graph of the generated tables in the order to be populated -- | The dependency graph of the generated tables describing the order in which they have to be populated
type Dependencies = Map TableName [TableName] type Dependencies = Map TableName [TableName]