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'
;

