@@ -846,10 +846,10 @@ def remap_refs(
846846 ) -> ReadTableNode :
847847 return self
848848
849- def with_order_cols (self ):
849+ def pull_out_order (self ):
850850 # Maybe the ordering should be required to always be in the scan list, and then we won't need this?
851851 if self .source .ordering is None :
852- return self , orderings . RowOrdering ()
852+ return self , RowOrdering ()
853853
854854 order_cols = {col .sql for col in self .source .ordering .referenced_columns }
855855 scan_cols = {col .source_id for col in self .scan_list .items }
@@ -863,10 +863,18 @@ def with_order_cols(self):
863863 ]
864864 new_scan_list = ScanList (items = (* self .scan_list .items , * new_scan_cols ))
865865 new_order = self .source .ordering .remap_column_refs (
866- {identifiers .ColumnId (item .source_id ): item .id for item in new_scan_cols },
866+ {
867+ identifiers .ColumnId (item .source_id ): item .id
868+ for item in new_scan_list .items
869+ },
867870 allow_partial_bindings = True ,
868871 )
869- return dataclasses .replace (self , scan_list = new_scan_list ), new_order
872+ new_node = dataclasses .replace (
873+ self ,
874+ scan_list = new_scan_list ,
875+ source = self .source .with_ordering (RowOrdering ()),
876+ )
877+ return new_node , new_order
870878
871879
872880@dataclasses .dataclass (frozen = True , eq = False )
0 commit comments