Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes in this PR:
I'm using the DbNamespace enum as the type which is passed around to decide which namespace to use. The kvt and newKvt procs now have an additional required namespace parameter. I opted to do it this way so that the compiler would help me apply the correct changes in all effected locations in the code. Unfortunately this change touches a lot of places and I couldn't think of a better way to go about it.
The new namespace change currently only affects the legacy persistent mode which is using RocksDB.
Note, that due to the legacy namespace hack/kludge which uses a special prefix byte to virtually separate the various types of data, there will be some difficultly in in removing this tech dept. Many of the tests are based on dumps of the database which are dependent on the data containing these exact prefix bytes so trying to move away from using these prefix bytes will break the tests and would potentially require significant updates to test data.
Also, only the persistent mode has been updated to use the column families to separate the data. This means that most of the tests which use the in memory db modes won't be covering or testing that this column families change will work in production. For this reason I'm wondering if I should also implement some form of separation for the in memory db as well. Alternatively we could opt to only implement column families for the Aristo persistant and Aristo in memory backends and simply leave the legacy dbs as they are because we are planning to switch to Aristo.