ZetaSQL supports the following debugging statements.
ASSERT expression [AS description]
Description
Evaluates expression
.
If expression
evaluates to TRUE
, the statement returns successfully
without any result.
If expression
evaluates to FALSE
or NULL
, the statement generates an
error. If AS description
is present, description
will appear in the error
message.
expression
must evaluate to a BOOL
.
description
must be a STRING
literal.
Examples
The following examples assert that the data source contains more than a specific number of rows.
-- This query succeeds and no error is produced.
ASSERT (
(SELECT COUNT(*) > 5 FROM UNNEST([1, 2, 3, 4, 5, 6]))
) AS 'Table must contain more than 5 rows.';
-- Error: Table must contain more than 10 rows.
ASSERT (
(SELECT COUNT(*) > 10 FROM UNNEST([1, 2, 3, 4, 5, 6]))
) AS 'Table must contain more than 10 rows.';
The following examples assert that the data source contains a particular value.
-- This query succeeds and no error is produced.
ASSERT
EXISTS(
(SELECT X FROM UNNEST([7877, 7879, 7883, 7901, 7907]) AS X WHERE X = 7907))
AS 'Column X must contain the value 7907.';
-- Error: Column X must contain the value 7919.
ASSERT
EXISTS(
(SELECT X FROM UNNEST([7877, 7879, 7883, 7901, 7907]) AS X WHERE X = 7919))
AS 'Column X must contain the value 7919';