MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / buildSetIdx

Method buildSetIdx

db.go:869–892  ·  view source on GitHub ↗

buildSetIdx builds set index when opening the DB.

(record *core.Record, entry *core.Entry)

Source from the content-addressed store, hash-verified

867
868// buildSetIdx builds set index when opening the DB.
869func (db *DB) buildSetIdx(record *core.Record, entry *core.Entry) error {
870 key, val, meta := entry.Key, entry.Value, entry.Meta
871
872 bucket, err := db.bucketMgr.GetBucketById(entry.Meta.BucketId)
873 if err != nil {
874 return err
875 }
876 bucketId := bucket.Id
877
878 s := db.Index.Set.GetWithDefault(bucketId)
879
880 switch meta.Flag {
881 case DataSetFlag:
882 if err := s.SAdd(string(key), [][]byte{val}, []*core.Record{record}); err != nil {
883 return fmt.Errorf("when build SetIdx SAdd index err: %s", err)
884 }
885 case DataDeleteFlag:
886 if err := s.SRem(string(key), val); err != nil {
887 return fmt.Errorf("when build SetIdx SRem index err: %s", err)
888 }
889 }
890
891 return nil
892}
893
894// buildSortedSetIdx builds sorted set index when opening the DB.
895func (db *DB) buildSortedSetIdx(record *core.Record, entry *core.Entry) error {

Callers 2

buildIdxesMethod · 0.95
buildIdxesMethod · 0.80

Calls 4

GetBucketByIdMethod · 0.80
GetWithDefaultMethod · 0.45
SAddMethod · 0.45
SRemMethod · 0.45

Tested by

no test coverage detected