@@ -128,39 +128,32 @@ def RelTable_to_sql(rel: RelTable, from_obj):
128128
129129@rel_to_sql .register
130130def RelJoin_to_sql (rel : RelJoin , from_obj ):
131- value , from_obj = rel_to_sql (rel .rel , from_obj = from_obj )
132- table = rel .fk .column .table
131+ val , from_obj = rel_to_sql (rel .rel , from_obj = from_obj )
133132 from_obj , _ = from_obj .join_at (
134- table , (rel .fk .parent .name , rel .fk .column .name )
133+ rel .fk .column .table ,
134+ (rel .fk .parent .name , rel .fk .column .name ),
135135 )
136- return value , from_obj
136+ return val , from_obj
137137
138138
139139@rel_to_sql .register
140140def RelRevJoin_to_sql (rel : RelRevJoin , from_obj ):
141141 if isinstance (rel .rel , RelParent ):
142142 table = rel .fk .parent .table .alias ()
143- sel = (
143+ from_obj = From . make (
144144 table .select ()
145145 .correlate (from_obj .at )
146146 .where (
147147 table .columns [rel .fk .parent .name ]
148148 == from_obj .at .columns [rel .fk .column .name ]
149149 )
150150 )
151- return None , From .make (sel )
152- elif isinstance (rel .rel , RelAggregateParent ):
153- value , from_obj = rel_to_sql (rel .rel , from_obj = from_obj )
154- table = rel .fk .parent .table
155- from_obj , _ = from_obj .join_at (
156- table , (rel .fk .column .name , rel .fk .parent .name )
157- )
158- return value , from_obj
151+ return None , from_obj
159152 else :
160153 value , from_obj = rel_to_sql (rel .rel , from_obj = from_obj )
161- table = rel .fk .parent .table
162154 from_obj , _ = from_obj .join_at (
163- table , (rel .fk .column .name , rel .fk .parent .name )
155+ rel .fk .parent .table ,
156+ (rel .fk .column .name , rel .fk .parent .name ),
164157 )
165158 return value , from_obj
166159
@@ -170,16 +163,14 @@ def RelTake_to_sql(rel: RelTake, from_obj):
170163 val , from_obj = rel_to_sql (rel .rel , from_obj )
171164 at = from_obj .at
172165 take , from_obj = expr_to_sql (rel .take , from_obj )
173- from_obj = from_obj .replace (at = at )
174- sel = (
166+ from_obj = From .make (
175167 sa .select (
176- [* from_obj .group_by_columns , from_obj . at ],
168+ [* from_obj .group_by_columns , at ],
177169 from_obj = from_obj .current ,
178170 )
179171 .limit (take )
180172 .alias ()
181173 )
182- from_obj = From .make (sel )
183174 return val , from_obj
184175
185176
0 commit comments