@@ -32,7 +32,9 @@ use crate::physical_optimizer::optimizer::PhysicalOptimizerRule;
32
32
use crate :: physical_plan:: cross_join:: CrossJoinExec ;
33
33
use crate :: physical_plan:: explain:: ExplainExec ;
34
34
use crate :: physical_plan:: expressions;
35
- use crate :: physical_plan:: expressions:: { CaseExpr , Column , Literal , PhysicalSortExpr } ;
35
+ use crate :: physical_plan:: expressions:: {
36
+ CaseExpr , Column , GetIndexedFieldExpr , Literal , PhysicalSortExpr ,
37
+ } ;
36
38
use crate :: physical_plan:: filter:: FilterExec ;
37
39
use crate :: physical_plan:: hash_aggregate:: { AggregateMode , HashAggregateExec } ;
38
40
use crate :: physical_plan:: hash_join:: HashJoinExec ;
@@ -993,10 +995,18 @@ impl DefaultPhysicalPlanner {
993
995
Expr :: IsNotNull ( expr) => expressions:: is_not_null (
994
996
self . create_physical_expr ( expr, input_dfschema, input_schema, ctx_state) ?,
995
997
) ,
996
- Expr :: GetIndexedField { expr, key } => expressions:: get_indexed_field (
997
- self . create_physical_expr ( expr, input_dfschema, input_schema, ctx_state) ?,
998
- key. clone ( ) ,
999
- ) ,
998
+ Expr :: GetIndexedField { expr, key } => {
999
+ Ok ( Arc :: new ( GetIndexedFieldExpr :: new (
1000
+ self . create_physical_expr (
1001
+ expr,
1002
+ input_dfschema,
1003
+ input_schema,
1004
+ ctx_state,
1005
+ ) ?,
1006
+ key. clone ( ) ,
1007
+ ) ) )
1008
+ }
1009
+
1000
1010
Expr :: ScalarFunction { fun, args } => {
1001
1011
let physical_args = args
1002
1012
. iter ( )
0 commit comments