Skip to content

Commit

Permalink
better code
Browse files Browse the repository at this point in the history
  • Loading branch information
Rustin170506 committed Jul 17, 2024
1 parent 4db7f0a commit 5fdf072
Showing 1 changed file with 22 additions and 14 deletions.
36 changes: 22 additions & 14 deletions pkg/statistics/handle/storage/stats_read_writer.go
Original file line number Diff line number Diff line change
Expand Up @@ -740,23 +740,31 @@ func (s *statsReadWriter) SaveColumnStatsUsageToStorage(physicalID int64, predic
continue
}
itemID := model.TableItemID{TableID: physicalID, ID: col.ID}
info := statstypes.ColStatsTimeInfo{}
if col.LastUsedAt != nil {
lastUsedAtTime, err := types.ParseTime(types.DefaultStmtNoWarningContext, *col.LastUsedAt, mysql.TypeTimestamp, types.MaxFsp)
if err != nil {
return err
}
info.LastUsedAt = &lastUsedAtTime
lastUsedAt, err := parseTimeOrNil(col.LastUsedAt)
if err != nil {
return err
}
if col.LastAnalyzedAt != nil {
lastAnalyzedAtTime, err := types.ParseTime(types.DefaultStmtNoWarningContext, *col.LastAnalyzedAt, mysql.TypeTimestamp, types.MaxFsp)
if err != nil {
return err
}
info.LastAnalyzedAt = &lastAnalyzedAtTime
lastAnalyzedAt, err := parseTimeOrNil(col.LastAnalyzedAt)
if err != nil {
return err
}
colStatsUsage[itemID] = statstypes.ColStatsTimeInfo{
LastUsedAt: lastUsedAt,
LastAnalyzedAt: lastAnalyzedAt,
}
colStatsUsage[itemID] = info
}
return predicatecolumn.SaveColumnStatsUsageForTable(sctx, colStatsUsage)
}, util.FlagWrapTxn)
}

func parseTimeOrNil(timeStr *string) (*types.Time, error) {
if timeStr == nil {
return nil, nil
}
// DefaultStmtNoWarningContext use UTC timezone.
parsedTime, err := types.ParseTime(types.DefaultStmtNoWarningContext, *timeStr, mysql.TypeTimestamp, types.MaxFsp)
if err != nil {
return nil, err
}
return &parsedTime, nil
}

0 comments on commit 5fdf072

Please sign in to comment.