stmtsummary: issue left in #32156 (#32427)

close pingcap/tidb#32156
This commit is contained in:
LemonHX
2022-02-21 15:11:42 +08:00
committed by GitHub
parent 6aa0b202f1
commit 5233d2eca8
3 changed files with 26 additions and 8 deletions

View File

@ -415,20 +415,30 @@ func TestStmtSummaryHistoryTableWithUserTimezone(t *testing.T) {
tk.MustExec("use test;")
tk.MustExec("set time_zone = '+08:00';")
tk.MustExec("select sleep(0.1);")
r := tk.MustQuery("select FIRST_SEEN, LAST_SEEN from INFORMATION_SCHEMA.STATEMENTS_SUMMARY_HISTORY order by LAST_SEEN limit 1;")
r := tk.MustQuery("select FIRST_SEEN, LAST_SEEN, SUMMARY_BEGIN_TIME, SUMMARY_END_TIME from INFORMATION_SCHEMA.STATEMENTS_SUMMARY_HISTORY order by LAST_SEEN limit 1;")
date8First, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][0].(string))
require.NoError(t, err)
date8Last, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][1].(string))
require.NoError(t, err)
date8Begin, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][2].(string))
require.NoError(t, err)
date8End, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][3].(string))
require.NoError(t, err)
tk.MustExec("set time_zone = '+01:00';")
r = tk.MustQuery("select FIRST_SEEN, LAST_SEEN from INFORMATION_SCHEMA.STATEMENTS_SUMMARY_HISTORY order by LAST_SEEN limit 1;")
r = tk.MustQuery("select FIRST_SEEN, LAST_SEEN, SUMMARY_BEGIN_TIME, SUMMARY_END_TIME from INFORMATION_SCHEMA.STATEMENTS_SUMMARY_HISTORY order by LAST_SEEN limit 1;")
date1First, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][0].(string))
require.NoError(t, err)
date1Last, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][1].(string))
require.NoError(t, err)
date1Begin, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][2].(string))
require.NoError(t, err)
date1End, err := time.Parse("2006-01-02 15:04:05", r.Rows()[0][3].(string))
require.NoError(t, err)
require.Less(t, date1First.Unix(), date8First.Unix())
require.Less(t, date1Last.Unix(), date8Last.Unix())
require.Less(t, date1Begin.Unix(), date8Begin.Unix())
require.Less(t, date1End.Unix(), date8End.Unix())
}
func TestStmtSummaryHistoryTable(t *testing.T) {

View File

@ -313,11 +313,19 @@ var columnValueFactoryMap = map[string]columnValueFactory{
ClusterTableInstanceColumnNameStr: func(reader *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, ssbd *stmtSummaryByDigest) interface{} {
return reader.instanceAddr
},
SummaryBeginTimeStr: func(_ *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, _ *stmtSummaryByDigest) interface{} {
return types.NewTime(types.FromGoTime(time.Unix(ssElement.beginTime, 0)), mysql.TypeTimestamp, 0)
SummaryBeginTimeStr: func(reader *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, _ *stmtSummaryByDigest) interface{} {
beginTime := time.Unix(ssElement.beginTime, 0)
if beginTime.Location() != reader.tz {
beginTime = beginTime.In(reader.tz)
}
return types.NewTime(types.FromGoTime(beginTime), mysql.TypeTimestamp, 0)
},
SummaryEndTimeStr: func(_ *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, _ *stmtSummaryByDigest) interface{} {
return types.NewTime(types.FromGoTime(time.Unix(ssElement.endTime, 0)), mysql.TypeTimestamp, 0)
SummaryEndTimeStr: func(reader *stmtSummaryReader, ssElement *stmtSummaryByDigestElement, _ *stmtSummaryByDigest) interface{} {
endTime := time.Unix(ssElement.endTime, 0)
if endTime.Location() != reader.tz {
endTime = endTime.In(reader.tz)
}
return types.NewTime(types.FromGoTime(endTime), mysql.TypeTimestamp, 0)
},
StmtTypeStr: func(_ *stmtSummaryReader, _ *stmtSummaryByDigestElement, ssbd *stmtSummaryByDigest) interface{} {
return ssbd.stmtType

View File

@ -758,8 +758,8 @@ func TestToDatum(t *testing.T) {
reader := newStmtSummaryReaderForTest(ssMap)
datums := reader.GetStmtSummaryCurrentRows()
require.Equal(t, 1, len(datums))
n := types.NewTime(types.FromGoTime(time.Unix(ssMap.beginTimeForCurInterval, 0)), mysql.TypeTimestamp, types.DefaultFsp)
e := types.NewTime(types.FromGoTime(time.Unix(ssMap.beginTimeForCurInterval+1800, 0)), mysql.TypeTimestamp, types.DefaultFsp)
n := types.NewTime(types.FromGoTime(time.Unix(ssMap.beginTimeForCurInterval, 0).In(time.UTC)), mysql.TypeTimestamp, types.DefaultFsp)
e := types.NewTime(types.FromGoTime(time.Unix(ssMap.beginTimeForCurInterval+1800, 0).In(time.UTC)), mysql.TypeTimestamp, types.DefaultFsp)
f := types.NewTime(types.FromGoTime(stmtExecInfo1.StartTime), mysql.TypeTimestamp, types.DefaultFsp)
stmtExecInfo1.ExecDetail.CommitDetail.Mu.Lock()
expectedDatum := []interface{}{n, e, "Select", stmtExecInfo1.SchemaName, stmtExecInfo1.Digest, stmtExecInfo1.NormalizedSQL,