diff options
author | 2022-09-02 10:58:42 +0100 | |
---|---|---|
committer | 2022-09-02 11:58:42 +0200 | |
commit | 077e66381fffb47038a99ce82c7c07a1f1b19f62 (patch) | |
tree | 69680266fae036a7da476ead8d45a37ebdb7d9c5 /internal/db/bundb/account.go | |
parent | [performance] use GetAccountByUsernameDomain() for local account lookups to r... (diff) | |
download | gotosocial-077e66381fffb47038a99ce82c7c07a1f1b19f62.tar.xz |
[performance] cache account db lookups by public key URI (#795)
Signed-off-by: kim <grufwub@gmail.com>
Signed-off-by: kim <grufwub@gmail.com>
Diffstat (limited to 'internal/db/bundb/account.go')
-rw-r--r-- | internal/db/bundb/account.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go index 7bee375e3..23030c612 100644 --- a/internal/db/bundb/account.go +++ b/internal/db/bundb/account.go @@ -106,6 +106,18 @@ func (a *accountDB) GetAccountByUsernameDomain(ctx context.Context, username str ) } +func (a *accountDB) GetAccountByPubkeyID(ctx context.Context, id string) (*gtsmodel.Account, db.Error) { + return a.getAccount( + ctx, + func() (*gtsmodel.Account, bool) { + return a.cache.GetByPubkeyID(id) + }, + func(account *gtsmodel.Account) error { + return a.newAccountQ(account).Where("account.public_key_uri = ?", id).Scan(ctx) + }, + ) +} + func (a *accountDB) getAccount(ctx context.Context, cacheGet func() (*gtsmodel.Account, bool), dbQuery func(*gtsmodel.Account) error) (*gtsmodel.Account, db.Error) { // Attempt to fetch cached account account, cached := cacheGet() |