Skip to content

Commit 6add381

Browse files
authored
feat(query): support manage query workload through sql (#17881)
* feat(query): support manage query workload through sql * feat(query): support manage query workload through sql * feat(query): support manage query workload through sql
1 parent 70b5d89 commit 6add381

27 files changed

+1294
-11
lines changed

src/common/license/src/license.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,14 @@ pub enum Feature {
7171
StorageQuota(StorageQuota),
7272
#[serde(alias = "amend_table", alias = "AMEND_TABLE")]
7373
AmendTable,
74-
#[serde(alias = "system_management", alias = "SYSTEM_MANAGEMENT")]
75-
SystemManagement,
7674
#[serde(alias = "hilbert_clustering", alias = "HILBERT_CLUSTERING")]
7775
HilbertClustering,
76+
#[serde(alias = "system_management", alias = "SYSTEM_MANAGEMENT")]
77+
SystemManagement,
7878
#[serde(alias = "ngram_index", alias = "NGRAM_INDEX")]
7979
NgramIndex,
80+
#[serde(alias = "workload_group", alias = "WORKLOAD_GROUP")]
81+
WorkloadGroup,
8082
#[serde(other)]
8183
Unknown,
8284
}
@@ -125,6 +127,7 @@ impl fmt::Display for Feature {
125127
Feature::SystemManagement => write!(f, "system_management"),
126128
Feature::HilbertClustering => write!(f, "hilbert_clustering"),
127129
Feature::NgramIndex => write!(f, "ngram_index"),
130+
Feature::WorkloadGroup => write!(f, "workload_group"),
128131
Feature::Unknown => write!(f, "unknown"),
129132
}
130133
}

src/query/ast/src/ast/statements/mod.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ mod user;
5656
mod view;
5757
mod virtual_column;
5858
mod warehouse;
59+
mod workload;
5960

6061
pub use call::*;
6162
pub use catalog::*;
@@ -101,3 +102,4 @@ pub use user::*;
101102
pub use view::*;
102103
pub use virtual_column::*;
103104
pub use warehouse::*;
105+
pub use workload::*;

src/query/ast/src/ast/statements/statement.rs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ use crate::ast::statements::pipe::CreatePipeStmt;
3030
use crate::ast::statements::settings::Settings;
3131
use crate::ast::statements::task::CreateTaskStmt;
3232
use crate::ast::statements::warehouse::ShowWarehousesStmt;
33+
use crate::ast::statements::workload::AlterWorkloadGroupStmt;
34+
use crate::ast::statements::workload::CreateWorkloadGroupStmt;
35+
use crate::ast::statements::workload::DropWorkloadGroupStmt;
36+
use crate::ast::statements::workload::RenameWorkloadGroupStmt;
37+
use crate::ast::statements::workload::ShowWorkloadGroupsStmt;
3338
use crate::ast::write_comma_separated_list;
3439
use crate::ast::CreateOption;
3540
use crate::ast::Identifier;
@@ -146,6 +151,13 @@ pub enum Statement {
146151
AssignWarehouseNodes(AssignWarehouseNodesStmt),
147152
UnassignWarehouseNodes(UnassignWarehouseNodesStmt),
148153

154+
// Workloads
155+
ShowWorkloadGroups(ShowWorkloadGroupsStmt),
156+
CreateWorkloadGroup(CreateWorkloadGroupStmt),
157+
DropWorkloadGroup(DropWorkloadGroupStmt),
158+
RenameWorkloadGroup(RenameWorkloadGroupStmt),
159+
AlterWorkloadGroup(AlterWorkloadGroupStmt),
160+
149161
// Databases
150162
ShowDatabases(ShowDatabasesStmt),
151163
ShowDropDatabases(ShowDropDatabasesStmt),
@@ -578,7 +590,12 @@ impl Statement {
578590
| Statement::AssignWarehouseNodes(..)
579591
| Statement::UnassignWarehouseNodes(..)
580592
| Statement::ResumeWarehouse(..)
581-
| Statement::SuspendWarehouse(..) => false,
593+
| Statement::SuspendWarehouse(..)
594+
| Statement::ShowWorkloadGroups(..)
595+
| Statement::CreateWorkloadGroup(..)
596+
| Statement::DropWorkloadGroup(..)
597+
| Statement::RenameWorkloadGroup(..)
598+
| Statement::AlterWorkloadGroup(..) => false,
582599
Statement::StatementWithSettings { stmt, settings: _ } => {
583600
stmt.allowed_in_multi_statement()
584601
}
@@ -1022,6 +1039,11 @@ impl Display for Statement {
10221039
Statement::RenameWarehouseCluster(stmt) => write!(f, "{stmt}")?,
10231040
Statement::AssignWarehouseNodes(stmt) => write!(f, "{stmt}")?,
10241041
Statement::UnassignWarehouseNodes(stmt) => write!(f, "{stmt}")?,
1042+
Statement::ShowWorkloadGroups(stmt) => write!(f, "{stmt}")?,
1043+
Statement::CreateWorkloadGroup(stmt) => write!(f, "{stmt}")?,
1044+
Statement::DropWorkloadGroup(stmt) => write!(f, "{stmt}")?,
1045+
Statement::RenameWorkloadGroup(stmt) => write!(f, "{stmt}")?,
1046+
Statement::AlterWorkloadGroup(stmt) => write!(f, "{stmt}")?,
10251047
}
10261048
Ok(())
10271049
}

0 commit comments

Comments
 (0)