elefant_tools/models/
hypertable_retention.rs1use crate::pg_interval::Interval;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Eq, PartialEq, Clone, Serialize, Deserialize)]
5pub struct HypertableRetention {
6 pub drop_after: Interval,
7 pub schedule_interval: Interval,
8}
9
10impl HypertableRetention {
11 pub fn add_retention(&self, sql: &mut String, escaped_relation_name: &str) {
12 sql.push_str("select add_retention_policy('");
13 sql.push_str(escaped_relation_name);
14 sql.push_str("', drop_after => INTERVAL '");
15 sql.push_str(&self.drop_after.to_postgres());
16 sql.push_str("', schedule_interval => INTERVAL '");
17 sql.push_str(&self.schedule_interval.to_postgres());
18 sql.push_str("');");
19 }
20}