diff --git a/server/message_cache.go b/server/message_cache.go index 3972470b..95edd980 100644 --- a/server/message_cache.go +++ b/server/message_cache.go @@ -258,12 +258,23 @@ func (c *messageCache) addMessages(ms []*message) error { if c.nop { return nil } + if len(ms) == 0 { + return nil + } start := time.Now() tx, err := c.db.Begin() if err != nil { return err } defer tx.Rollback() + statement, err := tx.Prepare( + insertMessageQuery, + ) + if err != nil { + return err + } + defer statement.Close() + for _, m := range ms { if m.Event != messageEvent { return errUnexpectedMessageType @@ -291,8 +302,7 @@ func (c *messageCache) addMessages(ms []*message) error { if m.Sender.IsValid() { sender = m.Sender.String() } - _, err := tx.Exec( - insertMessageQuery, + _, err := statement.Exec( m.ID, m.Time, m.Topic,