@@ -816,7 +816,7 @@ mod tests {
816
816
use std:: vec;
817
817
818
818
use crate :: optimize_projections:: OptimizeProjections ;
819
- use crate :: optimizer:: { assert_schema_is_the_same , Optimizer } ;
819
+ use crate :: optimizer:: Optimizer ;
820
820
use crate :: test:: {
821
821
assert_fields_eq, assert_optimized_plan_eq, scan_empty, test_table_scan,
822
822
test_table_scan_fields, test_table_scan_with_name,
@@ -1039,7 +1039,44 @@ mod tests {
1039
1039
1040
1040
let expected = "Projection: test.a AS alias\
1041
1041
\n TableScan: test projection=[a]";
1042
- assert_optimized_plan_equal ( plan, expected)
1042
+ assert_optimized_plan_equal ( plan, expected) ?;
1043
+
1044
+ // SELECT "test.a" FROM (SELECT a AS "test.a" FROM test)
1045
+ let table_scan = test_table_scan_with_name ( "test" ) ?;
1046
+ let plan = LogicalPlanBuilder :: from ( table_scan)
1047
+ . project ( vec ! [ col( "a" ) . alias( "test.a" ) ] ) ?
1048
+ . project ( vec ! [ Expr :: Column ( Column :: new_unqualified( "test.a" ) ) ] ) ?
1049
+ . build ( ) ?;
1050
+
1051
+ let expected = "Projection: test.a AS test.a\
1052
+ \n TableScan: test projection=[a]";
1053
+ assert_optimized_plan_equal ( plan, expected) ?;
1054
+
1055
+ // SELECT "public.test.a" FROM (SELECT a AS "public.test.a" FROM public.test)
1056
+ let table_scan = test_table_scan_with_name ( "public.test" ) ?;
1057
+ let plan = LogicalPlanBuilder :: from ( table_scan)
1058
+ . project ( vec ! [ col( "a" ) . alias( "public.test.a" ) ] ) ?
1059
+ . project ( vec ! [ Expr :: Column ( Column :: new_unqualified( "public.test.a" ) ) ] ) ?
1060
+ . build ( ) ?;
1061
+
1062
+ let expected = "Projection: public.test.a AS public.test.a\
1063
+ \n TableScan: public.test projection=[a]";
1064
+ assert_optimized_plan_equal ( plan, expected) ?;
1065
+
1066
+ // SELECT "datafusion.public.test.a" FROM (SELECT a AS "datafusion.public.test.a" FROM datafusion.public.test)
1067
+ let table_scan = test_table_scan_with_name ( "datafusion.public.test" ) ?;
1068
+ let plan = LogicalPlanBuilder :: from ( table_scan)
1069
+ . project ( vec ! [ col( "a" ) . alias( "datafusion.public.test.a" ) ] ) ?
1070
+ . project ( vec ! [ Expr :: Column ( Column :: new_unqualified(
1071
+ "datafusion.public.test.a" ,
1072
+ ) ) ] ) ?
1073
+ . build ( ) ?;
1074
+
1075
+ let expected = "Projection: datafusion.public.test.a AS datafusion.public.test.a\
1076
+ \n TableScan: datafusion.public.test projection=[a]";
1077
+ assert_optimized_plan_equal ( plan, expected) ?;
1078
+
1079
+ Ok ( ( ) )
1043
1080
}
1044
1081
1045
1082
#[ test]
@@ -1974,53 +2011,4 @@ mod tests {
1974
2011
optimizer. optimize ( plan, & OptimizerContext :: new ( ) , observe) ?;
1975
2012
Ok ( optimized_plan)
1976
2013
}
1977
-
1978
- #[ test]
1979
- fn test_subquery ( ) -> Result < ( ) > {
1980
- fn assert_eq ( plan : LogicalPlan , expected : & str ) -> Result < ( ) > {
1981
- // check schema
1982
- let prev_schema = plan. schema ( ) . clone ( ) ;
1983
- let new_plan = optimize ( plan) ?;
1984
- assert_schema_is_the_same ( "" , & prev_schema, & new_plan) ?;
1985
-
1986
- let actual = format ! ( "{new_plan}" ) ;
1987
- assert_eq ! ( & actual, expected) ;
1988
-
1989
- Ok ( ( ) )
1990
- }
1991
-
1992
- // SELECT "test.a" FROM (SELECT a AS "test.a" FROM test)
1993
- let table_scan = test_table_scan_with_name ( "test" ) ?;
1994
- let plan = LogicalPlanBuilder :: from ( table_scan)
1995
- . project ( vec ! [ col( "a" ) . alias( "test.a" ) ] ) ?
1996
- . project ( vec ! [ Expr :: Column ( Column :: new_unqualified( "test.a" ) ) ] ) ?
1997
- . build ( ) ?;
1998
- let expected = "Projection: test.a AS test.a\
1999
- \n TableScan: test projection=[a]";
2000
- assert_eq ( plan, expected) ?;
2001
-
2002
- // SELECT "public.test.a" FROM (SELECT a AS "public.test.a" FROM public.test)
2003
- let table_scan = test_table_scan_with_name ( "public.test" ) ?;
2004
- let plan = LogicalPlanBuilder :: from ( table_scan)
2005
- . project ( vec ! [ col( "a" ) . alias( "public.test.a" ) ] ) ?
2006
- . project ( vec ! [ Expr :: Column ( Column :: new_unqualified( "public.test.a" ) ) ] ) ?
2007
- . build ( ) ?;
2008
- let expected = "Projection: public.test.a AS public.test.a\
2009
- \n TableScan: public.test projection=[a]";
2010
- assert_eq ( plan, expected) ?;
2011
-
2012
- // SELECT "datafusion.public.test.a" FROM (SELECT a AS "datafusion.public.test.a" FROM datafusion.public.test)
2013
- let table_scan = test_table_scan_with_name ( "datafusion.public.test" ) ?;
2014
- let plan = LogicalPlanBuilder :: from ( table_scan)
2015
- . project ( vec ! [ col( "a" ) . alias( "datafusion.public.test.a" ) ] ) ?
2016
- . project ( vec ! [ Expr :: Column ( Column :: new_unqualified(
2017
- "datafusion.public.test.a" ,
2018
- ) ) ] ) ?
2019
- . build ( ) ?;
2020
- let expected = "Projection: datafusion.public.test.a AS datafusion.public.test.a\
2021
- \n TableScan: datafusion.public.test projection=[a]";
2022
- assert_eq ( plan, expected) ?;
2023
-
2024
- Ok ( ( ) )
2025
- }
2026
2014
}
0 commit comments