@@ -12,10 +12,7 @@ use analyzer::RewriteTableScanAnalyzer;
1212use async_trait:: async_trait;
1313use datafusion:: {
1414 arrow:: datatypes:: { Schema , SchemaRef } ,
15- common:: {
16- tree_node:: { Transformed , TreeNode } ,
17- HashMap ,
18- } ,
15+ common:: tree_node:: TreeNode ,
1916 config:: ConfigOptions ,
2017 error:: { DataFusionError , Result } ,
2118 execution:: { context:: SessionState , TaskContext } ,
@@ -36,9 +33,7 @@ pub use table::{RemoteTable, SQLTableSource};
3633pub use table_reference:: RemoteTableRef ;
3734
3835use crate :: {
39- schema_cast,
40- table_reference:: { MultiPartTableReference , MultiTableReference } ,
41- FederatedPlanNode , FederationPlanner , FederationProvider ,
36+ get_table_source, schema_cast, FederatedPlanNode , FederationPlanner , FederationProvider ,
4237} ;
4338
4439// SQLFederationProvider provides federation to SQL DMBSs.
@@ -106,7 +101,7 @@ impl AnalyzerRule for SQLFederationAnalyzerRule {
106101 plan = rewriter ( plan) ?;
107102 }
108103
109- Ok ( Transformed :: yes ( plan) )
104+ Ok ( plan)
110105 }
111106
112107 /// A human readable name for this analyzer rule
@@ -172,36 +167,32 @@ impl VirtualExecutionPlan {
172167 }
173168
174169 // TODO merge
175- fn sql ( & self ) -> Result < String > {
176- // Find all table scans, recover the SQLTableSource, find the remote table name and replace the name of the TableScan table.
177- let mut known_rewrites = HashMap :: new ( ) ;
178- let subquery_uses_partial_path = self . executor . subquery_use_partial_path ( ) ;
179- let rewritten_plan = rewrite:: plan:: rewrite_table_scans (
180- & self . plan ,
181- & mut known_rewrites,
182- subquery_uses_partial_path,
183- & mut None ,
184- ) ?;
185- let mut ast = self . plan_to_sql ( & rewritten_plan) ?;
186-
187- // If there are any MultiPartTableReference, rewrite the AST to use the original table names.
188- let multi_table_reference_rewrites = known_rewrites
189- . into_iter ( )
190- . filter_map ( |( table_ref, rewrite) | match rewrite {
191- MultiPartTableReference :: Multi ( rewrite) => Some ( ( table_ref, rewrite) ) ,
192- _ => None ,
193- } )
194- . collect :: < HashMap < TableReference , MultiTableReference > > ( ) ;
195- if !multi_table_reference_rewrites. is_empty ( ) {
196- rewrite:: ast:: rewrite_multi_part_statement ( & mut ast, & multi_table_reference_rewrites) ;
197- }
198-
199- if let Some ( analyzer) = self . executor . ast_analyzer ( ) {
200- ast = analyzer ( ast) ?;
201- }
202-
203- Ok ( format ! ( "{ast}" ) )
204- }
170+ // fn sql(&self) -> Result<String> {
171+ // // Find all table scans, recover the SQLTableSource, find the remote table name and replace the name of the TableScan table.
172+ // let mut known_rewrites = HashMap::new();
173+ // let subquery_uses_partial_path = self.executor.subquery_use_partial_path();
174+ // let rewritten_plan = rewrite::plan::rewrite_table_scans(
175+ // &self.plan,
176+ // &mut known_rewrites,
177+ // subquery_uses_partial_path,
178+ // &mut None,
179+ // )?;
180+ // let mut ast = self.plan_to_statement(&rewritten_plan)?;
181+
182+ // // If there are any MultiPartTableReference, rewrite the AST to use the original table names.
183+ // let multi_table_reference_rewrites = known_rewrites
184+ // .into_iter()
185+ // .filter_map(|(table_ref, rewrite)| match rewrite {
186+ // MultiPartTableReference::Multi(rewrite) => Some((table_ref, rewrite)),
187+ // _ => None,
188+ // })
189+ // .collect::<HashMap<TableReference, MultiTableReference>>();
190+ // if !multi_table_reference_rewrites.is_empty() {
191+ // rewrite::ast::rewrite_multi_part_statement(&mut ast, &multi_table_reference_rewrites);
192+ // }
193+
194+ // Ok(format!("{ast}"))
195+ // }
205196
206197 fn final_sql ( & self ) -> Result < String > {
207198 let plan = self . plan . clone ( ) ;
0 commit comments