Merge pull request #22 from kuba--/index-schemator

Move schemator from API to index. Fix TestExecutor_Execute_SetRow
This commit is contained in:
Travis Turner 2021-02-08 15:43:15 -06:00 committed by GitHub
commit ccd89bbe2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 12 deletions

12
api.go
View file

@ -57,7 +57,6 @@ type API struct {
importWork chan importJob
Serializer Serializer
schemator disco.Schemator
}
func (api *API) Holder() *Holder {
@ -73,7 +72,6 @@ func OptAPIServer(s *Server) apiOption {
a.holder = s.holder
a.cluster = s.cluster
a.Serializer = s.serializer
a.schemator = s.schemator
return nil
}
}
@ -256,11 +254,6 @@ func (api *API) DeleteIndex(ctx context.Context, indexName string) error {
return errors.Wrap(err, "validating api method")
}
// Delete the index from etcd as the system of record.
if err := api.schemator.DeleteIndex(ctx, indexName); err != nil {
return errors.Wrapf(err, "deleting index from etcd: %s", indexName)
}
// Delete index from the holder.
err := api.holder.DeleteIndex(indexName)
if err != nil {
@ -540,11 +533,6 @@ func (api *API) DeleteField(ctx context.Context, indexName string, fieldName str
return newNotFoundError(ErrIndexNotFound, indexName)
}
// Delete the field from etcd as the system of record.
if err := api.schemator.DeleteField(ctx, indexName, fieldName); err != nil {
return errors.Wrapf(err, "deleting field from etcd: %s/%s", indexName, fieldName)
}
// Delete field from the index.
if err := index.DeleteField(fieldName); err != nil {
return errors.Wrap(err, "deleting field")

View file

@ -651,6 +651,7 @@ func TestExecutor_Execute_Set(t *testing.T) {
})
t.Run("ErrInvalidColValueType", func(t *testing.T) {
hldr.SetBit("i", "f", 1, 0) // creates and Commits a Tx internally.
if err := idx.DeleteField("f"); err != nil {
t.Fatal(err)

View file

@ -1245,6 +1245,11 @@ func (h *Holder) DeleteIndex(name string) error {
// Remove reference.
h.deleteIndex(name)
// Delete the index from etcd as the system of record.
if err := h.schemator.DeleteIndex(context.TODO(), name); err != nil {
return errors.Wrapf(err, "deleting index from etcd: %s", name)
}
// I'm not sure if calling Reset() here is necessary
// since closing the index stops its translation
// sync processes.

View file

@ -737,6 +737,11 @@ func (i *Index) DeleteField(name string) error {
// Remove reference.
delete(i.fields, name)
// Delete the field from etcd as the system of record.
if err := i.schemator.DeleteField(context.TODO(), i.name, name); err != nil {
return errors.Wrapf(err, "deleting field from etcd: %s/%s", i.name, name)
}
return i.translationSyncer.Reset()
}