2626 ]
2727
2828 from sqlglot .dialects .dialect import DialectType
29- from sqlglot .typing import ExpressionSpecType
29+ from sqlglot .typing import ExpressionMetadataType
3030
3131logger = logging .getLogger ("sqlglot" )
3232
3333
3434def annotate_types (
3535 expression : E ,
3636 schema : t .Optional [t .Dict | Schema ] = None ,
37- expression_spec : t .Optional [ExpressionSpecType ] = None ,
37+ expression_metadata : t .Optional [ExpressionMetadataType ] = None ,
3838 coerces_to : t .Optional [t .Dict [exp .DataType .Type , t .Set [exp .DataType .Type ]]] = None ,
3939 dialect : DialectType = None ,
4040) -> E :
@@ -61,7 +61,7 @@ def annotate_types(
6161
6262 schema = ensure_schema (schema , dialect = dialect )
6363
64- return TypeAnnotator (schema , expression_spec , coerces_to ).annotate (expression )
64+ return TypeAnnotator (schema , expression_metadata , coerces_to ).annotate (expression )
6565
6666
6767def _coerce_date_literal (l : exp .Expression , unit : t .Optional [exp .Expression ]) -> exp .DataType .Type :
@@ -175,13 +175,13 @@ class TypeAnnotator(metaclass=_TypeAnnotator):
175175 def __init__ (
176176 self ,
177177 schema : Schema ,
178- expression_spec : t .Optional [ExpressionSpecType ] = None ,
178+ expression_metadata : t .Optional [ExpressionMetadataType ] = None ,
179179 coerces_to : t .Optional [t .Dict [exp .DataType .Type , t .Set [exp .DataType .Type ]]] = None ,
180180 binary_coercions : t .Optional [BinaryCoercions ] = None ,
181181 ) -> None :
182182 self .schema = schema
183- self .expression_spec = (
184- expression_spec or Dialect .get_or_raise (schema .dialect ).EXPRESSION_SPEC
183+ self .expression_metadata = (
184+ expression_metadata or Dialect .get_or_raise (schema .dialect ).EXPRESSION_METADATA
185185 )
186186 self .coerces_to = (
187187 coerces_to or Dialect .get_or_raise (schema .dialect ).COERCES_TO or self .COERCES_TO
@@ -373,7 +373,7 @@ def _maybe_annotate(self, expression: E) -> E:
373373 if id (expression ) in self ._visited :
374374 return expression # We've already inferred the expression's type
375375
376- spec = self .expression_spec .get (expression .__class__ )
376+ spec = self .expression_metadata .get (expression .__class__ )
377377
378378 if spec and (annotator := spec .get ("annotator" )):
379379 return annotator (self , expression )
0 commit comments