Skip to main content

pg_extras/queries/
duplicate_indexes.rs

1use crate::{queries::shared::Query, PgStatsVersion};
2use sqlx::{postgres::PgRow, Row};
3
4#[derive(Debug, Clone, serde::Serialize)]
5pub struct DuplicateIndexes {
6    pub size: String,
7    pub idx1: String,
8    pub idx2: String,
9    pub idx3: String,
10    pub idx4: String,
11}
12
13impl Query for DuplicateIndexes {
14    fn new(row: &PgRow) -> Self {
15        Self {
16            size: row.try_get("size").unwrap_or_default(),
17            idx1: row.try_get("idx1").unwrap_or_default(),
18            idx2: row.try_get("idx2").unwrap_or_default(),
19            idx3: row.try_get("idx3").unwrap_or_default(),
20            idx4: row.try_get("idx4").unwrap_or_default(),
21        }
22    }
23
24    fn to_row(&self) -> prettytable::Row {
25        row![self.size, self.idx1, self.idx2, self.idx3, self.idx4]
26    }
27
28    fn headers() -> prettytable::Row {
29        row!["size", "idx1", "idx2", "idx3", "idx4"]
30    }
31
32    fn read_file(_pg_statement_version: Option<PgStatsVersion>) -> String {
33        include_str!("../sql/duplicate_indexes.sql").to_string()
34    }
35}