mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-06 21:32:58 +00:00
chore: support swcs as the short name for strict window compaction (#4517)
This commit is contained in:
@@ -33,6 +33,8 @@ use crate::handlers::TableMutationHandlerRef;
|
|||||||
|
|
||||||
/// Compact type: strict window.
|
/// Compact type: strict window.
|
||||||
const COMPACT_TYPE_STRICT_WINDOW: &str = "strict_window";
|
const COMPACT_TYPE_STRICT_WINDOW: &str = "strict_window";
|
||||||
|
/// Compact type: strict window (short name).
|
||||||
|
const COMPACT_TYPE_STRICT_WINDOW_SHORT: &str = "swcs";
|
||||||
|
|
||||||
#[admin_fn(
|
#[admin_fn(
|
||||||
name = FlushTableFunction,
|
name = FlushTableFunction,
|
||||||
@@ -168,8 +170,12 @@ fn parse_compact_params(
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Parses compaction strategy type. For `strict_window` or `swcs` strict window compaction is chose,
|
||||||
|
/// otherwise choose regular (TWCS) compaction.
|
||||||
fn parse_compact_type(type_str: &str, option: Option<&str>) -> Result<compact_request::Options> {
|
fn parse_compact_type(type_str: &str, option: Option<&str>) -> Result<compact_request::Options> {
|
||||||
if type_str.eq_ignore_ascii_case(COMPACT_TYPE_STRICT_WINDOW) {
|
if type_str.eq_ignore_ascii_case(COMPACT_TYPE_STRICT_WINDOW)
|
||||||
|
| type_str.eq_ignore_ascii_case(COMPACT_TYPE_STRICT_WINDOW_SHORT)
|
||||||
|
{
|
||||||
let window_seconds = option
|
let window_seconds = option
|
||||||
.map(|v| {
|
.map(|v| {
|
||||||
i64::from_str(v).map_err(|_| {
|
i64::from_str(v).map_err(|_| {
|
||||||
@@ -350,6 +356,17 @@ mod tests {
|
|||||||
compact_options: Options::Regular(Default::default()),
|
compact_options: Options::Regular(Default::default()),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
&["table", "swcs", "120"],
|
||||||
|
CompactTableRequest {
|
||||||
|
catalog_name: DEFAULT_CATALOG_NAME.to_string(),
|
||||||
|
schema_name: DEFAULT_SCHEMA_NAME.to_string(),
|
||||||
|
table_name: "table".to_string(),
|
||||||
|
compact_options: Options::StrictWindow(StrictWindow {
|
||||||
|
window_seconds: 120,
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
assert!(parse_compact_params(
|
assert!(parse_compact_params(
|
||||||
|
|||||||
Reference in New Issue
Block a user