diff --git a/internal/datastore/badger_datastore/collections.go b/internal/datastore/badger_datastore/collections.go index 5c4b433..f9da70b 100644 --- a/internal/datastore/badger_datastore/collections.go +++ b/internal/datastore/badger_datastore/collections.go @@ -22,7 +22,8 @@ func (r *BadgerDataStore) GetAllCollections(databaseId string) ([]datastore.Coll return nil, datastore.StatusNotFound } - colls, status := listByPrefix[datastore.Collection](r.db, generateKey(resourceid.ResourceTypeCollection, databaseId, "", "")) + prefix := generateKey(resourceid.ResourceTypeCollection, databaseId, "", "") + "/" + colls, status := listByPrefix[datastore.Collection](r.db, prefix) if status == datastore.StatusOk { return colls, datastore.StatusOk } @@ -49,10 +50,10 @@ func (r *BadgerDataStore) DeleteCollection(databaseId string, collectionId strin defer txn.Discard() prefixes := []string{ - generateKey(resourceid.ResourceTypeDocument, databaseId, collectionId, ""), - generateKey(resourceid.ResourceTypeTrigger, databaseId, collectionId, ""), - generateKey(resourceid.ResourceTypeStoredProcedure, databaseId, collectionId, ""), - generateKey(resourceid.ResourceTypeUserDefinedFunction, databaseId, collectionId, ""), + generateKey(resourceid.ResourceTypeDocument, databaseId, collectionId, "") + "/", + generateKey(resourceid.ResourceTypeTrigger, databaseId, collectionId, "") + "/", + generateKey(resourceid.ResourceTypeStoredProcedure, databaseId, collectionId, "") + "/", + generateKey(resourceid.ResourceTypeUserDefinedFunction, databaseId, collectionId, "") + "/", collectionKey, } for _, prefix := range prefixes { diff --git a/internal/datastore/badger_datastore/databases.go b/internal/datastore/badger_datastore/databases.go index 5fff5ad..d9ff5ee 100644 --- a/internal/datastore/badger_datastore/databases.go +++ b/internal/datastore/badger_datastore/databases.go @@ -38,11 +38,11 @@ func (r *BadgerDataStore) DeleteDatabase(id string) datastore.DataStoreStatus { defer txn.Discard() prefixes := []string{ - generateKey(resourceid.ResourceTypeCollection, id, "", ""), - generateKey(resourceid.ResourceTypeDocument, id, "", ""), - generateKey(resourceid.ResourceTypeTrigger, id, "", ""), - generateKey(resourceid.ResourceTypeStoredProcedure, id, "", ""), - generateKey(resourceid.ResourceTypeUserDefinedFunction, id, "", ""), + generateKey(resourceid.ResourceTypeCollection, id, "", "") + "/", + generateKey(resourceid.ResourceTypeDocument, id, "", "") + "/", + generateKey(resourceid.ResourceTypeTrigger, id, "", "") + "/", + generateKey(resourceid.ResourceTypeStoredProcedure, id, "", "") + "/", + generateKey(resourceid.ResourceTypeUserDefinedFunction, id, "", "") + "/", databaseKey, } for _, prefix := range prefixes { diff --git a/internal/datastore/badger_datastore/documents.go b/internal/datastore/badger_datastore/documents.go index f55f571..89f42ac 100644 --- a/internal/datastore/badger_datastore/documents.go +++ b/internal/datastore/badger_datastore/documents.go @@ -24,7 +24,8 @@ func (r *BadgerDataStore) GetAllDocuments(databaseId string, collectionId string return nil, datastore.StatusNotFound } - docs, status := listByPrefix[datastore.Document](r.db, generateKey(resourceid.ResourceTypeDocument, databaseId, collectionId, "")) + prefix := generateKey(resourceid.ResourceTypeDocument, databaseId, collectionId, "") + "/" + docs, status := listByPrefix[datastore.Document](r.db, prefix) if status == datastore.StatusOk { return docs, datastore.StatusOk } @@ -45,7 +46,8 @@ func (r *BadgerDataStore) GetDocumentIterator(databaseId string, collectionId st return nil, datastore.StatusNotFound } - iter := NewBadgerDocumentIterator(txn, generateKey(resourceid.ResourceTypeDocument, databaseId, collectionId, "")) + prefix := generateKey(resourceid.ResourceTypeDocument, databaseId, collectionId, "") + "/" + iter := NewBadgerDocumentIterator(txn, prefix) return iter, datastore.StatusOk } diff --git a/internal/datastore/badger_datastore/stored_procedures.go b/internal/datastore/badger_datastore/stored_procedures.go index 2559527..9f3e802 100644 --- a/internal/datastore/badger_datastore/stored_procedures.go +++ b/internal/datastore/badger_datastore/stored_procedures.go @@ -24,7 +24,8 @@ func (r *BadgerDataStore) GetAllStoredProcedures(databaseId string, collectionId return nil, datastore.StatusNotFound } - storedProcedures, status := listByPrefix[datastore.StoredProcedure](r.db, generateKey(resourceid.ResourceTypeStoredProcedure, databaseId, collectionId, "")) + prefix := generateKey(resourceid.ResourceTypeStoredProcedure, databaseId, collectionId, "") + "/" + storedProcedures, status := listByPrefix[datastore.StoredProcedure](r.db, prefix) if status == datastore.StatusOk { return storedProcedures, datastore.StatusOk } diff --git a/internal/datastore/badger_datastore/triggers.go b/internal/datastore/badger_datastore/triggers.go index fc03f36..15d297e 100644 --- a/internal/datastore/badger_datastore/triggers.go +++ b/internal/datastore/badger_datastore/triggers.go @@ -24,7 +24,8 @@ func (r *BadgerDataStore) GetAllTriggers(databaseId string, collectionId string) return nil, datastore.StatusNotFound } - triggers, status := listByPrefix[datastore.Trigger](r.db, generateKey(resourceid.ResourceTypeTrigger, databaseId, collectionId, "")) + prefix := generateKey(resourceid.ResourceTypeTrigger, databaseId, collectionId, "") + "/" + triggers, status := listByPrefix[datastore.Trigger](r.db, prefix) if status == datastore.StatusOk { return triggers, datastore.StatusOk } diff --git a/internal/datastore/badger_datastore/user_defined_functions.go b/internal/datastore/badger_datastore/user_defined_functions.go index dabf644..4629c84 100644 --- a/internal/datastore/badger_datastore/user_defined_functions.go +++ b/internal/datastore/badger_datastore/user_defined_functions.go @@ -24,7 +24,8 @@ func (r *BadgerDataStore) GetAllUserDefinedFunctions(databaseId string, collecti return nil, datastore.StatusNotFound } - udfs, status := listByPrefix[datastore.UserDefinedFunction](r.db, generateKey(resourceid.ResourceTypeUserDefinedFunction, databaseId, collectionId, "")) + prefix := generateKey(resourceid.ResourceTypeUserDefinedFunction, databaseId, collectionId, "") + "/" + udfs, status := listByPrefix[datastore.UserDefinedFunction](r.db, prefix) if status == datastore.StatusOk { return udfs, datastore.StatusOk }