@@ -49,8 +49,6 @@ def compile_sql(request: configs.CompileRequest) -> configs.CompileResult:
4949 output_cols = output_names ,
5050 limit = request .peek_count ,
5151 )
52- # Extract CTEs early, as later rewriters could otherwise make common subtrees diverge
53- result_node = typing .cast (nodes .ResultNode , rewrite .extract_ctes (result_node ))
5452 if request .sort_rows :
5553 # Can only pullup slice if we are doing ORDER BY in outermost SELECT
5654 # Need to do this before replacing unsupported ops, as that will rewrite slice ops
@@ -64,6 +62,8 @@ def compile_sql(request: configs.CompileRequest) -> configs.CompileResult:
6462 if request .sort_rows :
6563 result_node = typing .cast (nodes .ResultNode , rewrite .column_pruning (result_node ))
6664 encoded_type_refs = data_type_logger .encode_type_refs (result_node )
65+ # TODO: Extract CTEs earlier
66+ result_node = typing .cast (nodes .ResultNode , rewrite .extract_ctes (result_node ))
6767 sql = _compile_result_node (result_node )
6868 return configs .CompileResult (
6969 sql ,
@@ -76,6 +76,8 @@ def compile_sql(request: configs.CompileRequest) -> configs.CompileResult:
7676 result_node = dataclasses .replace (result_node , order_by = None )
7777 result_node = typing .cast (nodes .ResultNode , rewrite .column_pruning (result_node ))
7878 encoded_type_refs = data_type_logger .encode_type_refs (result_node )
79+ # TODO: Extract CTEs earlier
80+ result_node = typing .cast (nodes .ResultNode , rewrite .extract_ctes (result_node ))
7981 sql = _compile_result_node (result_node )
8082 # Return the ordering iff no extra columns are needed to define the row order
8183 if ordering is not None :
0 commit comments