pg_extras/queries/
index_scans.rs1use crate::{queries::shared::Query, PgStatsVersion};
2use sqlx::{postgres::PgRow, Row};
3
4#[derive(Debug, Clone, serde::Serialize)]
5pub struct IndexScans {
6 pub schemaname: String,
7 pub table: String,
8 pub index: String,
9 pub index_size: String,
10 pub index_scans: i64,
11}
12
13impl Query for IndexScans {
14 fn new(row: &PgRow) -> Self {
15 Self {
16 schemaname: row.try_get("schemaname").unwrap_or_default(),
17 table: row.try_get("table").unwrap_or_default(),
18 index: row.try_get("index").unwrap_or_default(),
19 index_size: row.try_get("index_size").unwrap_or_default(),
20 index_scans: row.try_get("index_scans").unwrap_or_default(),
21 }
22 }
23
24 fn to_row(&self) -> prettytable::Row {
25 row![
26 self.schemaname,
27 self.table,
28 self.index,
29 self.index_size,
30 self.index_scans.to_string()
31 ]
32 }
33
34 fn headers() -> prettytable::Row {
35 row!["schemaname", "table", "index", "index_size", "index_scans"]
36 }
37
38 fn read_file(_pg_statement_version: Option<PgStatsVersion>) -> String {
39 include_str!("../sql/index_scans.sql").to_string()
40 }
41}