pg_extras/queries/
duplicate_indexes.rs1use 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}