Skip to content

Commit aaa5c48

Browse files
committed
Refactor ShowDatabasesInterpreter
Signed-off-by: Xuanwo <github@xuanwo.io>
1 parent 21df807 commit aaa5c48

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

src/query/service/src/interpreters/interpreter_show_databases.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@ use std::sync::Arc;
1616

1717
use common_exception::ErrorCode;
1818
use common_exception::Result;
19-
use common_planners::PlanNode;
2019
use common_planners::PlanShowKind;
2120
use common_planners::ShowDatabasesPlan;
2221
use common_streams::SendableDataBlockStream;
2322

2423
use crate::interpreters::Interpreter;
25-
use crate::interpreters::SelectInterpreter;
26-
use crate::optimizers::Optimizers;
24+
use crate::interpreters::SelectInterpreterV2;
2725
use crate::sessions::QueryContext;
28-
use crate::sql::PlanParser;
26+
use crate::sql::plans::Plan;
27+
use crate::sql::Planner;
2928

3029
pub struct ShowDatabasesInterpreter {
3130
ctx: Arc<QueryContext>,
@@ -62,11 +61,22 @@ impl Interpreter for ShowDatabasesInterpreter {
6261

6362
async fn execute(&self) -> Result<SendableDataBlockStream> {
6463
let query = self.build_query()?;
65-
let plan = PlanParser::parse(self.ctx.clone(), &query).await?;
66-
let optimized = Optimizers::create(self.ctx.clone()).optimize(&plan)?;
64+
let mut planner = Planner::new(self.ctx.clone());
65+
let (plan, _, _) = planner.plan_sql(&query).await?;
6766

68-
if let PlanNode::Select(plan) = optimized {
69-
let interpreter = SelectInterpreter::try_create(self.ctx.clone(), plan)?;
67+
if let Plan::Query {
68+
s_expr,
69+
metadata,
70+
bind_context,
71+
..
72+
} = plan
73+
{
74+
let interpreter = SelectInterpreterV2::try_create(
75+
self.ctx.clone(),
76+
*bind_context,
77+
*s_expr,
78+
metadata,
79+
)?;
7080
interpreter.execute().await
7181
} else {
7282
return Err(ErrorCode::LogicalError("Show databases build query error"));

0 commit comments

Comments
 (0)