@ -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) {
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,
|
||||
|
||||
Reference in New Issue
Block a user