Issue with deleted values#74

Labels

Milestone

Assignee

1 participant

I ran into some Irmin issues in my IMAP server which I think are related to my misunderstanding of the API. I implemented interface to Irmin as transactions via the views. I have attached an example where I create the top level key ["imaplet";"user";"mailboxes";"Test”], then I get the view and create keys/values in that view ["messages";"1”], ["messages";"1";"header”], ["messages";"1";"content”]. I commit the view with update and then read the values back for verification. Then I remove the top level key ["messages";"1”] and test each key with mem, read, and then I also list the whole tree under ["messages";"1”]. I get results which I don’t quite understand. Here is the matrix that I get

And then the listing under messages;1 returns header and content keys. If I delete messages;1;content and messages;1;header then I can’t read then any longer but mem still returns true and the listing doesn’t return header and content keys. In my IMAP server I have the messages structured in such a way that there is a bunch of sub keys under the message UID keys, like header, content, etc. So, ideally I would like to remove the top level key, basically messages;UID and don’t bother with the removal of all the sub keys. I also would have expected that mem returns false for the removed key. Would you have some time to take a look at the example and explain if and what I’m doing wrong?