mirror of
https://github.com/featurebasedb/featurebase.git
synced 2026-10-08 11:57:51 +00:00
remove Index.saveMeta(). remove support for deleing existence field.
This commit is contained in:
parent
2c112a73fe
commit
d639e228ae
3 changed files with 5 additions and 74 deletions
|
|
@ -1161,9 +1161,6 @@ func (h *Holder) createIndex(cim *CreateIndexMessage, broadcast bool) (*Index, e
|
|||
if err = index.Open(); err != nil {
|
||||
return nil, errors.Wrap(err, "opening")
|
||||
}
|
||||
if err = index.saveMeta(); err != nil {
|
||||
return nil, errors.Wrap(err, "meta")
|
||||
}
|
||||
|
||||
// Update options.
|
||||
h.addIndex(index)
|
||||
|
|
|
|||
39
index.go
39
index.go
|
|
@ -17,7 +17,6 @@ package pilosa
|
|||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
|
|
@ -25,9 +24,7 @@ import (
|
|||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/gogo/protobuf/proto"
|
||||
"github.com/pilosa/pilosa/v2/disco"
|
||||
"github.com/pilosa/pilosa/v2/internal"
|
||||
"github.com/pilosa/pilosa/v2/roaring"
|
||||
"github.com/pilosa/pilosa/v2/stats"
|
||||
"github.com/pilosa/pilosa/v2/testhook"
|
||||
|
|
@ -417,25 +414,6 @@ func (i *Index) openExistenceField() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// saveMeta writes meta data for the index.
|
||||
func (i *Index) saveMeta() error {
|
||||
// Marshal metadata.
|
||||
buf, err := proto.Marshal(&internal.IndexMeta{
|
||||
Keys: i.keys,
|
||||
TrackExistence: i.trackExistence,
|
||||
})
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "marshalling")
|
||||
}
|
||||
|
||||
// Write to meta file.
|
||||
if err := ioutil.WriteFile(filepath.Join(i.path, ".meta"), buf, 0666); err != nil {
|
||||
return errors.Wrap(err, "writing")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// Close closes the index and its fields.
|
||||
func (i *Index) Close() error {
|
||||
|
||||
|
|
@ -797,6 +775,11 @@ func (i *Index) DeleteField(name string) error {
|
|||
i.mu.Lock()
|
||||
defer i.mu.Unlock()
|
||||
|
||||
// Disallow deleting the existence field.
|
||||
if name == existenceFieldName {
|
||||
return newNotFoundError(ErrFieldNotFound, existenceFieldName)
|
||||
}
|
||||
|
||||
// Confirm field exists.
|
||||
f := i.field(name)
|
||||
if f == nil {
|
||||
|
|
@ -812,18 +795,6 @@ func (i *Index) DeleteField(name string) error {
|
|||
return errors.Wrap(err, "Txf.DeleteFieldFromStore")
|
||||
}
|
||||
|
||||
// If the field being deleted is the existence field,
|
||||
// turn off existence tracking on the index.
|
||||
if name == existenceFieldName {
|
||||
i.trackExistence = false
|
||||
i.existenceFld = nil
|
||||
|
||||
// Update meta data on disk.
|
||||
if err := i.saveMeta(); err != nil {
|
||||
return errors.Wrap(err, "saving existence meta data")
|
||||
}
|
||||
}
|
||||
|
||||
// Remove reference.
|
||||
delete(i.fields, name)
|
||||
|
||||
|
|
|
|||
|
|
@ -52,40 +52,3 @@ func (i *Index) reopen() error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Ensure that deleting the existence field is handled properly.
|
||||
func TestIndex_Existence_Delete(t *testing.T) {
|
||||
// Create Index (with existence tracking).
|
||||
index := mustOpenIndex(t, IndexOptions{TrackExistence: true})
|
||||
defer index.Close()
|
||||
|
||||
// Ensure existence field has been created.
|
||||
ef := index.Field(existenceFieldName)
|
||||
if ef == nil {
|
||||
t.Fatalf("expected field to have been created: %s", existenceFieldName)
|
||||
} else if !index.trackExistence {
|
||||
t.Fatalf("expected index.trackExistence to be true")
|
||||
} else if index.existenceFld == nil {
|
||||
t.Fatalf("expected index.existenceField to be non-nil")
|
||||
}
|
||||
|
||||
// Delete existence field.
|
||||
if err := index.DeleteField(existenceFieldName); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Re-open index.
|
||||
if err := index.reopen(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
// Ensure existence field no longer exists.
|
||||
ef = index.Field(existenceFieldName)
|
||||
if ef != nil {
|
||||
t.Fatalf("expected field to have been deleted: %s", existenceFieldName)
|
||||
} else if index.trackExistence {
|
||||
t.Fatalf("expected index.trackExistence to be false")
|
||||
} else if index.existenceFld != nil {
|
||||
t.Fatalf("expected index.existenceField to be nil")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue