in generator/dryrun.py [0:0]
def get_error(self) -> Optional[Errors]:
"""Get specific errors for edge case handling."""
errors = self.errors()
if len(errors) != 1:
return None
error = errors[0]
if error and error.get("code") in [400, 403]:
error_message = error.get("message", "")
if (
"does not have bigquery.tables.create permission for dataset"
in error_message
or "Permission bigquery.tables.create denied" in error_message
or "Permission bigquery.datasets.update denied" in error_message
):
return Errors.READ_ONLY
if "without a filter over column(s)" in error_message:
return Errors.DATE_FILTER_NEEDED
if (
"Syntax error: Expected end of input but got keyword WHERE"
in error_message
):
return Errors.DATE_FILTER_NEEDED_AND_SYNTAX
if (
"Permission bigquery.tables.get denied on table" in error_message
or "User does not have permission to query table" in error_message
):
return Errors.PERMISSION_DENIED
return None