Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- type HookForYaml b = SpecProgramReferenceForYaml (HookProgram b)
- newtype YamlRange a = YamlRange {}
- data YamlRangeType
- 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
- external :: forall b. HookForYaml b
- assert_unique :: forall b. HookForYaml b
- assert_all_values_within :: forall b. HookForYaml b
- assert_any_values_within :: forall b. HookForYaml b
- assert_no_values_within :: forall b. HookForYaml b
- assertValues :: Object -> (forall a. Val a => WithinSet a -> HookProgram b) -> Parser (HookProgram b)
- assert_expression :: forall b. HookForYaml b
- assert_not_null :: forall b. HookForYaml b
- assert_cardinalities :: forall b. HookForYaml b
- assert_multiple_columns_cardinalities :: forall b. HookForYaml b
Documentation
type HookForYaml b = SpecProgramReferenceForYaml (HookProgram b) #
data YamlRangeType #
Instances
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 #
external :: forall b. HookForYaml b #
Define a hook with external shell script or command with arguments
external: shell: ./execute_hook.sh --connection "{{{db_url}}}" --table "{{{table.db}}}"
or > external: > command: ./execute_hook.sh > arguments: > - --connection "{{{db_url}}}" > - --table "{{{table.db}}}"
assert_unique :: forall 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. 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. 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. 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. HookForYaml b #
Assert expression is true
assert_expression: table: target_table expression: AVG(total) = 42
assert_not_null :: forall 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. HookForYaml b #
Checks the cardinalities of multiple columns that may be sourced from different tables.
assert_cardinalities: table: target_table column: column_foo equal: source_table_foo: - column_bar - column_baz source_table_bar: - column_bar
assert_multiple_columns_cardinalities :: forall b. HookForYaml b #
Checks the cardinalities of multiple columns
assert_multiple_columns_cardinalities: table: target_table columns: - column_foo - column_thud equal: table: source_table_foo: columns: - column_bar - column_baz