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

Method buildIdxes

db.go:814–840  ·  view source on GitHub ↗
(record *core.Record, entry *core.Entry)

Source from the content-addressed store, hash-verified

812}
813
814func (db *DB) buildIdxes(record *core.Record, entry *core.Entry) error {
815 meta := entry.Meta
816 switch meta.Ds {
817 case DataStructureBTree:
818 if err := db.buildBTreeIdx(record, entry); err != nil {
819 return err
820 }
821 case DataStructureList:
822 if err := db.buildListIdx(record, entry); err != nil {
823 return err
824 }
825 case DataStructureSet:
826 if err := db.buildSetIdx(record, entry); err != nil {
827 return err
828 }
829 case DataStructureSortedSet:
830 if err := db.buildSortedSetIdx(record, entry); err != nil {
831 return err
832 }
833 default:
834 panic(fmt.Sprintf("there is an unexpected data structure that is unimplemented in our database.:%d", meta.Ds))
835 }
836
837 db.registerKeyForActiveExpiration(record, entry)
838
839 return nil
840}
841
842// registerKeyForActiveExpiration registers a key with TTL in the timing wheel for active expiration.
843func (db *DB) registerKeyForActiveExpiration(record *core.Record, entry *core.Entry) {

Callers 2

parseDataFilesMethod · 0.95
loadHintFileMethod · 0.95

Calls 5

buildBTreeIdxMethod · 0.95
buildListIdxMethod · 0.95
buildSetIdxMethod · 0.95
buildSortedSetIdxMethod · 0.95

Tested by

no test coverage detected