┌─────────────────────────────────────────────┐ │Table │ ├─────────────────────────────────────────────┤ │+ColAndIdxExistenceMap *ColAndIdxExistenceMap│ │+HistColl HistColl │ │+Version uint64 │ │+LastAnalyzeVersion uint64 │ └─────────────────────────────────────────────┘ ┌──────────────────────────┐ │HistColl │ ┌───────────────────────────┐ ├──────────────────────────┤ │ColAndIdxExistenceMap │ │+columns map[int64]*Column│ ├───────────────────────────┤ │+indices map[int64]*Index │ │+checked bool │ │+PhysicalID int64 │ │+colAnalyzed map[int64]bool│ │+RealtimeCount int64 │ │+idxAnalyzed map[int64]bool│ │+ModifyCount int64 │ └───────────────────────────┘ │+StatsVer int │ │+Pseudo bool │ └──────────────────────────┘ ┌────────────────────────────────────┐ │Column │ ┌────────────────────────────────────┐ ├────────────────────────────────────┤ │Index │ │+LastAnalyzePos types.Datum │ ├────────────────────────────────────┤ │+TopN *TopN │ │+LastAnalyzePos types.Datum │ │+Info *model.ColumnInfo │ │+TopN *TopN │ │+Histogram Histogram │ │+Info *model.IndexInfo │ │+StatsLoadedStatus StatsLoadedStatus│ │+Histogram Histogram │ │+PhysicalID int64 │ │+StatsLoadedStatus StatsLoadedStatus│ │+StatsVer int64 │ │+StatsVer int64 │ │+IsHandle bool │ │+PhysicalID int64 │ └────────────────────────────────────┘ └────────────────────────────────────┘ ┌─────────────────────────┐ │Histogram │ ├─────────────────────────┤ │+Tp *types.FieldType │ │+Bounds *chunk.Chunk │ │+Buckets []Bucket │ │+Scalars []scalar │ │+ID int64 │ │+NDV int64 │ │+NullCount int64 │ │+LastUpdateVersion uint64│ │+Correlation float64 │ └─────────────────────────┘ | ┌─────────────┐ │Bucket │ ├─────────────┤ │+Count int64 │ │+Repeat int64│ │+NDV int64 │ └─────────────┘