diff --git a/sqlglot/dialects/bigquery.py b/sqlglot/dialects/bigquery.py index 29361e65fe..cbb5ea1983 100644 --- a/sqlglot/dialects/bigquery.py +++ b/sqlglot/dialects/bigquery.py @@ -447,6 +447,8 @@ class BigQuery(Dialect): }, exp.ArrayConcat: lambda self, e: self._annotate_by_args(e, "this", "expressions"), exp.Concat: _annotate_concat, + exp.SHA: lambda self, e: self._annotate_with_type(e, exp.DataType.Type.BINARY), + exp.SHA2: lambda self, e: self._annotate_with_type(e, exp.DataType.Type.BINARY), exp.Sign: lambda self, e: self._annotate_by_args(e, "this"), exp.Split: lambda self, e: self._annotate_by_args(e, "this", array=True), } diff --git a/sqlglot/dialects/dialect.py b/sqlglot/dialects/dialect.py index 05c960aed3..a59feea4d7 100644 --- a/sqlglot/dialects/dialect.py +++ b/sqlglot/dialects/dialect.py @@ -647,8 +647,6 @@ class Dialect(metaclass=_Dialect): }, exp.DataType.Type.BINARY: { exp.FromBase64, - exp.SHA, - exp.SHA2, }, exp.DataType.Type.BOOLEAN: { exp.Between, diff --git a/tests/fixtures/optimizer/annotate_functions.sql b/tests/fixtures/optimizer/annotate_functions.sql index 7e325637ef..c2f74af89a 100644 --- a/tests/fixtures/optimizer/annotate_functions.sql +++ b/tests/fixtures/optimizer/annotate_functions.sql @@ -82,12 +82,6 @@ BIGINT; STARTS_WITH(tbl.str_col, prefix); BOOLEAN; -SHA(str_col); -BINARY; - -SHA2(str_col); -BINARY; - -------------------------------------- -- Spark2 / Spark3 / Databricks -------------------------------------- @@ -558,6 +552,18 @@ BOOLEAN; MAKE_INTERVAL(1, 6, 15); INTERVAL; +# dialect: bigquery +SHA1(str_col); +BINARY; + +# dialect: bigquery +SHA256(str_col); +BINARY; + +# dialect: bigquery +SHA512(str_col); +BINARY; + -------------------------------------- -- Snowflake --------------------------------------