Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- type HookName = Text
- type HookForYaml b = (HookName, Object -> Parser (HookProgram b))
- newtype YamlRange a = YamlRange {}
- data YamlRangeType
- rangeTypeText :: YamlRangeType -> Text
- (-->) :: a -> b -> (a, b)
- assert_count :: HookForYaml b
- parseCheck :: (Value -> Parser b) -> Object -> Parser (CompareCount, b)
- newtype ColumnOrExpression = ColumnOrExpression (Either SExp Text)
- parseColumnsOrExpressions :: Members [SqlParse, FatalError] r => ColumnOrExpression -> Sem r SExp
- assert_unique :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
- assert_all_values_within :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
- assert_any_values_within :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
- assert_no_values_within :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
- assertValues :: Object -> (forall a. Val a => WithinSet a -> HookProgram b) -> Parser (HookProgram b)
- assert_expression :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
- assert_not_null :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
- assert_cardinalities :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b
Documentation
type HookForYaml b = (HookName, Object -> Parser (HookProgram b)) #
data YamlRangeType #
Instances
rangeTypeText :: YamlRangeType -> Text #
assert_count :: HookForYaml b #
Assert the relationship between table and another table or constant value
Supported checks: equal
, greater_than
, greater_than_or_equal
, less_than
, less_than_or_equal
, approximately_equal
(relative
, absolute
– see example below).
assert_count: table: target_table equal: source_table
assert_count: table: target_table greater_than_or_equal: 871
Approximate equality:
assert_count: table: target_table approximately_equal: source_table type: relative tolerance: 0.01
parseCheck :: (Value -> Parser b) -> Object -> Parser (CompareCount, b) #
newtype ColumnOrExpression #
Instances
FromJSON ColumnOrExpression # | |
Defined in Napkin.Spec.Yaml.Types.Hooks parseJSON :: Value -> Parser ColumnOrExpression # parseJSONList :: Value -> Parser [ColumnOrExpression] # |
parseColumnsOrExpressions :: Members [SqlParse, FatalError] r => ColumnOrExpression -> Sem r SExp #
assert_unique :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Assert that table has all rows unique in terms of selected columns.
assert_unique: table: target_table columns: [Artist, Title]
assert_all_values_within :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Assert that table have only values within specified set in a certain column
assert_all_values_within: table: target_table column: target_column type: date from: 2009-01-01 to: 2013-12-31
or
assert_all_values_within: table: target_table column: target_column values: [StringOne, StringTwo]
assert_any_values_within :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Assert that table have any values within specified set in a certain column
assert_any_values_within: table: target_table column: target_column type: date from: 2009-01-01 to: 2013-12-31
or > assert_any_values_within: > table: target_table > column: target_column > values: [StringOne, StringTwo]
assert_no_values_within :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Assert that table have no values within specified set in a certain column
assert_no_values_within: table: target_table column: target_column type: date from: 2009-01-01 to: 2013-12-31
or > assert_no_values_within: > table: target_table > column: target_column > values: [StringOne, StringTwo]
assertValues :: Object -> (forall a. Val a => WithinSet a -> HookProgram b) -> Parser (HookProgram b) #
assert_expression :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Assert expression is true
assert_expression: table: target_table expression: AVG(total) = 42
assert_not_null :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Fail if any of the given expressions/columns have any NULL values.
assert_not_null: table: target_table columns: - zip_code - expression: NULLIF(zip_code, '')
assert_cardinalities :: forall b. (ReifiesBackend b, ToDbBackend b) => HookForYaml b #
Checks the cardinalities of two columns that may be sourced from different tables.
assert_cardinalities: table: target_table column: column_foo equal: table: source_table column: column_bar