Skip to content

Commit a5283f1

Browse files
move extract_ctes later in compiler
1 parent 10a9798 commit a5283f1

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

bigframes/core/compile/sqlglot/compiler.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)