sqlite_extras/queries/
index_size.rs1use sqlx::{sqlite::SqliteRow, Row};
2
3use super::shared::Query;
4
5#[derive(Debug, Clone)]
6pub struct IndexSize {
7 pub name: String,
8 pub table_name: String,
9 pub column_name: String,
10 pub payload_size: u64,
11 pub unused_size: u64,
12 pub page_size: u64,
13 pub cells: u64,
14 pub pages: u64,
15 pub max_payload_siz: u64,
16}
17
18impl Query for IndexSize {
19 fn new(row: &SqliteRow) -> Self {
20 Self {
21 name: row.get(0),
22 table_name: row.get(1),
23 column_name: row.get(2),
24 payload_size: row.get(3),
25 unused_size: row.get(4),
26 page_size: row.get(5),
27 cells: row.get(6),
28 pages: row.get(7),
29 max_payload_siz: row.get(8),
30 }
31 }
32
33 fn to_row(&self) -> prettytable::Row {
34 row![
35 self.name,
36 self.table_name,
37 self.column_name,
38 self.payload_size,
39 self.unused_size,
40 self.page_size,
41 self.cells,
42 self.pages,
43 self.max_payload_siz
44 ]
45 }
46
47 fn headers() -> prettytable::Row {
48 row![
49 "name",
50 "table_name",
51 "column_name",
52 "payload_size",
53 "unused_size",
54 "page_size",
55 "cells",
56 "pages",
57 "max_payload_siz"
58 ]
59 }
60
61 fn read_file() -> String {
62 include_str!("../sql/index_size.sql").to_string()
63 }
64}