@@ -4,12 +4,10 @@ use std::time::Duration;
4
4
use criterion:: { black_box, criterion_group, criterion_main, Criterion } ;
5
5
6
6
use 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 ;
10
8
use partiql_eval:: plan;
11
9
use partiql_logical as logical;
12
- use partiql_logical:: BindingsOp :: Project ;
10
+ use partiql_logical:: BindingsOp :: { Project , ProjectAll } ;
13
11
use partiql_logical:: { BinaryOp , BindingsOp , JoinKind , LogicalPlan , PathComponent , ValueExpr } ;
14
12
use partiql_value:: {
15
13
partiql_bag, partiql_list, partiql_tuple, Bag , BindingsName , List , Tuple , Value ,
@@ -149,22 +147,30 @@ fn eval_bench(c: &mut Criterion) {
149
147
} ) ;
150
148
151
149
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 (
159
159
"employeesNestScalars" . to_string( ) ,
160
160
) ) ] ,
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 ) ;
164
167
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) ) ;
166
172
if eval {
167
- from . evaluate ( & ctx ) ;
173
+ evaluate ( eval_plan , data ( ) ) ;
168
174
}
169
175
}
170
176
0 commit comments