elefant_tools/models/
hypertable_retention.rs

1use 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}