Skip to content

Commit a4cc109

Browse files
committed
add test case
1 parent 13c648c commit a4cc109

File tree

3 files changed

+73
-6
lines changed

3 files changed

+73
-6
lines changed

src/query/service/src/procedures/systems/fuse_block.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2021 Datafuse Labs.
1+
// Copyright 2022 Datafuse Labs.
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.

src/query/service/tests/it/interpreters/interpreter_call.rs

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,73 @@ async fn test_call_fuse_snapshot_interpreter() -> Result<()> {
110110
Ok(())
111111
}
112112

113+
114+
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
115+
async fn test_call_fuse_block_interpreter() -> Result<()> {
116+
let (_guard, ctx) = crate::tests::create_query_context().await?;
117+
let mut planner = Planner::new(ctx.clone());
118+
119+
// NumberArgumentsNotMatch
120+
{
121+
let query = "call system$fuse_block()";
122+
let (plan, _, _) = planner.plan_sql(query).await?;
123+
let executor = InterpreterFactoryV2::get(ctx.clone(), &plan)?;
124+
assert_eq!(executor.name(), "CallInterpreter");
125+
let res = executor.execute().await;
126+
assert_eq!(res.is_err(), true);
127+
let expect = "Code: 1028, displayText = Function `FUSE_BLOCK` expect to have 3 arguments, but got 0.";
128+
assert_eq!(expect, res.err().unwrap().to_string());
129+
}
130+
131+
// UnknownTable
132+
{
133+
let query = "call system$fuse_block(default, test, xxxx)";
134+
let (plan, _, _) = planner.plan_sql(query).await?;
135+
let executor = InterpreterFactoryV2::get(ctx.clone(), &plan)?;
136+
assert_eq!(executor.name(), "CallInterpreter");
137+
let res = executor.execute().await;
138+
assert_eq!(res.is_err(), true);
139+
assert_eq!(
140+
res.err().unwrap().code(),
141+
ErrorCode::UnknownTable("").code()
142+
);
143+
}
144+
145+
// BadArguments
146+
{
147+
let query = "call system$fuse_block(system, tables, xxxx)";
148+
let (plan, _, _) = planner.plan_sql(query).await?;
149+
let executor = InterpreterFactoryV2::get(ctx.clone(), &plan)?;
150+
assert_eq!(executor.name(), "CallInterpreter");
151+
let res = executor.execute().await;
152+
assert_eq!(res.is_err(), true);
153+
let expect =
154+
"Code: 1015, displayText = expects table of engine FUSE, but got SystemTables.";
155+
assert_eq!(expect, res.err().unwrap().to_string());
156+
}
157+
158+
// Create table
159+
{
160+
let query = "\
161+
CREATE TABLE default.a(a bigint)\
162+
";
163+
164+
let (plan, _, _) = planner.plan_sql(query).await?;
165+
let executor = InterpreterFactoryV2::get(ctx.clone(), &plan)?;
166+
let _ = executor.execute().await?;
167+
}
168+
169+
// FuseHistory
170+
{
171+
let query = "call system$fuse_block(default, a, xxxx)";
172+
let (plan, _, _) = planner.plan_sql(query).await?;
173+
let executor = InterpreterFactoryV2::get(ctx.clone(), &plan)?;
174+
let _ = executor.execute().await?;
175+
}
176+
177+
Ok(())
178+
}
179+
113180
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
114181
async fn test_call_clustering_information_interpreter() -> Result<()> {
115182
let (_guard, ctx) = crate::tests::create_query_context().await?;

src/query/storages/fuse/src/table_functions/fuse_blocks/fuse_block_table.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ use common_exception::Result;
2121
use common_meta_app::schema::TableIdent;
2222
use common_meta_app::schema::TableInfo;
2323
use common_meta_app::schema::TableMeta;
24-
use common_planners::Expression;
25-
use common_planners::Extras;
26-
use common_planners::Partitions;
27-
use common_planners::ReadDataSourcePlan;
28-
use common_planners::Statistics;
24+
use common_legacy_planners::Expression;
25+
use common_legacy_planners::Extras;
26+
use common_legacy_planners::Partitions;
27+
use common_legacy_planners::ReadDataSourcePlan;
28+
use common_legacy_planners::Statistics;
2929

3030
use crate::pipelines::processors::port::OutputPort;
3131
use crate::pipelines::processors::processor::ProcessorPtr;

0 commit comments

Comments
 (0)