@@ -28,7 +28,7 @@ use crate::planner::operator::union::UnionOperator;
2828use crate :: planner:: LogicalPlan ;
2929use crate :: storage:: Transaction ;
3030use crate :: types:: tuple:: { Schema , SchemaRef } ;
31- use crate :: types:: LogicalType ;
31+ use crate :: types:: { ColumnId , LogicalType } ;
3232use itertools:: Itertools ;
3333use sqlparser:: ast:: {
3434 Distinct , Expr , Ident , Join , JoinConstraint , JoinOperator , Offset , OrderByExpr , Query , Select ,
@@ -352,7 +352,7 @@ impl<'a: 'b, 'b, T: Transaction> Binder<'a, 'b, T> {
352352 for ( alias, column) in aliases_with_columns {
353353 let mut alias_column = ColumnCatalog :: clone ( & column) ;
354354 alias_column. set_name ( alias. clone ( ) ) ;
355- alias_column. set_ref_table ( table_alias. clone ( ) , column. id ( ) . unwrap_or ( 0 ) ) ;
355+ alias_column. set_ref_table ( table_alias. clone ( ) , column. id ( ) . unwrap_or ( ColumnId :: new ( ) ) ) ;
356356
357357 let alias_column_expr = ScalarExpression :: Alias {
358358 expr : Box :: new ( ScalarExpression :: ColumnRef ( column) ) ,
@@ -983,31 +983,34 @@ impl<'a: 'b, 'b, T: Transaction> Binder<'a, 'b, T> {
983983
984984#[ cfg( test) ]
985985mod tests {
986- use crate :: binder:: test:: select_sql_run ;
986+ use crate :: binder:: test:: build_t1_table ;
987987 use crate :: errors:: DatabaseError ;
988988
989989 #[ test]
990990 fn test_select_bind ( ) -> Result < ( ) , DatabaseError > {
991- let plan_1 = select_sql_run ( "select * from t1" ) ?;
991+ let table_states = build_t1_table ( ) ?;
992+
993+ let plan_1 = table_states. plan ( "select * from t1" ) ?;
992994 println ! ( "just_col:\n {:#?}" , plan_1) ;
993- let plan_2 = select_sql_run ( "select t1.c1, t1.c2 from t1" ) ?;
995+ let plan_2 = table_states . plan ( "select t1.c1, t1.c2 from t1" ) ?;
994996 println ! ( "table_with_col:\n {:#?}" , plan_2) ;
995- let plan_3 = select_sql_run ( "select t1.c1, t1.c2 from t1 where c1 > 2" ) ?;
997+ let plan_3 = table_states . plan ( "select t1.c1, t1.c2 from t1 where c1 > 2" ) ?;
996998 println ! ( "table_with_col_and_c1_compare_constant:\n {:#?}" , plan_3) ;
997- let plan_4 = select_sql_run ( "select t1.c1, t1.c2 from t1 where c1 > c2" ) ?;
999+ let plan_4 = table_states . plan ( "select t1.c1, t1.c2 from t1 where c1 > c2" ) ?;
9981000 println ! ( "table_with_col_and_c1_compare_c2:\n {:#?}" , plan_4) ;
999- let plan_5 = select_sql_run ( "select avg(t1.c1) from t1" ) ?;
1001+ let plan_5 = table_states . plan ( "select avg(t1.c1) from t1" ) ?;
10001002 println ! ( "table_with_col_and_c1_avg:\n {:#?}" , plan_5) ;
1001- let plan_6 = select_sql_run ( "select t1.c1, t1.c2 from t1 where (t1.c1 - t1.c2) > 1" ) ?;
1003+ let plan_6 = table_states . plan ( "select t1.c1, t1.c2 from t1 where (t1.c1 - t1.c2) > 1" ) ?;
10021004 println ! ( "table_with_col_nested:\n {:#?}" , plan_6) ;
10031005
1004- let plan_7 = select_sql_run ( "select * from t1 limit 1" ) ?;
1006+ let plan_7 = table_states . plan ( "select * from t1 limit 1" ) ?;
10051007 println ! ( "limit:\n {:#?}" , plan_7) ;
10061008
1007- let plan_8 = select_sql_run ( "select * from t1 offset 2" ) ?;
1009+ let plan_8 = table_states . plan ( "select * from t1 offset 2" ) ?;
10081010 println ! ( "offset:\n {:#?}" , plan_8) ;
10091011
1010- let plan_9 = select_sql_run ( "select c1, c3 from t1 inner join t2 on c1 = c3 and c1 > 1" ) ?;
1012+ let plan_9 =
1013+ table_states. plan ( "select c1, c3 from t1 inner join t2 on c1 = c3 and c1 > 1" ) ?;
10111014 println ! ( "join:\n {:#?}" , plan_9) ;
10121015
10131016 Ok ( ( ) )
0 commit comments