Skip to content

Commit

Permalink
stmtsummary: issue left in #32156 (#32427)
Browse files Browse the repository at this point in the history
close #32156
  • Loading branch information
LemonHX authored Feb 21, 2022
1 parent 6aa0b20 commit 5233d2e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 8 deletions.
14 changes: 12 additions & 2 deletions infoschema/cluster_tables_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
16 changes: 12 additions & 4 deletions util/stmtsummary/reader.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions util/stmtsummary/statement_summary_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 5233d2e

Please sign in to comment.