diff --git a/multiaccounts/database.go b/multiaccounts/database.go index 984311bdf..a0dccd7c4 100644 --- a/multiaccounts/database.go +++ b/multiaccounts/database.go @@ -44,14 +44,15 @@ func (db *Database) Close() error { return db.db.Close() } -func (db *Database) GetAccounts() ([]Account, error) { +func (db *Database) GetAccounts() (rst []Account, err error) { rows, err := db.db.Query("SELECT a.name, a.loginTimestamp, a.identicon, a.keycardPairing, a.keyUid, ii.name, ii.image_payload, ii.width, ii.height, ii.file_size, ii.resize_target FROM accounts AS a LEFT JOIN identity_images AS ii ON ii.key_uid = a.keyUid ORDER BY loginTimestamp DESC") if err != nil { return nil, err } - defer rows.Close() + defer func() { + err = rows.Close() + }() - var rst []Account for rows.Next() { acc := Account{} accLoginTimestamp := sql.NullInt64{} @@ -139,14 +140,15 @@ func (db *Database) DeleteAccount(keyUID string) error { // Account images -func (db *Database) GetIdentityImages(keyUID string) ([]*images.IdentityImage, error) { +func (db *Database) GetIdentityImages(keyUID string) (iis []*images.IdentityImage, err error) { rows, err := db.db.Query(`SELECT key_uid, name, image_payload, width, height, file_size, resize_target FROM identity_images WHERE key_uid = ?`, keyUID) if err != nil { return nil, err } - defer rows.Close() + defer func() { + err = rows.Close() + }() - var iis []*images.IdentityImage for rows.Next() { ii := &images.IdentityImage{} err = rows.Scan(&ii.KeyUID, &ii.Name, &ii.Payload, &ii.Width, &ii.Height, &ii.FileSize, &ii.ResizeTarget) @@ -171,7 +173,7 @@ func (db *Database) GetIdentityImage(keyUID, it string) (*images.IdentityImage, return &ii, nil } -func (db *Database) StoreIdentityImages(keyUID string, iis []*images.IdentityImage) error { +func (db *Database) StoreIdentityImages(keyUID string, iis []*images.IdentityImage) (err error) { // Because SQL INSERTs are triggered in a loop use a tx to ensure a single call to the DB. tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { diff --git a/protocol/persistence.go b/protocol/persistence.go index 6c346f209..42c2ac733 100644 --- a/protocol/persistence.go +++ b/protocol/persistence.go @@ -856,26 +856,26 @@ func (db sqlitePersistence) TransactionsToValidate() ([]*TransactionToValidate, return transactions, nil } -func (db sqlitePersistence) GetWhenChatIdentityLastPublished(chatID string) (*int64, []byte, error) { +func (db sqlitePersistence) GetWhenChatIdentityLastPublished(chatID string) (t *int64, hash []byte, err error) { rows, err := db.db.Query("SELECT clock_value, hash FROM chat_identity_last_published WHERE chat_id = ?", chatID) if err != nil { return nil, nil, err } - defer rows.Close() + defer func() { + err = rows.Close() + }() - var t int64 - var hash []byte for rows.Next() { - err = rows.Scan(&t, &hash) + err = rows.Scan(t, &hash) if err != nil { return nil, nil, err } } - return &t, hash, nil + return t, hash, nil } -func (db sqlitePersistence) SaveWhenChatIdentityLastPublished(chatID string, hash []byte) error { +func (db sqlitePersistence) SaveWhenChatIdentityLastPublished(chatID string, hash []byte) (err error) { tx, err := db.db.BeginTx(context.Background(), &sql.TxOptions{}) if err != nil { return err