@@ -4,12 +4,10 @@ use std::time::Duration;
44use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
55
66use partiql_eval:: env:: basic:: MapBindings ;
7- use partiql_eval:: eval:: evaluable:: { EvalScan , Evaluable } ;
8- use partiql_eval:: eval:: expr:: { EvalPath , EvalPathComponent , EvalVarRef } ;
9- use partiql_eval:: eval:: { BasicContext , EvalPlan } ;
7+ use partiql_eval:: eval:: EvalPlan ;
108use partiql_eval:: plan;
119use partiql_logical as logical;
12- use partiql_logical:: BindingsOp :: Project ;
10+ use partiql_logical:: BindingsOp :: { Project , ProjectAll } ;
1311use partiql_logical:: { BinaryOp , BindingsOp , JoinKind , LogicalPlan , PathComponent , ValueExpr } ;
1412use partiql_value:: {
1513 partiql_bag, partiql_list, partiql_tuple, Bag , BindingsName , List , Tuple , Value ,
@@ -149,22 +147,30 @@ fn eval_bench(c: &mut Criterion) {
149147 } ) ;
150148
151149 fn eval ( eval : bool ) {
152- // eval plan for SELECT * FROM hr.employeesNestScalars
153- let mut from = EvalScan :: new (
154- Box :: new ( EvalPath {
155- expr : Box :: new ( EvalVarRef {
156- name : BindingsName :: CaseInsensitive ( "hr" . to_string ( ) ) ,
157- } ) ,
158- components : vec ! [ EvalPathComponent :: Key ( BindingsName :: CaseInsensitive (
150+ // logical plan for SELECT * FROM hr.employeesNestScalars
151+ let mut logical_plan = LogicalPlan :: new ( ) ;
152+
153+ let from = logical_plan. add_operator ( BindingsOp :: Scan ( logical:: Scan {
154+ expr : ValueExpr :: Path (
155+ Box :: new ( ValueExpr :: VarRef ( BindingsName :: CaseInsensitive (
156+ "hr" . to_string ( ) ,
157+ ) ) ) ,
158+ vec ! [ PathComponent :: Key ( BindingsName :: CaseInsensitive (
159159 "employeesNestScalars" . to_string( ) ,
160160 ) ) ] ,
161- } ) ,
162- "x" ,
163- ) ;
161+ ) ,
162+ as_key : "x" . to_string ( ) ,
163+ at_key : None ,
164+ } ) ) ;
165+ let project_all = logical_plan. add_operator ( ProjectAll ) ;
166+ let sink = logical_plan. add_operator ( BindingsOp :: Sink ) ;
164167
165- let ctx = BasicContext :: new ( data ( ) ) ;
168+ logical_plan. add_flow ( from, project_all) ;
169+ logical_plan. add_flow ( project_all, sink) ;
170+
171+ let eval_plan = eval_plan ( black_box ( & logical_plan) ) ;
166172 if eval {
167- from . evaluate ( & ctx ) ;
173+ evaluate ( eval_plan , data ( ) ) ;
168174 }
169175 }
170176
0 commit comments