mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2026-01-01 11:06:52 +08:00
初步实验使用KV数据库(pebble)存储缓存索引
This commit is contained in:
41
internal/utils/kvstore/table_field.go
Normal file
41
internal/utils/kvstore/table_field.go
Normal file
@@ -0,0 +1,41 @@
|
||||
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||
|
||||
package kvstore
|
||||
|
||||
import (
|
||||
"errors"
|
||||
)
|
||||
|
||||
func (this *Table[T]) AddField(fieldName string) error {
|
||||
if !IsValidName(fieldName) {
|
||||
return errors.New("invalid field name '" + fieldName + "'")
|
||||
}
|
||||
|
||||
// check existence
|
||||
for _, field := range this.fieldNames {
|
||||
if field == fieldName {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
this.fieldNames = append(this.fieldNames, fieldName)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *Table[T]) AddFields(fieldName ...string) error {
|
||||
for _, subFieldName := range fieldName {
|
||||
err := this.AddField(subFieldName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (this *Table[T]) DropField(fieldName string) error {
|
||||
this.mu.Lock()
|
||||
defer this.mu.Unlock()
|
||||
|
||||
var start = this.FieldKey(fieldName + "$")
|
||||
return this.db.store.rawDB.DeleteRange(start, append(start, 0xFF), DefaultWriteOptions)
|
||||
}
|
||||
Reference in New Issue
Block a user