risingwave_meta_model/
hummock_version_stats.rs1use std::collections::HashMap;
16
17use risingwave_pb::hummock::{HummockVersionStats, TableStats as PbTableStats};
18use risingwave_pb::id::TableId;
19use sea_orm::FromJsonQueryResult;
20use sea_orm::entity::prelude::*;
21use serde::{Deserialize, Serialize};
22
23use crate::HummockVersionId;
24
25#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Eq, Serialize, Deserialize, Default)]
26#[sea_orm(table_name = "hummock_version_stats")]
27pub struct Model {
28 #[sea_orm(primary_key, auto_increment = false)]
29 pub id: HummockVersionId,
30 pub stats: TableStats,
31}
32
33#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
34pub enum Relation {}
35
36impl ActiveModelBehavior for ActiveModel {}
37
38#[derive(Clone, Debug, PartialEq, Eq, FromJsonQueryResult, Serialize, Deserialize, Default)]
39pub struct TableStats(pub HashMap<TableId, PbTableStats>);
40
41impl From<Model> for HummockVersionStats {
42 fn from(value: Model) -> Self {
43 Self {
44 hummock_version_id: value.id as _,
45 table_stats: value.stats.0,
46 }
47 }
48}