PLT-25 fixing stats for postgres

Этот коммит содержится в:
=Corey Hulen
2015-10-27 09:55:19 -07:00
родитель d53de84214
Коммит 399e9c6f4b
2 изменённых файлов: 41 добавлений и 38 удалений

Просмотреть файл

@@ -630,7 +630,7 @@ func (s SqlPostStore) AnalyticsUserCountsWithPostsByDay(teamId string) StoreChan
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES { if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
query = query =
`SELECT `SELECT
t1.Name, COUNT(t1.UserId) AS Value TO_CHAR(t1.Name, 'YYYY-MM-DD') AS Name, COUNT(t1.UserId) AS Value
FROM FROM
(SELECT DISTINCT (SELECT DISTINCT
DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)) AS Name, DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)) AS Name,
@@ -650,7 +650,7 @@ func (s SqlPostStore) AnalyticsUserCountsWithPostsByDay(teamId string) StoreChan
_, err := s.GetReplica().Select( _, err := s.GetReplica().Select(
&rows, &rows,
query, query,
map[string]interface{}{"TeamId": teamId}) map[string]interface{}{"TeamId": teamId, "Time": model.GetMillis() - 1000*60*60*24*31})
if err != nil { if err != nil {
result.Err = model.NewAppError("SqlPostStore.AnalyticsUserCountsWithPostsByDay", "We couldn't get user counts with posts", err.Error()) result.Err = model.NewAppError("SqlPostStore.AnalyticsUserCountsWithPostsByDay", "We couldn't get user counts with posts", err.Error())
} else { } else {
@@ -672,14 +672,17 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel {
query := query :=
`SELECT `SELECT
DATE(FROM_UNIXTIME(Posts.CreateAt / 1000)) AS Name, Name, COUNT(Value) AS Value
COUNT(Posts.Id) AS Value
FROM FROM
Posts, (SELECT
Channels DATE(FROM_UNIXTIME(Posts.CreateAt / 1000)) AS Name,
WHERE '1' AS Value
Posts.ChannelId = Channels.Id FROM
AND Channels.TeamId = :TeamId Posts, Channels
WHERE
Posts.ChannelId = Channels.Id
AND Channels.TeamId = :TeamId
AND Posts.CreateAt >:Time) AS t1
GROUP BY Name GROUP BY Name
ORDER BY Name DESC ORDER BY Name DESC
LIMIT 30` LIMIT 30`
@@ -687,14 +690,17 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel {
if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES { if utils.Cfg.SqlSettings.DriverName == model.DATABASE_DRIVER_POSTGRES {
query = query =
`SELECT `SELECT
DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)) AS Name, Name, COUNT(Value) AS Value
COUNT(Posts.Id) AS Value
FROM FROM
Posts, (SELECT
Channels TO_CHAR(DATE(TO_TIMESTAMP(Posts.CreateAt / 1000)), 'YYYY-MM-DD') AS Name,
WHERE '1' AS Value
Posts.ChannelId = Channels.Id FROM
AND Channels.TeamId = :TeamId Posts, Channels
WHERE
Posts.ChannelId = Channels.Id
AND Channels.TeamId = :TeamId
AND Posts.CreateAt > :Time) AS t1
GROUP BY Name GROUP BY Name
ORDER BY Name DESC ORDER BY Name DESC
LIMIT 30` LIMIT 30`
@@ -704,7 +710,7 @@ func (s SqlPostStore) AnalyticsPostCountsByDay(teamId string) StoreChannel {
_, err := s.GetReplica().Select( _, err := s.GetReplica().Select(
&rows, &rows,
query, query,
map[string]interface{}{"TeamId": teamId}) map[string]interface{}{"TeamId": teamId, "Time": model.GetMillis() - 1000*60*60*24*31})
if err != nil { if err != nil {
result.Err = model.NewAppError("SqlPostStore.AnalyticsPostCountsByDay", "We couldn't get post counts by day", err.Error()) result.Err = model.NewAppError("SqlPostStore.AnalyticsPostCountsByDay", "We couldn't get post counts by day", err.Error())
} else { } else {

Просмотреть файл

@@ -672,21 +672,22 @@ func TestPostCountsByDay(t *testing.T) {
o1a.Message = "a" + model.NewId() + "b" o1a.Message = "a" + model.NewId() + "b"
o1a = Must(store.Post().Save(o1a)).(*model.Post) o1a = Must(store.Post().Save(o1a)).(*model.Post)
// o2 := &model.Post{} o2 := &model.Post{}
// o2.ChannelId = c1.Id o2.ChannelId = c1.Id
// o2.UserId = model.NewId() o2.UserId = model.NewId()
// o2.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2) o2.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2)
// o2.Message = "a" + model.NewId() + "b" o2.Message = "a" + model.NewId() + "b"
// o2 = Must(store.Post().Save(o2)).(*model.Post) o2 = Must(store.Post().Save(o2)).(*model.Post)
// o2a := &model.Post{} o2a := &model.Post{}
// o2a.ChannelId = c1.Id o2a.ChannelId = c1.Id
// o2a.UserId = o2.UserId o2a.UserId = o2.UserId
// o2a.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2) o2a.CreateAt = o1.CreateAt - (1000 * 60 * 60 * 24 * 2)
// o2a.Message = "a" + model.NewId() + "b" o2a.Message = "a" + model.NewId() + "b"
// o2a = Must(store.Post().Save(o2a)).(*model.Post) o2a = Must(store.Post().Save(o2a)).(*model.Post)
time.Sleep(1 * time.Second) time.Sleep(1 * time.Second)
t.Log(t1.Id)
if r1 := <-store.Post().AnalyticsPostCountsByDay(t1.Id); r1.Err != nil { if r1 := <-store.Post().AnalyticsPostCountsByDay(t1.Id); r1.Err != nil {
t.Fatal(r1.Err) t.Fatal(r1.Err)
@@ -697,20 +698,16 @@ func TestPostCountsByDay(t *testing.T) {
t.Fatal("wrong value") t.Fatal("wrong value")
} }
// row2 := r1.Data.(model.AnalyticsRows)[1] row2 := r1.Data.(model.AnalyticsRows)[1]
// if row2.Value != 2 { if row2.Value != 2 {
// t.Fatal("wrong value") t.Fatal("wrong value")
// } }
} }
if r1 := <-store.Post().AnalyticsPostCount(t1.Id); r1.Err != nil { if r1 := <-store.Post().AnalyticsPostCount(t1.Id); r1.Err != nil {
t.Fatal(r1.Err) t.Fatal(r1.Err)
} else { } else {
// if r1.Data.(int64) != 4 { if r1.Data.(int64) != 4 {
// t.Fatal("wrong value")
// }
if r1.Data.(int64) != 2 {
t.Fatal("wrong value") t.Fatal("wrong value")
} }
} }