@@ -1122,7 +1122,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1122
1122
let expr = exec
1123
1123
. expr ( )
1124
1124
. iter ( )
1125
- . map ( |expr| serialize_physical_expr ( Arc :: clone ( & expr. 0 ) , extension_codec) )
1125
+ . map ( |expr| serialize_physical_expr ( & expr. 0 , extension_codec) )
1126
1126
. collect :: < Result < Vec < _ > > > ( ) ?;
1127
1127
let expr_name = exec. expr ( ) . iter ( ) . map ( |expr| expr. 1 . clone ( ) ) . collect ( ) ;
1128
1128
return Ok ( protobuf:: PhysicalPlanNode {
@@ -1163,7 +1163,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1163
1163
protobuf:: FilterExecNode {
1164
1164
input : Some ( Box :: new ( input) ) ,
1165
1165
expr : Some ( serialize_physical_expr (
1166
- Arc :: clone ( exec. predicate ( ) ) ,
1166
+ exec. predicate ( ) ,
1167
1167
extension_codec,
1168
1168
) ?) ,
1169
1169
default_filter_selectivity : exec. default_selectivity ( ) as u32 ,
@@ -1220,8 +1220,8 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1220
1220
. on ( )
1221
1221
. iter ( )
1222
1222
. map ( |tuple| {
1223
- let l = serialize_physical_expr ( tuple. 0 . to_owned ( ) , extension_codec) ?;
1224
- let r = serialize_physical_expr ( tuple. 1 . to_owned ( ) , extension_codec) ?;
1223
+ let l = serialize_physical_expr ( & tuple. 0 , extension_codec) ?;
1224
+ let r = serialize_physical_expr ( & tuple. 1 , extension_codec) ?;
1225
1225
Ok :: < _ , DataFusionError > ( protobuf:: JoinOn {
1226
1226
left : Some ( l) ,
1227
1227
right : Some ( r) ,
@@ -1233,10 +1233,8 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1233
1233
. filter ( )
1234
1234
. as_ref ( )
1235
1235
. map ( |f| {
1236
- let expression = serialize_physical_expr (
1237
- f. expression ( ) . to_owned ( ) ,
1238
- extension_codec,
1239
- ) ?;
1236
+ let expression =
1237
+ serialize_physical_expr ( f. expression ( ) , extension_codec) ?;
1240
1238
let column_indices = f
1241
1239
. column_indices ( )
1242
1240
. iter ( )
@@ -1294,8 +1292,8 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1294
1292
. on ( )
1295
1293
. iter ( )
1296
1294
. map ( |tuple| {
1297
- let l = serialize_physical_expr ( tuple. 0 . to_owned ( ) , extension_codec) ?;
1298
- let r = serialize_physical_expr ( tuple. 1 . to_owned ( ) , extension_codec) ?;
1295
+ let l = serialize_physical_expr ( & tuple. 0 , extension_codec) ?;
1296
+ let r = serialize_physical_expr ( & tuple. 1 , extension_codec) ?;
1299
1297
Ok :: < _ , DataFusionError > ( protobuf:: JoinOn {
1300
1298
left : Some ( l) ,
1301
1299
right : Some ( r) ,
@@ -1307,10 +1305,8 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1307
1305
. filter ( )
1308
1306
. as_ref ( )
1309
1307
. map ( |f| {
1310
- let expression = serialize_physical_expr (
1311
- f. expression ( ) . to_owned ( ) ,
1312
- extension_codec,
1313
- ) ?;
1308
+ let expression =
1309
+ serialize_physical_expr ( f. expression ( ) , extension_codec) ?;
1314
1310
let column_indices = f
1315
1311
. column_indices ( )
1316
1312
. iter ( )
@@ -1348,7 +1344,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1348
1344
. map ( |expr| {
1349
1345
Ok ( protobuf:: PhysicalSortExprNode {
1350
1346
expr : Some ( Box :: new ( serialize_physical_expr (
1351
- expr. expr . to_owned ( ) ,
1347
+ & expr. expr ,
1352
1348
extension_codec,
1353
1349
) ?) ) ,
1354
1350
asc : !expr. options . descending ,
@@ -1368,7 +1364,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1368
1364
. map ( |expr| {
1369
1365
Ok ( protobuf:: PhysicalSortExprNode {
1370
1366
expr : Some ( Box :: new ( serialize_physical_expr (
1371
- expr. expr . to_owned ( ) ,
1367
+ & expr. expr ,
1372
1368
extension_codec,
1373
1369
) ?) ) ,
1374
1370
asc : !expr. options . descending ,
@@ -1475,14 +1471,14 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1475
1471
. group_expr ( )
1476
1472
. null_expr ( )
1477
1473
. iter ( )
1478
- . map ( |expr| serialize_physical_expr ( expr. 0 . to_owned ( ) , extension_codec) )
1474
+ . map ( |expr| serialize_physical_expr ( & expr. 0 , extension_codec) )
1479
1475
. collect :: < Result < Vec < _ > > > ( ) ?;
1480
1476
1481
1477
let group_expr = exec
1482
1478
. group_expr ( )
1483
1479
. expr ( )
1484
1480
. iter ( )
1485
- . map ( |expr| serialize_physical_expr ( expr. 0 . to_owned ( ) , extension_codec) )
1481
+ . map ( |expr| serialize_physical_expr ( & expr. 0 , extension_codec) )
1486
1482
. collect :: < Result < Vec < _ > > > ( ) ?;
1487
1483
1488
1484
let limit = exec. limit ( ) . map ( |value| protobuf:: AggLimit {
@@ -1581,7 +1577,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1581
1577
if let Some ( exec) = plan. downcast_ref :: < ParquetExec > ( ) {
1582
1578
let predicate = exec
1583
1579
. predicate ( )
1584
- . map ( |pred| serialize_physical_expr ( Arc :: clone ( pred) , extension_codec) )
1580
+ . map ( |pred| serialize_physical_expr ( pred, extension_codec) )
1585
1581
. transpose ( ) ?;
1586
1582
return Ok ( protobuf:: PhysicalPlanNode {
1587
1583
physical_plan_type : Some ( PhysicalPlanType :: ParquetScan (
@@ -1653,7 +1649,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1653
1649
. map ( |expr| {
1654
1650
let sort_expr = Box :: new ( protobuf:: PhysicalSortExprNode {
1655
1651
expr : Some ( Box :: new ( serialize_physical_expr (
1656
- expr. expr . to_owned ( ) ,
1652
+ & expr. expr ,
1657
1653
extension_codec,
1658
1654
) ?) ) ,
1659
1655
asc : !expr. options . descending ,
@@ -1722,7 +1718,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1722
1718
. map ( |expr| {
1723
1719
let sort_expr = Box :: new ( protobuf:: PhysicalSortExprNode {
1724
1720
expr : Some ( Box :: new ( serialize_physical_expr (
1725
- expr. expr . to_owned ( ) ,
1721
+ & expr. expr ,
1726
1722
extension_codec,
1727
1723
) ?) ) ,
1728
1724
asc : !expr. options . descending ,
@@ -1761,10 +1757,8 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1761
1757
. filter ( )
1762
1758
. as_ref ( )
1763
1759
. map ( |f| {
1764
- let expression = serialize_physical_expr (
1765
- f. expression ( ) . to_owned ( ) ,
1766
- extension_codec,
1767
- ) ?;
1760
+ let expression =
1761
+ serialize_physical_expr ( f. expression ( ) , extension_codec) ?;
1768
1762
let column_indices = f
1769
1763
. column_indices ( )
1770
1764
. iter ( )
@@ -1806,13 +1800,13 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1806
1800
let window_expr = exec
1807
1801
. window_expr ( )
1808
1802
. iter ( )
1809
- . map ( |e| serialize_physical_window_expr ( Arc :: clone ( e ) , extension_codec) )
1803
+ . map ( |e| serialize_physical_window_expr ( e , extension_codec) )
1810
1804
. collect :: < Result < Vec < protobuf:: PhysicalWindowExprNode > > > ( ) ?;
1811
1805
1812
1806
let partition_keys = exec
1813
1807
. partition_keys
1814
1808
. iter ( )
1815
- . map ( |e| serialize_physical_expr ( Arc :: clone ( e ) , extension_codec) )
1809
+ . map ( |e| serialize_physical_expr ( e , extension_codec) )
1816
1810
. collect :: < Result < Vec < protobuf:: PhysicalExprNode > > > ( ) ?;
1817
1811
1818
1812
return Ok ( protobuf:: PhysicalPlanNode {
@@ -1836,13 +1830,13 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1836
1830
let window_expr = exec
1837
1831
. window_expr ( )
1838
1832
. iter ( )
1839
- . map ( |e| serialize_physical_window_expr ( Arc :: clone ( e ) , extension_codec) )
1833
+ . map ( |e| serialize_physical_window_expr ( e , extension_codec) )
1840
1834
. collect :: < Result < Vec < protobuf:: PhysicalWindowExprNode > > > ( ) ?;
1841
1835
1842
1836
let partition_keys = exec
1843
1837
. partition_keys
1844
1838
. iter ( )
1845
- . map ( |e| serialize_physical_expr ( Arc :: clone ( e ) , extension_codec) )
1839
+ . map ( |e| serialize_physical_expr ( e , extension_codec) )
1846
1840
. collect :: < Result < Vec < protobuf:: PhysicalExprNode > > > ( ) ?;
1847
1841
1848
1842
let input_order_mode = match & exec. input_order_mode {
@@ -1886,7 +1880,7 @@ impl AsExecutionPlan for protobuf::PhysicalPlanNode {
1886
1880
let expr: PhysicalSortExpr = requirement. to_owned ( ) . into ( ) ;
1887
1881
let sort_expr = protobuf:: PhysicalSortExprNode {
1888
1882
expr : Some ( Box :: new ( serialize_physical_expr (
1889
- expr. expr . to_owned ( ) ,
1883
+ & expr. expr ,
1890
1884
extension_codec,
1891
1885
) ?) ) ,
1892
1886
asc : !expr. options . descending ,
@@ -2025,7 +2019,7 @@ pub trait PhysicalExtensionCodec: Debug + Send + Sync {
2025
2019
2026
2020
fn try_encode_expr (
2027
2021
& self ,
2028
- _node : Arc < dyn PhysicalExpr > ,
2022
+ _node : & Arc < dyn PhysicalExpr > ,
2029
2023
_buf : & mut Vec < u8 > ,
2030
2024
) -> Result < ( ) > {
2031
2025
not_impl_err ! ( "PhysicalExtensionCodec is not provided" )
0 commit comments