diff --git a/chain/events/filter/index.go b/chain/events/filter/index.go index 49be57c7964..a125a537abc 100644 --- a/chain/events/filter/index.go +++ b/chain/events/filter/index.go @@ -61,7 +61,7 @@ var ddls = []string{ // metadata containing version of schema `CREATE TABLE IF NOT EXISTS _meta ( - version UINT64 NOT NULL UNIQUE + version UINT64 NOT NULL UNIQUE )`, `INSERT OR IGNORE INTO _meta (version) VALUES (1)`, @@ -125,43 +125,43 @@ func (ei *EventIndex) initStatements() (err error) { func (ei *EventIndex) migrateToVersion2(ctx context.Context, chainStore *store.ChainStore) error { now := time.Now() - tx, err := ei.db.Begin() + tx, err := ei.db.BeginTx(ctx, nil) if err != nil { return xerrors.Errorf("begin transaction: %w", err) } // rollback the transaction (a no-op if the transaction was already committed) - defer tx.Rollback() //nolint:errcheck + defer func() { _ = tx.Rollback() }() // create some temporary indices to help speed up the migration - _, err = tx.Exec("CREATE INDEX IF NOT EXISTS tmp_height_tipset_key_cid ON event (height,tipset_key_cid)") + _, err = tx.ExecContext(ctx, "CREATE INDEX IF NOT EXISTS tmp_height_tipset_key_cid ON event (height,tipset_key_cid)") if err != nil { return xerrors.Errorf("create index tmp_height_tipset_key_cid: %w", err) } - _, err = tx.Exec("CREATE INDEX IF NOT EXISTS tmp_tipset_key_cid ON event (tipset_key_cid)") + _, err = tx.ExecContext(ctx, "CREATE INDEX IF NOT EXISTS tmp_tipset_key_cid ON event (tipset_key_cid)") if err != nil { return xerrors.Errorf("create index tmp_tipset_key_cid: %w", err) } - stmtDeleteOffChainEvent, err := tx.Prepare("DELETE FROM event WHERE tipset_key_cid!=? and height=?") + stmtDeleteOffChainEvent, err := tx.PrepareContext(ctx, "DELETE FROM event WHERE tipset_key_cid!=? and height=?") if err != nil { return xerrors.Errorf("prepare stmtDeleteOffChainEvent: %w", err) } - stmtSelectEvent, err := tx.Prepare("SELECT id FROM event WHERE tipset_key_cid=? ORDER BY message_index ASC, event_index ASC, id DESC LIMIT 1") + stmtSelectEvent, err := tx.PrepareContext(ctx, "SELECT id FROM event WHERE tipset_key_cid=? ORDER BY message_index ASC, event_index ASC, id DESC LIMIT 1") if err != nil { return xerrors.Errorf("prepare stmtSelectEvent: %w", err) } - stmtDeleteEvent, err := tx.Prepare("DELETE FROM event WHERE tipset_key_cid=? AND id 0 { - subclauses := []string{} + subclauses := make([]string, 0, len(f.addresses)) for _, addr := range f.addresses { subclauses = append(subclauses, "emitter_addr=?") values = append(values, addr.Bytes()) @@ -543,7 +576,7 @@ func (ei *EventIndex) prefillFilter(ctx context.Context, f *eventFilter, exclude joins = append(joins, fmt.Sprintf("event_entry %s on event.id=%[1]s.event_id", joinAlias)) clauses = append(clauses, fmt.Sprintf("%s.indexed=1 AND %[1]s.key=?", joinAlias)) values = append(values, key) - subclauses := []string{} + subclauses := make([]string, 0, len(vals)) for _, val := range vals { subclauses = append(subclauses, fmt.Sprintf("(%s.value=? AND %[1]s.codec=?)", joinAlias)) values = append(values, val.Value, val.Codec)