The previous logic of using a different null was extremely confusing,
and we essentially ended up creating "two different null types."
That has been removed and we have implemented the dict dec methods and
rectified the enc methods.
On initialization the driver will no longer attempt to truncate the
close event but instead use a truly AO style and utilize a new
directive.
We also now have a basic externally triggered on write and automatically
trigger on read recovery system in place. However, there are several
scopes of improvement to the implementation, such as tolerating even
more inconsistencies in the data.
I actually realized this is a terrible abstraction the day I implemented
it and have since been planning to remove it.
The issue is with aliasing and potential corruption in a multi-threaded
environment. Even though we have never used it in such a context (aka
triggering UB) but we can potentially make an *accidental* use of it;
don't take it lightly: it's like modifying data while someone else is
reading it. That's not bad, that's a nightmare.
Discovered another security bug which could potentially be dangerous:
the low level impl of the index used a comparator where eager evaluation
of an expression led to an erroneous return.
This commit makes an important security fix that caused non-matching
of field data which could have had terrible impacts.
Second, it adds tests for insert and delete.