From 8dbe7aed7929b4cdc2b6d9c010b9542b1d26dcc2 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Tue, 23 Jan 2024 10:34:23 -0500 Subject: [PATCH] [MM-56362] Disable post stats for MySQL (#25981) --- server/channels/store/sqlstore/user_store.go | 19 ------------------- server/channels/store/storetest/user_store.go | 9 +++++++-- 2 files changed, 7 insertions(+), 21 deletions(-) diff --git a/server/channels/store/sqlstore/user_store.go b/server/channels/store/sqlstore/user_store.go index 70c0d59b4a6..b9a94ffa190 100644 --- a/server/channels/store/sqlstore/user_store.go +++ b/server/channels/store/sqlstore/user_store.go @@ -2324,12 +2324,6 @@ func (us SqlUserStore) GetUserReport(filter *model.UserReportOptions) ([]*model. "COUNT(ps.Day) AS DaysActive", "SUM(ps.NumPosts) AS TotalPosts", ) - } else { - selectColumns = append(selectColumns, - "MAX(p.CreateAt) AS LastPostDate", - "COUNT(DATE(FROM_UNIXTIME(p.CreateAt / 1000))) AS DaysActive", - "COUNT(p.Id) AS TotalPosts", - ) } sortDirection := "ASC" @@ -2391,19 +2385,6 @@ func (us SqlUserStore) GetUserReport(filter *model.UserReportOptions) ([]*model. return nil, err } query = query.LeftJoin("PostStats ps ON ps.UserId = u.Id AND "+sql, args...) - } else { - joinSql := sq.And{} - if filter.StartAt > 0 { - joinSql = append(joinSql, sq.GtOrEq{"p.CreateAt": filter.StartAt}) - } - if filter.EndAt > 0 { - joinSql = append(joinSql, sq.Lt{"p.CreateAt": filter.EndAt}) - } - sql, args, err := joinSql.ToSql() - if err != nil { - return nil, err - } - query = query.LeftJoin("Posts p ON p.UserId = u.Id AND "+sql, args...) } query = applyUserReportFilter(query, filter, isPostgres) diff --git a/server/channels/store/storetest/user_store.go b/server/channels/store/storetest/user_store.go index a08636b8d49..9db24b980b4 100644 --- a/server/channels/store/storetest/user_store.go +++ b/server/channels/store/storetest/user_store.go @@ -98,7 +98,7 @@ func TestUserStore(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) { t.Run("GetKnownUsers", func(t *testing.T) { testGetKnownUsers(t, rctx, ss) }) t.Run("GetUsersWithInvalidEmails", func(t *testing.T) { testGetUsersWithInvalidEmails(t, rctx, ss) }) t.Run("UpdateLastLogin", func(t *testing.T) { testUpdateLastLogin(t, rctx, ss) }) - t.Run("GetUserReport", func(t *testing.T) { testGetUserReport(t, rctx, ss) }) + t.Run("GetUserReport", func(t *testing.T) { testGetUserReport(t, rctx, ss, s) }) } func testUserStoreSave(t *testing.T, rctx request.CTX, ss store.Store) { @@ -6189,7 +6189,7 @@ func testUpdateLastLogin(t *testing.T, rctx request.CTX, ss store.Store) { require.Equal(t, int64(1234567890), user.LastLogin) } -func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) { +func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store, s SqlStore) { numRegularUsers := 90 numSysAdmins := 10 numInactiveUsers := 15 @@ -6415,6 +6415,11 @@ func testGetUserReport(t *testing.T, rctx request.CTX, ss store.Store) { }) t.Run("should return accurate post stats for various date ranges", func(t *testing.T) { + // These stats are disabled for MySQL + if s.DriverName() == model.DatabaseDriverMysql { + return + } + userReport, err := ss.User().GetUserReport(&model.UserReportOptions{ ReportingBaseOptions: model.ReportingBaseOptions{ SortColumn: "Username",