@@ -17,6 +17,7 @@ use datafusion::{
1717 execution:: session_state:: { SessionState , SessionStateBuilder } ,
1818 optimizer:: {
1919 analyzer:: {
20+ expand_wildcard_rule:: ExpandWildcardRule , inline_table_scan:: InlineTableScan ,
2021 resolve_grouping_function:: ResolveGroupingFunction , type_coercion:: TypeCoercion ,
2122 } ,
2223 Analyzer , AnalyzerRule ,
@@ -44,6 +45,8 @@ pub fn default_session_state() -> SessionState {
4445/// This list should be kept in sync with the default rules in `Analyzer::new()`, but with the federation analyzer rule added.
4546pub fn default_analyzer_rules ( ) -> Vec < Arc < dyn AnalyzerRule + Send + Sync > > {
4647 vec ! [
48+ Arc :: new( ExpandWildcardRule :: new( ) ) ,
49+ Arc :: new( InlineTableScan :: new( ) ) ,
4750 Arc :: new( FederationAnalyzerRule :: new( ) ) ,
4851 // The rest of these rules are run after the federation analyzer since they only affect internal DataFusion execution.
4952 Arc :: new( ResolveGroupingFunction :: new( ) ) ,
@@ -100,10 +103,15 @@ mod tests {
100103 let default_rules = Analyzer :: new ( ) . rules ;
101104 assert_eq ! (
102105 default_rules. len( ) ,
103- 2 ,
106+ 4 ,
104107 "Default analyzer rules have changed"
105108 ) ;
106- let expected_rule_names = vec ! [ "resolve_grouping_function" , "type_coercion" ] ;
109+ let expected_rule_names = vec ! [
110+ "inline_table_scan" ,
111+ "expand_wildcard_rule" ,
112+ "resolve_grouping_function" ,
113+ "type_coercion" ,
114+ ] ;
107115 for ( rule, expected_name) in default_rules. iter ( ) . zip ( expected_rule_names. into_iter ( ) ) {
108116 assert_eq ! (
109117 expected_name,
0 commit comments