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