Debugging statements

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' 
 ; 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: