Open
Conversation
…basing from test_webdbing.py
Collaborator
|
The naming subdivision with leading dots is a typo. The convention is to use trailing dots to cleanly separate the name space of the subdb from keys inside the subdb. This is beacause LMDB allows whole database access (ignoring subdbs) and using the trailing dots as a convention preserves the ability to distinquish subdb boundaries. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
This PR attemps to implement WebBaser. Currently, WebBaser passes most tests from test_basing.py. Subdbs are being instantiated and are correctly using IoSet, OnIoSet methods from Webdbing.py. However, there are still work to be done:
There are also some things to note:
Subkey Naming Anomalies
Two sub‑DBs use leading‑dot subkeys:
self.epath = IoSetSuber(db=self, subkey=".epath") instead of epath.
self.essrs = CesrIoSetSuber(db=self, subkey=".essrs", klas=Texter) instead of essrs.
I am not sure if this was by design or a typo.
IoSetSuber methods and IoDupSuber methods differences
IoDupSuber Pin:
IoSetSuber Pin:
IoDupSuber Put:
IoSetSuber Pin:
getLastIter for IoDupSuber and IoSetSuber are different:
OnIoSetSuber: getIoSetLastItemIterAll which Iterates over every last added ioset entry at every effective key starting at key greater or equal to key.
OnIoDupSuber: getOnIoDupLastValIter which returns iterator of val of last insertion ordered duplicate at each key over all ordinal numbered onkeys in db with same key
So in the following test, Kels being an IoSetSuber, getLastIter Iterates over every last added ioset entry at every effective key starting at key greater or equal to key. Since the previous key (BWzwEHH) is lexicographically superior to (B4ejhccWzwEHH), when we start to iterate at B4ejhccWzwEHH, we also return the next key.