common_function/
admin.rs

1// Copyright 2023 Greptime Team
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15mod add_region_follower;
16mod flush_compact_region;
17mod flush_compact_table;
18mod migrate_region;
19mod remove_region_follower;
20
21use std::sync::Arc;
22
23use add_region_follower::AddRegionFollowerFunction;
24use flush_compact_region::{CompactRegionFunction, FlushRegionFunction};
25use flush_compact_table::{CompactTableFunction, FlushTableFunction};
26use migrate_region::MigrateRegionFunction;
27use remove_region_follower::RemoveRegionFollowerFunction;
28
29use crate::flush_flow::FlushFlowFunction;
30use crate::function_registry::FunctionRegistry;
31
32/// Table functions
33pub(crate) struct AdminFunction;
34
35impl AdminFunction {
36    /// Register all table functions to [`FunctionRegistry`].
37    pub fn register(registry: &FunctionRegistry) {
38        registry.register_async(Arc::new(MigrateRegionFunction));
39        registry.register_async(Arc::new(AddRegionFollowerFunction));
40        registry.register_async(Arc::new(RemoveRegionFollowerFunction));
41        registry.register_async(Arc::new(FlushRegionFunction));
42        registry.register_async(Arc::new(CompactRegionFunction));
43        registry.register_async(Arc::new(FlushTableFunction));
44        registry.register_async(Arc::new(CompactTableFunction));
45        registry.register_async(Arc::new(FlushFlowFunction));
46    }
47}