Merge pull request #542 from nicois/nicois/use-prepared-statement-for-bulk-writes

Use prepared statement for bulk writes
This commit is contained in:
Philipp C. Heckel 2022-12-12 09:51:42 -05:00 committed by GitHub
commit 40aadbad85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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,