@@ -45,45 +45,18 @@ impl Database {
4545 /// Limit(1)
4646 /// Project(a,b)
4747 let logical_plan = binder. bind ( & stmts[ 0 ] ) ?;
48- println ! ( "logic plan: {:#?}" , logical_plan) ;
48+ // println!("logic plan: {:#?}", logical_plan);
4949
5050 let mut builder = PhysicalPlanBuilder :: new ( ) ;
5151 let operator = builder. build_plan ( & logical_plan) ?;
52- println ! ( "operator: {:#?}" , operator) ;
52+ // println!("operator: {:#?}", operator);
5353
5454 let storage = StorageImpl :: InMemoryStorage ( self . storage . clone ( ) ) ;
5555 let executor = VolcanoExecutor :: new ( storage) ;
5656
5757 let mut stream = executor. build ( operator) ;
5858
5959 Ok ( VolcanoExecutor :: try_collect ( & mut stream) . await ?)
60-
61- // // let physical_planner = PhysicalPlaner::default();
62- // // let executor_builder = ExecutorBuilder::new(self.env.clone());
63- //
64- // // let physical_plan = physical_planner.plan(logical_plan)?;
65- // // let executor = executor_builder.build(physical_plan)?;
66- // // futures::executor::block_on(executor).unwrap();
67- //
68- // /// THE FOLLOWING CODE IS FOR TESTING ONLY
69- // /// THE FINAL CODE WILL BE IN executor MODULE
70- // if let LogicalPlan::CreateTable(plan) = logical_plan {
71- // let mut columns = Vec::new();
72- // plan.columns.iter().for_each(|c| {
73- // columns.push(ColumnCatalog::new(c.0.clone(), c.1, c.2.clone()));
74- // });
75- // let table_name = plan.table_name.clone();
76- // // columns->batch record
77- // let mut data = Vec::new();
78- //
79- // columns.iter().for_each(|c| {
80- // let batch = RecordBatch::new_empty(Arc::new(Schema::new(vec![c.to_field()])));
81- // data.push(batch);
82- // });
83- //
84- // self.storage
85- // .create_table(IdGenerator::build(), table_name.as_str(), data)?;
86- // }
8760 }
8861}
8962
@@ -126,6 +99,7 @@ mod test {
12699 use arrow:: compute:: concat_batches;
127100 use arrow:: datatypes:: Schema ;
128101 use arrow:: record_batch:: RecordBatch ;
102+ use arrow:: util:: pretty:: print_batches;
129103 use itertools:: Itertools ;
130104 use crate :: catalog:: { ColumnCatalog , ColumnDesc } ;
131105 use crate :: db:: Database ;
@@ -173,19 +147,22 @@ mod test {
173147 Ok ( ( ) )
174148 } )
175149 }
150+
176151 #[ test]
177152 fn test_crud_sql ( ) -> anyhow:: Result < ( ) > {
178- let database = Database :: new_on_mem ( ) ;
153+ let kipsql = Database :: new_on_mem ( ) ;
179154
180155 tokio_test:: block_on ( async move {
181- let _ = database. run ( "create table t1 (a int, b boolean)" ) . await ?;
182- let _ = database. run ( "insert into t1 values (1, true), (2, false)" ) . await ?;
183- let vec_batch = database. run ( "select * from t1" ) . await ?;
184-
185- let table = database. storage
186- . get_catalog ( )
187- . get_table ( 0 ) . unwrap ( ) . clone ( ) ;
188- println ! ( "{:#?}" , concat_batches( & table. schema( ) , & vec_batch) ) ;
156+ let _ = kipsql. run ( "create table t1 (a int, b int)" ) . await ?;
157+ let _ = kipsql. run ( "insert into t1 values (1, 2), (3, 4)" ) . await ?;
158+
159+ println ! ( "full:" ) ;
160+ let vec_batch_full_fields = kipsql. run ( "select * from t1" ) . await ?;
161+ print_batches ( & vec_batch_full_fields) ?;
162+
163+ println ! ( "projection_and_filter:" ) ;
164+ let vec_batch_projection_a = kipsql. run ( "select a from t1 where a != 3 and a < b " ) . await ?;
165+ print_batches ( & vec_batch_projection_a) ?;
189166
190167 Ok ( ( ) )
191168 } )
0 commit comments