@@ -1258,37 +1258,39 @@ def execute_union(op, **kw):
1258
1258
1259
1259
@translate .register (ops .Intersection )
1260
1260
def execute_intersection (op , ** kw ):
1261
- with pl .SQLContext (
1261
+ ctx = kw .get ("ctx" )
1262
+ ctx .register_many (
1262
1263
frames = {
1263
1264
"left" : translate (op .left , ** kw ),
1264
1265
"right" : translate (op .right , ** kw ),
1265
1266
}
1266
- ) as ctx :
1267
- sql = (
1268
- sg .select (STAR )
1269
- .from_ (sg .to_identifier ("left" , quoted = True ))
1270
- .intersect (sg .select (STAR ).from_ (sg .to_identifier ("right" , quoted = True )))
1271
- )
1272
- result = ctx .execute (sql .sql () )
1267
+ )
1268
+ sql = (
1269
+ sg .select (STAR )
1270
+ .from_ (sg .to_identifier ("left" , quoted = True ))
1271
+ .intersect (sg .select (STAR ).from_ (sg .to_identifier ("right" , quoted = True )))
1272
+ )
1273
+ result = ctx .execute (sql .sql (Polars ), eager = False )
1273
1274
if op .distinct is True :
1274
1275
return result .unique ()
1275
1276
return result
1276
1277
1277
1278
1278
1279
@translate .register (ops .Difference )
1279
1280
def execute_difference (op , ** kw ):
1280
- with pl .SQLContext (
1281
+ ctx = kw .get ("ctx" )
1282
+ ctx .register_many (
1281
1283
frames = {
1282
1284
"left" : translate (op .left , ** kw ),
1283
1285
"right" : translate (op .right , ** kw ),
1284
1286
}
1285
- ) as ctx :
1286
- sql = (
1287
- sg .select (STAR )
1288
- .from_ (sg .to_identifier ("left" , quoted = True ))
1289
- .except_ (sg .select (STAR ).from_ (sg .to_identifier ("right" , quoted = True )))
1290
- )
1291
- result = ctx .execute (sql .sql () )
1287
+ )
1288
+ sql = (
1289
+ sg .select (STAR )
1290
+ .from_ (sg .to_identifier ("left" , quoted = True ))
1291
+ .except_ (sg .select (STAR ).from_ (sg .to_identifier ("right" , quoted = True )))
1292
+ )
1293
+ result = ctx .execute (sql .sql (Polars ), eager = False )
1292
1294
if op .distinct is True :
1293
1295
return result .unique ()
1294
1296
return result
0 commit comments