From a169c674092cec71c5264dabd9cd1e28c2aebfbc Mon Sep 17 00:00:00 2001 From: Sergey Date: Wed, 21 Jun 2023 18:25:22 +0500 Subject: [PATCH] GO-1483: Please linter --- .golangci.yml | 2 +- pkg/lib/localstore/ftsearch/ftsearch.go | 6 ++-- pkg/lib/localstore/objectstore/filters.go | 9 +++--- .../localstore/objectstore/indexer_store.go | 2 +- pkg/lib/localstore/objectstore/objects.go | 32 ++++++++----------- pkg/lib/localstore/objectstore/queries.go | 26 --------------- pkg/lib/localstore/stores.go | 3 ++ 7 files changed, 26 insertions(+), 54 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index d06c49ea1..57480ca69 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -25,7 +25,7 @@ linters-settings: goimports: local-prefixes: github.com/anyproto/anytype-heart govet: - check-shadowing: true + check-shadowing: false funlen: lines: 120 statements: 100 diff --git a/pkg/lib/localstore/ftsearch/ftsearch.go b/pkg/lib/localstore/ftsearch/ftsearch.go index c78ee90b0..1cc696417 100644 --- a/pkg/lib/localstore/ftsearch/ftsearch.go +++ b/pkg/lib/localstore/ftsearch/ftsearch.go @@ -8,6 +8,7 @@ import ( "strings" "time" + "github.com/anyproto/any-sync/app" "github.com/blevesearch/bleve/v2" "github.com/blevesearch/bleve/v2/analysis/analyzer/standard" "github.com/blevesearch/bleve/v2/analysis/lang/en" @@ -15,8 +16,6 @@ import ( "github.com/blevesearch/bleve/v2/search/query" "github.com/samber/lo" - "github.com/anyproto/any-sync/app" - "github.com/anyproto/anytype-heart/core/wallet" "github.com/anyproto/anytype-heart/metrics" "github.com/anyproto/anytype-heart/pkg/lib/localstore/ftsearch/analyzers" @@ -141,11 +140,10 @@ func (f *ftSearch) BatchIndex(docs []SearchDoc) (err error) { func (f *ftSearch) Search(qry string) (results []string, err error) { qry = strings.ToLower(qry) - var queries = make([]query.Query, 0, 4) qry = strings.TrimSpace(qry) terms := f.getTerms(qry) - queries = append( + queries := append( getFullQueries(qry), bleve.NewMatchQuery(qry), ) diff --git a/pkg/lib/localstore/objectstore/filters.go b/pkg/lib/localstore/objectstore/filters.go index a6f57d2f8..dfa542282 100644 --- a/pkg/lib/localstore/objectstore/filters.go +++ b/pkg/lib/localstore/objectstore/filters.go @@ -30,17 +30,18 @@ func (f idsFilter) Compare(a, b filter.Getter) int { idB := b.Get(bundle.RelationKeyId.String()).GetStringValue() aIndex := f[idA] bIndex := f[idB] - if aIndex == bIndex { + switch { + case aIndex == bIndex: return 0 - } else if aIndex < bIndex { + case aIndex < bIndex: return -1 - } else { + default: return 1 } } func (f idsFilter) String() string { - return fmt.Sprintf("idsFilter") + return "idsFilter" } type filterSmartblockTypes struct { diff --git a/pkg/lib/localstore/objectstore/indexer_store.go b/pkg/lib/localstore/objectstore/indexer_store.go index a437aae29..6b1f4b21e 100644 --- a/pkg/lib/localstore/objectstore/indexer_store.go +++ b/pkg/lib/localstore/objectstore/indexer_store.go @@ -20,7 +20,7 @@ func (s *dsObjectStore) removeFromIndexQueue(id string) error { func (s *dsObjectStore) ListIDsFromFullTextQueue() ([]string, error) { var ids []string err := iterateKeysByPrefix(s.db, indexQueueBase.Bytes(), func(key []byte) { - ids = append(ids, extractIdFromKey(string(key))) + ids = append(ids, extractIDFromKey(string(key))) }) return ids, err } diff --git a/pkg/lib/localstore/objectstore/objects.go b/pkg/lib/localstore/objectstore/objects.go index 88d0af605..a15569453 100644 --- a/pkg/lib/localstore/objectstore/objects.go +++ b/pkg/lib/localstore/objectstore/objects.go @@ -70,14 +70,14 @@ func NewWithLocalstore() ObjectStore { return &dsObjectStore{} } -type SourceDetailsFromId interface { +type SourceDetailsFromID interface { DetailsFromIdBasedSource(id string) (*types.Struct, error) } func (s *dsObjectStore) Init(a *app.App) (err error) { src := a.Component("source") if src != nil { - s.sourceService = a.MustComponent("source").(SourceDetailsFromId) + s.sourceService = a.MustComponent("source").(SourceDetailsFromID) } fts := a.Component(ftsearch.CName) if fts == nil { @@ -107,6 +107,7 @@ func (s *dsObjectStore) Name() (name string) { return CName } +// nolint: interfacebloat type ObjectStore interface { app.ComponentRunnable IndexerStore @@ -176,7 +177,7 @@ var ErrNotAnObject = fmt.Errorf("not an object") type dsObjectStore struct { // underlying storage - sourceService SourceDetailsFromId + sourceService SourceDetailsFromID cache *ristretto.Cache db *badger.DB @@ -188,8 +189,7 @@ type dsObjectStore struct { onChangeCallback func(record database.Record) - subscriptions []database.Subscription - depSubscriptions []database.Subscription + subscriptions []database.Subscription sbtProvider typeprovider.SmartBlockTypeProvider } @@ -480,9 +480,8 @@ func (s *dsObjectStore) extractDetailsFromItem(it *badger.Item) (*model.ObjectDe key := it.Key() if v, ok := s.cache.Get(key); ok { return v.(*model.ObjectDetails), nil - } else { - return s.unmarshalDetailsFromItem(it) } + return s.unmarshalDetailsFromItem(it) } func (s *dsObjectStore) unmarshalDetailsFromItem(it *badger.Item) (*model.ObjectDetails, error) { @@ -538,14 +537,13 @@ func (o order) Compare(lhs, rhs interface{}) (comp int) { if comp == 0 { if pbtypes.GetString(le.Details, "id") > pbtypes.GetString(re.Details, "id") { return 1 - } else { - return -1 } + return -1 } return comp } -func (o order) CalcScore(key interface{}) float64 { +func (o order) CalcScore(_ interface{}) float64 { return 0 } @@ -560,12 +558,10 @@ func (s *dsObjectStore) getObjectInfo(txn *badger.Txn, id string) (*model.Object } var details *types.Struct - if indexDetails, _ := sbt.Indexable(); !indexDetails { - if s.sourceService != nil { - details, err = s.sourceService.DetailsFromIdBasedSource(id) - if err != nil { - return nil, ErrObjectNotFound - } + if indexDetails, _ := sbt.Indexable(); !indexDetails && s.sourceService != nil { + details, err = s.sourceService.DetailsFromIdBasedSource(id) + if err != nil { + return nil, ErrObjectNotFound } } else { it, err := txn.Get(pagesDetailsBase.ChildString(id).Bytes()) @@ -592,7 +588,7 @@ func (s *dsObjectStore) getObjectInfo(txn *badger.Txn, id string) (*model.Object } func (s *dsObjectStore) getObjectsInfo(txn *badger.Txn, ids []string) ([]*model.ObjectInfo, error) { - var objects []*model.ObjectInfo + objects := make([]*model.ObjectInfo, 0, len(ids)) for _, id := range ids { info, err := s.getObjectInfo(txn, id) if err != nil { @@ -648,7 +644,7 @@ func inboundLinkKey(from, to string) ds.Key { return pagesInboundLinksBase.ChildString(to).ChildString(from) } -func extractIdFromKey(key string) (id string) { +func extractIDFromKey(key string) (id string) { i := strings.LastIndexByte(key, '/') if i == -1 || len(key)-1 == i { return diff --git a/pkg/lib/localstore/objectstore/queries.go b/pkg/lib/localstore/objectstore/queries.go index e785d7a4a..ea4b9ee1b 100644 --- a/pkg/lib/localstore/objectstore/queries.go +++ b/pkg/lib/localstore/objectstore/queries.go @@ -5,7 +5,6 @@ import ( "github.com/dgraph-io/badger/v3" "github.com/huandu/skiplist" - "github.com/samber/lo" "github.com/anyproto/anytype-heart/pkg/lib/bundle" "github.com/anyproto/anytype-heart/pkg/lib/core/smartblock" @@ -69,31 +68,6 @@ func (s *dsObjectStore) QueryRaw(filters *database.Filters, limit int, offset in return records, nil } -func (s *dsObjectStore) QueryById(ids []string) (records []database.Record, err error) { - err = s.db.View(func(txn *badger.Txn) error { - iterator := txn.NewIterator(badger.DefaultIteratorOptions) - defer iterator.Close() - - for iterator.Rewind(); iterator.Valid(); iterator.Next() { - it := iterator.Item() - details, err := s.extractDetailsFromItem(it) - if err != nil { - return err - } - - if lo.Contains(ids, pbtypes.GetString(details.Details, bundle.RelationKeyId.String())) { - rec := database.Record{Details: details.Details} - records = append(records, rec) - } - } - return nil - }) - if err != nil { - return nil, err - } - return records, nil -} - func (s *dsObjectStore) buildQuery(sch schema.Schema, q database.Query) (*database.Filters, error) { filters, err := database.NewFilters(q, sch, s) if err != nil { diff --git a/pkg/lib/localstore/stores.go b/pkg/lib/localstore/stores.go index a1001ce13..2d2e1725e 100644 --- a/pkg/lib/localstore/stores.go +++ b/pkg/lib/localstore/stores.go @@ -182,6 +182,9 @@ func EraseIndex(index Index, datastore ds.DSTxnBatching) error { } keys, err := ExtractKeysFromResults(res) + if err != nil { + return fmt.Errorf("extract keys from results: %w", err) + } b, err := datastore.Batch() if err != nil { return err