Skip to content

Commit

Permalink
Hotfix: truncate get messages datetime
Browse files Browse the repository at this point in the history
MariaDB optimizer does not use temporal index if nanosecond is included in query, for some reason: this lead to almost full scan of the message table in timeline queries
  • Loading branch information
motoki317 committed Apr 24, 2022
1 parent 2087cb6 commit 669fe9a
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions repository/gorm/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,17 +213,17 @@ func (repo *Repository) GetMessages(query repository.MessagesQuery) (messages []

if query.Inclusive {
if query.Since.Valid {
tx = tx.Where("messages.created_at >= ?", query.Since.Time)
tx = tx.Where("messages.created_at >= ?", query.Since.Time.Truncate(time.Microsecond))
}
if query.Until.Valid {
tx = tx.Where("messages.created_at <= ?", query.Until.Time)
tx = tx.Where("messages.created_at <= ?", query.Until.Time.Truncate(time.Microsecond))
}
} else {
if query.Since.Valid {
tx = tx.Where("messages.created_at > ?", query.Since.Time)
tx = tx.Where("messages.created_at > ?", query.Since.Time.Truncate(time.Microsecond))
}
if query.Until.Valid {
tx = tx.Where("messages.created_at < ?", query.Until.Time)
tx = tx.Where("messages.created_at < ?", query.Until.Time.Truncate(time.Microsecond))
}
}

Expand Down

0 comments on commit 669fe9a

Please sign in to comment.