GoogleSQL for BigQuery supports the following debugging statements.
ASSERT
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.
An ASSERT statement is billed in the same way as the query
SELECT expression, except that the result of an ASSERT statement is never
cached.
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';