3434from bigframes .core .compile .sqlglot .expressions import typed_expr
3535import bigframes .core .compile .sqlglot .scalar_compiler as scalar_compiler
3636import bigframes .core .compile .sqlglot .sqlglot_ir as ir
37+ from bigframes .core .logging import data_types as data_type_logger
3738import bigframes .core .ordering as bf_ordering
3839from bigframes .core .rewrite import schema_binding
3940
@@ -65,9 +66,13 @@ def compile_sql(request: configs.CompileRequest) -> configs.CompileResult:
6566 result_node = typing .cast (
6667 nodes .ResultNode , rewrite .defer_selection (result_node )
6768 )
69+ encoded_type_refs = data_type_logger .encode_type_refs (result_node )
6870 sql = _compile_result_node (result_node , uid_gen )
6971 return configs .CompileResult (
70- sql , result_node .schema .to_bigquery (), result_node .order_by
72+ sql ,
73+ result_node .schema .to_bigquery (),
74+ result_node .order_by ,
75+ encoded_type_refs ,
7176 )
7277
7378 ordering : typing .Optional [bf_ordering .RowOrdering ] = result_node .order_by
@@ -76,14 +81,17 @@ def compile_sql(request: configs.CompileRequest) -> configs.CompileResult:
7681
7782 result_node = _remap_variables (result_node , uid_gen )
7883 result_node = typing .cast (nodes .ResultNode , rewrite .defer_selection (result_node ))
84+ encoded_type_refs = data_type_logger .encode_type_refs (result_node )
7985 sql = _compile_result_node (result_node , uid_gen )
8086 # Return the ordering iff no extra columns are needed to define the row order
8187 if ordering is not None :
8288 output_order = (
8389 ordering if ordering .referenced_columns .issubset (result_node .ids ) else None
8490 )
8591 assert (not request .materialize_all_order_keys ) or (output_order is not None )
86- return configs .CompileResult (sql , result_node .schema .to_bigquery (), output_order )
92+ return configs .CompileResult (
93+ sql , result_node .schema .to_bigquery (), output_order , encoded_type_refs
94+ )
8795
8896
8997def _remap_variables (
0 commit comments