Skip to main content

Atlas Testing

dataset csv​

dataset.csv attributes​

Name and descriptionRequiredValue

batch

Maximum number of rows written per statement. Defaults to 1000.

falseint

exclude

Skip the dataset tables matching the glob patterns.

false

List of strings

include

Load only the dataset tables matching the glob patterns (orders, public.*).

false

List of strings

masks

Mask the columns that top-level mask blocks select before their values are loaded. The first mask selecting a column masks it.

false

List of object reference to mask

sampler

Load a sample of each table, taken by a top-level sampler block, instead of all its rows.

false

Object reference to sampler

src

The source of the snapshot: a directory, or an object-store URL (s3://, gs://, azblob://). Local paths are relative to the test file.

truestring

dataset rds_snapshot​

dataset.rds_snapshot attributes​

Name and descriptionRequiredValue

batch

Maximum number of rows written per statement. Defaults to 1000.

falseint

exclude

Skip the dataset tables matching the glob patterns.

false

List of strings

include

Load only the dataset tables matching the glob patterns (orders, public.*).

false

List of strings

masks

Mask the columns that top-level mask blocks select before their values are loaded. The first mask selecting a column masks it.

false

List of object reference to mask

sampler

Load a sample of each table, taken by a top-level sampler block, instead of all its rows.

false

Object reference to sampler

src

The source of the snapshot: a directory, or an object-store URL (s3://, gs://, azblob://). Local paths are relative to the test file.

truestring

dataset synthetic​

Generate the rows of the tables its table blocks name, the same rows for the same seed. Keys take distinct values, foreign keys reference generated rows, and the database fills the columns with a default, unless a column block sets their values.

dataset "synthetic" "seed" {
table "users" {
rows = 100
}
table "orders" {
rows = 1000
}
}

dataset.synthetic attributes​

Name and descriptionRequiredValue

batch

Maximum number of rows written per statement. Defaults to 1000.

falseint

seed

Selects other generated values. Defaults to 0.

falseint

dataset.synthetic blocks​

dataset.table​

Generate rows for the table, named <table> or <schema>.<table>.

dataset.table attributes​
Name and descriptionRequiredValue

rows

The number of rows to generate.

trueint
dataset.table blocks​

dataset.table.column​

Set the values of the column, in place of the generated values or the column default. A value is refused on a column of a foreign key of several columns, or a generated column, and the values of a key column keep the key distinct unless another of its columns can.

column "name" {
value = format("user %d", row.index)
}
column "plan" {
value = random::element(["free", "pro", "team"])
}
column "updated_at" {
value = random::time(row.created_at, "2026-01-01")
}
dataset.table.column attributes​
Name and descriptionRequiredValue

value

The value of the column, evaluated for each row with row.index, the row counted from 0, row.<column>, the value of another column of the row, and the random:: functions, which draw the same values for the same seed. A null value writes NULL.

true

Any value

dataset.table.column constraints​
ConstraintValue
Requiredfalse
Require Name (e.g., dataset.table.column "name" )true
Repeatabletrue
dataset.table constraints​
ConstraintValue
Requiredtrue
Require Name (e.g., dataset.table "name" )true
Repeatabletrue

mask​

The mask block masks the values of the text columns it selects before a dataset referencing it loads them, as the masks of script queries do, or groups other masks with use.

mask "email" {
columns = ["users.email"]
method = HASH
salt = var.mask_salt
}

mask "pii" {
use = [mask.email, mask.phone]
}

dataset "rds_snapshot" "prod" {
src = "s3://backups/snapshot-rds?region=us-east-1"
masks = [mask.pii]
}

mask attributes​

Name and descriptionRequiredValue

char

PARTIAL: replacement character (default *).

falsestring

columns

The columns to mask: <column>, <table>.<column> or <schema>.<table>.<column>, each part a glob. A name without a glob must match a column of the database. A glob skips the generated columns and those whose type cannot hold the masked values, such as numbers, dates or network addresses.

false

List of strings

entities

Mask the entities found in a value, each on its own, instead of the whole value, as Presidio does: CREDIT_CARD (Luhn checked), EMAIL, IBAN (mod 97 checked), IP, MAC, PHONE (international, or North American with separators), SSN (US) and URL, or ALL of them, including those later Atlas versions add. REDACT replaces an entity with <NAME> unless token is set. Not valid for REPLACE.

false

List of enum (ALL, CREDIT_CARD, EMAIL, IBAN, IP, MAC, PHONE, SSN, URL)

keep

PARTIAL: characters kept at each end (default 0).

falseint

keep_left

PARTIAL: characters kept at the start (overrides keep).

falseint

keep_right

PARTIAL: characters kept at the end (overrides keep).

falseint

match

REPLACE: regular expression matched against the value.

falsestring

method

Masking method (REDACT default).

false

enum (REDACT, PARTIAL, HASH, REPLACE)

salt

HASH: secret salt. With it the digest is a keyed HMAC-SHA256; without it a bare (unsalted) SHA256 digest, which is susceptible to dictionary attacks for low-entropy values. Stable salts yield comparable tokens; recommended for sensitive data, and required by datasets.

falsestring

token

REDACT: replacement token (default ***).

falsestring

use

The top-level masks this one groups, applied in order, e.g. [mask.email, mask.phone].

false

List of object reference to mask

with

REPLACE: replacement for the matched substring.

falsestring

mask constraints​

ConstraintValue
Requiredfalse
Require Name (e.g., mask "name" )true
Repeatabletrue
Mutually exclusive sets[use, columns], [use, method], [use, entities], [use, token], [use, keep], [use, keep_left], [use, keep_right], [use, char], [use, salt], [use, match], [use, with]
One of required sets[columns, use]

sampler composite​

Sample each table by the sampler of the first table block matching it, and load all rows of the tables none matches.

sampler "composite" "prod" {
table {
match = ["events", "clicks", "audit_*"]
use = sampler.random.large
}
table {
match = ["countries", "currencies"]
all = true
}
table {
match = ["*"]
use = sampler.head.small
}
}

sampler.composite blocks​

sampler.table​

Sample the tables matching the glob patterns, unless a table block before it matches them.

sampler.table attributes​
Name and descriptionRequiredValue

all

Set to true to load all rows of the matching tables, in place of use.

falsebool

match

The glob patterns matching the tables, as include does (orders, public.audit_*).

true

List of strings

use

The head, tail, random or filter sampler taking the sample of the matching tables.

false

Object reference to sampler

sampler.table constraints​
ConstraintValue
Requiredtrue
Require Namefalse
Repeatabletrue
Mutually exclusive sets[use, all]
One of required sets[use, all]

sampler filter​

Take the rows whose columns hold all the operators of their column blocks: eq, ne, in, lt, le, gt, ge and match, and the and, or and not blocks combining them. Numbers compare by value, the text of a decimal column included, and strings as text, which orders ISO dates and times. As in SQL, a NULL matches no operator, ne and not included. The other tables take no row of their own, only the rows the sample references, and with related, the rows referencing it.

sampler "filter" "one_customer" {
column "billing.tenants.id" {
eq = 42
}
related = true
}

sampler.filter attributes​

Name and descriptionRequiredValue

related

Also load the rows referencing the sampled ones, in the same table or another loaded one: one level down, as these rows load the rows they reference, but not the rows referencing them. The tables referencing a related sample are read whole.

falsebool

sampler.filter blocks​

sampler.column​

Match the rows whose column holds all of its operators and blocks. The label names the column with its table: <table>.<column> or <schema>.<table>.<column>.

sampler.column attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column blocks​

sampler.column.and​

Match the values holding all of its operators and blocks.

sampler.column.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and blocks​

sampler.column.and.and​

Match the values holding all of its operators and blocks.

sampler.column.and.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.not​

Match the values not holding all of its operators and blocks.

sampler.column.and.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not blocks​

sampler.column.and.not.and​

Match the values holding all of its operators and blocks.

sampler.column.and.not.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.not.not​

Match the values not holding all of its operators and blocks.

sampler.column.and.not.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.not.or​

Match the values holding any of its operators and blocks.

sampler.column.and.not.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not.or blocks​

sampler.column.and.not.or.and​

Match the values holding all of its operators and blocks.

sampler.column.and.not.or.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not.or.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.not.or.not​

Match the values not holding all of its operators and blocks.

sampler.column.and.not.or.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not.or.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.not.or.or​

Match the values holding any of its operators and blocks.

sampler.column.and.not.or.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.not.or.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.and.not.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.and.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.or​

Match the values holding any of its operators and blocks.

sampler.column.and.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or blocks​

sampler.column.and.or.and​

Match the values holding all of its operators and blocks.

sampler.column.and.or.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.or.not​

Match the values not holding all of its operators and blocks.

sampler.column.and.or.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or.not blocks​

sampler.column.and.or.not.and​

Match the values holding all of its operators and blocks.

sampler.column.and.or.not.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or.not.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.or.not.not​

Match the values not holding all of its operators and blocks.

sampler.column.and.or.not.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or.not.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.or.not.or​

Match the values holding any of its operators and blocks.

sampler.column.and.or.not.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or.not.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.and.or.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.and.or.or​

Match the values holding any of its operators and blocks.

sampler.column.and.or.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.and.or.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.and.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not​

Match the values not holding all of its operators and blocks.

sampler.column.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not blocks​

sampler.column.not.and​

Match the values holding all of its operators and blocks.

sampler.column.not.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and blocks​

sampler.column.not.and.and​

Match the values holding all of its operators and blocks.

sampler.column.not.and.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.and.not​

Match the values not holding all of its operators and blocks.

sampler.column.not.and.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.and.or​

Match the values holding any of its operators and blocks.

sampler.column.not.and.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and.or blocks​

sampler.column.not.and.or.and​

Match the values holding all of its operators and blocks.

sampler.column.not.and.or.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and.or.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.and.or.not​

Match the values not holding all of its operators and blocks.

sampler.column.not.and.or.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and.or.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.and.or.or​

Match the values holding any of its operators and blocks.

sampler.column.not.and.or.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.and.or.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.not.and.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.not.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.not​

Match the values not holding all of its operators and blocks.

sampler.column.not.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.or​

Match the values holding any of its operators and blocks.

sampler.column.not.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or blocks​

sampler.column.not.or.and​

Match the values holding all of its operators and blocks.

sampler.column.not.or.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or.and blocks​

sampler.column.not.or.and.and​

Match the values holding all of its operators and blocks.

sampler.column.not.or.and.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or.and.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.or.and.not​

Match the values not holding all of its operators and blocks.

sampler.column.not.or.and.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or.and.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.or.and.or​

Match the values holding any of its operators and blocks.

sampler.column.not.or.and.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or.and.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.not.or.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.or.not​

Match the values not holding all of its operators and blocks.

sampler.column.not.or.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.not.or.or​

Match the values holding any of its operators and blocks.

sampler.column.not.or.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.not.or.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.not.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or​

Match the values holding any of its operators and blocks.

sampler.column.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or blocks​

sampler.column.or.and​

Match the values holding all of its operators and blocks.

sampler.column.or.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and blocks​

sampler.column.or.and.and​

Match the values holding all of its operators and blocks.

sampler.column.or.and.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.and.not​

Match the values not holding all of its operators and blocks.

sampler.column.or.and.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and.not blocks​

sampler.column.or.and.not.and​

Match the values holding all of its operators and blocks.

sampler.column.or.and.not.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and.not.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.and.not.not​

Match the values not holding all of its operators and blocks.

sampler.column.or.and.not.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and.not.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.and.not.or​

Match the values holding any of its operators and blocks.

sampler.column.or.and.not.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and.not.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.or.and.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.and.or​

Match the values holding any of its operators and blocks.

sampler.column.or.and.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.and.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.or.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.not​

Match the values not holding all of its operators and blocks.

sampler.column.or.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not blocks​

sampler.column.or.not.and​

Match the values holding all of its operators and blocks.

sampler.column.or.not.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not.and blocks​

sampler.column.or.not.and.and​

Match the values holding all of its operators and blocks.

sampler.column.or.not.and.and attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not.and.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.not.and.not​

Match the values not holding all of its operators and blocks.

sampler.column.or.not.and.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not.and.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.not.and.or​

Match the values holding any of its operators and blocks.

sampler.column.or.not.and.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not.and.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.or.not.and constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.not.not​

Match the values not holding all of its operators and blocks.

sampler.column.or.not.not attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.not.or​

Match the values holding any of its operators and blocks.

sampler.column.or.not.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.not.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.or.not constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler.column.or.or​

Match the values holding any of its operators and blocks.

sampler.column.or.or attributes​
Name and descriptionRequiredValue

eq

Match the values equal to it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool

ge

Match the values greater than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

gt

Match the values greater than it.

false

A number or a string can be one of:

  1. number
  2. string

in

Match the values equal to one of the list.

false

List of values, where each can be one of:

  1. number
  2. string
  3. bool

le

Match the values less than or equal to it.

false

A number or a string can be one of:

  1. number
  2. string

lt

Match the values less than it.

false

A number or a string can be one of:

  1. number
  2. string

match

Match the text values matching it, a regular expression in the RE2 syntax.

falsestring

ne

Match the values differing from it.

false

A number, a string or a bool can be one of:

  1. number
  2. string
  3. bool
sampler.column.or.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column.or constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]
sampler.column constraints​
ConstraintValue
Requiredtrue
Require Name (e.g., sampler.column "name" )true
Repeatabletrue
One of required sets[eq, ne, in, lt, le, gt, ge, match, and, or, not]

sampler head​

Take the first rows of each table, in the snapshot order.

sampler.head attributes​

Name and descriptionRequiredValue

related

Also load the rows referencing the sampled ones, in the same table or another loaded one: one level down, as these rows load the rows they reference, but not the rows referencing them. The tables referencing a related sample are read whole.

falsebool

rows

The number of rows each table takes, or all its rows if it has fewer. The rows these reference, in the same table or another loaded one, are loaded on top, so no foreign key is left dangling.

trueint

sampler random​

Take rows drawn uniformly at random, the same ones on every run over the same snapshot, and a larger sample keeps the rows of a smaller one. The rows of each table are counted first.

sampler.random attributes​

Name and descriptionRequiredValue

related

Also load the rows referencing the sampled ones, in the same table or another loaded one: one level down, as these rows load the rows they reference, but not the rows referencing them. The tables referencing a related sample are read whole.

falsebool

rows

The number of rows each table takes, or all its rows if it has fewer. The rows these reference, in the same table or another loaded one, are loaded on top, so no foreign key is left dangling.

trueint

seed

Selects another random draw. Defaults to 0.

falseint

sampler tail​

Take the last rows of each table, in the snapshot order. The rows of each table are counted first.

sampler.tail attributes​

Name and descriptionRequiredValue

related

Also load the rows referencing the sampled ones, in the same table or another loaded one: one level down, as these rows load the rows they reference, but not the rows referencing them. The tables referencing a related sample are read whole.

falsebool

rows

The number of rows each table takes, or all its rows if it has fewer. The rows these reference, in the same table or another loaded one, are loaded on top, so no foreign key is left dangling.

trueint

test migrate​

The test "migrate" "name" block describes a migrate test case.

test "migrate" "20240613061102" {
migrate {
to = "20240613061046"
}
exec {
sql = "INSERT INTO users (name) VALUES ('Ada Lovelace')"
}
migrate {
to = "20240613061102"
}
exec {
sql = "SELECT first_name,last_name FROM users"
output = "Ada, Lovelace"
}
}

test.migrate attributes​

NameRequiredValue
skipfalsebool

test.migrate blocks​

test.assert​

The assert block executes an SQL statement and expects a single-row, single-column result with a true value.

test.assert attributes​
NameRequiredValue
error_messagefalsestring
sqltruestring
test.assert constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.catch​

The catch block executes one or more SQL statements and expects an error to occur.

test.catch attributes​
NameRequiredValue
errorfalsestring
sqltruestring
test.catch constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.cleanup​

The cleanup block registers a command to be called when the test case is completed.

cleanup {
sql = "SELECT pg_catalog.set_config('search_path', '', false)"
}
test.cleanup attributes​
NameRequiredValue
sqltruestring
test.cleanup constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.dataset​

The dataset block loads a dataset registered by a top-level dataset block into the test database, at the point of the test case it appears in.

dataset {
use = dataset.rds_snapshot.prod
}
test.dataset attributes​
NameRequiredValue
usetrue

Object reference to dataset

test.dataset constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.exec​

The exec block executes one or more SQL statements and expects all of them to succeed. If output or match is defined, the output of the SQL statement is compared to the expected value.

test.exec attributes​
NameRequiredValue
formatfalse

enum (csv, table)

matchfalsestring
outputfalsestring
sqltruestring
test.exec constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.external​

The external allows executing external programs to insert data or run assertions on the dev-database used by test case.

external {
program = [
"go", "run", "seed.go",
"--dev-url", testing.dev_url,
]
}
test.external attributes​
NameRequiredValue
matchfalsestring
outputfalsestring
programtrue

List of strings

working_dirfalsestring
test.external constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.log​

The log block logs a message to the test output.

test.log attributes​
NameRequiredValue
messagetruestring
test.log constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.migrate​

test.migrate attributes​
NameRequiredValue
totruestring
test.migrate constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.script.exec​

test.script.exec attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.exec blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.exec constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.loop​

test.script.loop attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.loop blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.loop constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.query​

test.script.query attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.query blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.query constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test plan​

The test "plan" "name" block describes a schema plan test case.

test "plan" "20240613061102" {
schema {
url = "atlas://repo?version=20240613061046"
}
exec {
sql = "INSERT INTO users (name) VALUES ('Ada Lovelace')"
}
apply {
url = "file://name.plan.hcl"
}
exec {
sql = "SELECT first_name,last_name FROM users"
output = "Ada, Lovelace"
}
}

test.plan attributes​

NameRequiredValue
skipfalsebool

test.plan blocks​

test.apply​

test.apply attributes​
NameRequiredValue
urltruestring
test.apply constraints​
ConstraintValue
Requiredtrue
Require Namefalse

test.assert​

The assert block executes an SQL statement and expects a single-row, single-column result with a true value.

test.assert attributes​
NameRequiredValue
error_messagefalsestring
sqltruestring
test.assert constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.catch​

The catch block executes one or more SQL statements and expects an error to occur.

test.catch attributes​
NameRequiredValue
errorfalsestring
sqltruestring
test.catch constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.cleanup​

The cleanup block registers a command to be called when the test case is completed.

cleanup {
sql = "SELECT pg_catalog.set_config('search_path', '', false)"
}
test.cleanup attributes​
NameRequiredValue
sqltruestring
test.cleanup constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.dataset​

The dataset block loads a dataset registered by a top-level dataset block into the test database, at the point of the test case it appears in.

dataset {
use = dataset.rds_snapshot.prod
}
test.dataset attributes​
NameRequiredValue
usetrue

Object reference to dataset

test.dataset constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.exec​

The exec block executes one or more SQL statements and expects all of them to succeed. If output or match is defined, the output of the SQL statement is compared to the expected value.

test.exec attributes​
NameRequiredValue
formatfalse

enum (csv, table)

matchfalsestring
outputfalsestring
sqltruestring
test.exec constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.external​

The external allows executing external programs to insert data or run assertions on the dev-database used by test case.

external {
program = [
"go", "run", "seed.go",
"--dev-url", testing.dev_url,
]
}
test.external attributes​
NameRequiredValue
matchfalsestring
outputfalsestring
programtrue

List of strings

working_dirfalsestring
test.external constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.log​

The log block logs a message to the test output.

test.log attributes​
NameRequiredValue
messagetruestring
test.log constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.schema​

test.schema attributes​
NameRequiredValue
urltruestring
test.schema constraints​
ConstraintValue
Requiredtrue
Require Namefalse

test.script.exec​

test.script.exec attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.exec blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.exec constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.loop​

test.script.loop attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.loop blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.loop constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.query​

test.script.query attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.query blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.query constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test schema​

The test "schema" "name" block describes a schema test case.

test "schema" "postal" {
parallel = true
exec {
sql = "SELECT '12345'::us_postal_code"
}
catch {
sql = "SELECT 'hello'::us_postal_code"
}
}

test.schema attributes​

NameRequiredValue
parallelfalsebool
skipfalsebool

test.schema blocks​

test.assert​

The assert block executes an SQL statement and expects a single-row, single-column result with a true value.

test.assert attributes​
NameRequiredValue
error_messagefalsestring
sqltruestring
test.assert constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.catch​

The catch block executes one or more SQL statements and expects an error to occur.

test.catch attributes​
NameRequiredValue
errorfalsestring
sqltruestring
test.catch constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.cleanup​

The cleanup block registers a command to be called when the test case is completed.

cleanup {
sql = "SELECT pg_catalog.set_config('search_path', '', false)"
}
test.cleanup attributes​
NameRequiredValue
sqltruestring
test.cleanup constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.dataset​

The dataset block loads a dataset registered by a top-level dataset block into the test database, at the point of the test case it appears in.

dataset {
use = dataset.rds_snapshot.prod
}
test.dataset attributes​
NameRequiredValue
usetrue

Object reference to dataset

test.dataset constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.exec​

The exec block executes one or more SQL statements and expects all of them to succeed. If output or match is defined, the output of the SQL statement is compared to the expected value.

test.exec attributes​
NameRequiredValue
formatfalse

enum (csv, table)

matchfalsestring
outputfalsestring
sqltruestring
test.exec constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.external​

The external allows executing external programs to insert data or run assertions on the dev-database used by test case.

external {
program = [
"go", "run", "seed.go",
"--dev-url", testing.dev_url,
]
}
test.external attributes​
NameRequiredValue
matchfalsestring
outputfalsestring
programtrue

List of strings

working_dirfalsestring
test.external constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.log​

The log block logs a message to the test output.

test.log attributes​
NameRequiredValue
messagetruestring
test.log constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.script.exec​

test.script.exec attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.exec blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.exec constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.loop​

test.script.loop attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.loop blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.loop constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.query​

test.script.query attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.query blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.query constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test script​

The test "script" "name" block describes a script test case. The optional schema block sets up the schema the script expects and must be defined before any other block.

test "script" "vip_backfill" {
schema {
url = "file://schema.hcl"
}
exec {
sql = "INSERT INTO users (id, vip, tier) VALUES (1, true, NULL)"
}
script "exec" {
file = "vip_backfill.script.hcl"
}
assert {
sql = "SELECT count(*) = 0 FROM users WHERE vip AND tier IS NULL"
}
}

test.script attributes​

NameRequiredValue
skipfalsebool

test.script blocks​

test.assert​

The assert block executes an SQL statement and expects a single-row, single-column result with a true value.

test.assert attributes​
NameRequiredValue
error_messagefalsestring
sqltruestring
test.assert constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.catch​

The catch block executes one or more SQL statements and expects an error to occur.

test.catch attributes​
NameRequiredValue
errorfalsestring
sqltruestring
test.catch constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.cleanup​

The cleanup block registers a command to be called when the test case is completed.

cleanup {
sql = "SELECT pg_catalog.set_config('search_path', '', false)"
}
test.cleanup attributes​
NameRequiredValue
sqltruestring
test.cleanup constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.dataset​

The dataset block loads a dataset registered by a top-level dataset block into the test database, at the point of the test case it appears in.

dataset {
use = dataset.rds_snapshot.prod
}
test.dataset attributes​
NameRequiredValue
usetrue

Object reference to dataset

test.dataset constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.exec​

The exec block executes one or more SQL statements and expects all of them to succeed. If output or match is defined, the output of the SQL statement is compared to the expected value.

test.exec attributes​
NameRequiredValue
formatfalse

enum (csv, table)

matchfalsestring
outputfalsestring
sqltruestring
test.exec constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.external​

The external allows executing external programs to insert data or run assertions on the dev-database used by test case.

external {
program = [
"go", "run", "seed.go",
"--dev-url", testing.dev_url,
]
}
test.external attributes​
NameRequiredValue
matchfalsestring
outputfalsestring
programtrue

List of strings

working_dirfalsestring
test.external constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue
Mutually exclusive sets[output, match]

test.log​

The log block logs a message to the test output.

test.log attributes​
NameRequiredValue
messagetruestring
test.log constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Repeatabletrue

test.schema​

test.schema attributes​
NameRequiredValue
urltruestring

test.script.exec​

test.script.exec attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.exec blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.exec constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.loop​

test.script.loop attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.loop blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.loop constraints​
ConstraintValue
Requiredfalse
Repeatabletrue

test.script.query​

test.script.query attributes​
NameRequiredValue
errorfalsestring
filetruestring
matchfalsestring
outputfalsestring
runfalsestring
varsfalsemap
test.script.query blocks​

test.script.as​

test.script.as attributes​
NameRequiredValue
passwordfalsestring
rolefalsestring
userfalsestring
test.script.as constraints​
ConstraintValue
Requiredfalse
Require Namefalse
Mutually exclusive sets[role, user]
One of required sets[role, user]
test.script.query constraints​
ConstraintValue
Requiredfalse
Repeatabletrue