nedb-engine 2.2.3__tar.gz → 2.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/PKG-INFO +1 -1
  2. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/pyproject.toml +1 -1
  3. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/__init__.py +1 -1
  4. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/engine.py +8 -2
  5. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/.gitignore +0 -0
  6. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/LICENSE +0 -0
  7. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/README.md +0 -0
  8. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/client/node/README.md +0 -0
  9. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/client/python/README.md +0 -0
  10. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/autoindex.py +0 -0
  11. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/backends/__init__.py +0 -0
  12. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/backends/redis_backend.py +0 -0
  13. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/cascade.py +0 -0
  14. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/concurrent.py +0 -0
  15. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/crypto.py +0 -0
  16. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/index.py +0 -0
  17. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/log.py +0 -0
  18. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/merkle.py +0 -0
  19. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/mongo.py +0 -0
  20. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/query.py +0 -0
  21. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/redis_compat.py +0 -0
  22. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/relations.py +0 -0
  23. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/resp2.py +0 -0
  24. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/server.py +0 -0
  25. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/snapshot.py +0 -0
  26. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/sql.py +0 -0
  27. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/store.py +0 -0
  28. {nedb_engine-2.2.3 → nedb_engine-2.2.4}/python/nedb/wrap_redis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedb-engine
3
- Version: 2.2.3
3
+ Version: 2.2.4
4
4
  Summary: NEDB — a versioned, self-compressing, time-traveling embedded database (replay-protected, idempotent, relational, searchable) with durable AOF persistence and a server daemon (nedbd).
5
5
  Project-URL: Homepage, https://github.com/aiassistsecure/nedb
6
6
  Project-URL: Repository, https://github.com/aiassistsecure/nedb
@@ -10,7 +10,7 @@ build-backend = "hatchling.build"
10
10
 
11
11
  [project]
12
12
  name = "nedb-engine"
13
- version = "2.2.3"
13
+ version = "2.2.4"
14
14
  description = "NEDB — a versioned, self-compressing, time-traveling embedded database (replay-protected, idempotent, relational, searchable) with durable AOF persistence and a server daemon (nedbd)."
15
15
  readme = "README.md"
16
16
  requires-python = ">=3.8"
@@ -47,4 +47,4 @@ __all__ = [
47
47
  "wrap_redis", "WrappedRedis",
48
48
  "_native", "__has_native__",
49
49
  ]
50
- __version__ = "2.2.3"
50
+ __version__ = "2.2.4"
@@ -29,7 +29,9 @@ def apply_op(store: MVCCStore, relations: Relations, indexes: Indexes, op: Op,
29
29
  """Deterministically fold one op into materialized state."""
30
30
  p = op.payload
31
31
  if op.op == "put":
32
- key, coll, doc = p["key"], p["coll"], p["doc"]
32
+ key, coll = p["key"], p["coll"]
33
+ doc = dict(p["doc"]) # copy so we don't mutate the op payload
34
+ doc["_seq"] = op.seq # inject sequence number into every stored doc
33
35
  old = store.get(key)
34
36
  if old is not None:
35
37
  indexes.remove(coll, key, old)
@@ -657,7 +659,10 @@ class NEDB:
657
659
  if op.op == "put" and op.payload.get("key") == key_p:
658
660
  queue.append(op.seq)
659
661
  break
660
- for seq in queue:
662
+ # BFS feed found dep_seqs back into the queue for full
663
+ # transitive traversal (mirrors the backward TRACE frontier loop).
664
+ while queue:
665
+ seq = queue.pop(0)
661
666
  for dep_seq in self.cause_map.get(seq, []):
662
667
  if dep_seq in visited_seqs_fwd:
663
668
  continue
@@ -669,6 +674,7 @@ class NEDB:
669
674
  dep_doc = self.store.get(dep_key, as_of)
670
675
  if dep_doc is not None:
671
676
  out_fwd.append((dep_key, dep_doc))
677
+ queue.append(dep_seq) # continue BFS
672
678
  rows = out_fwd
673
679
 
674
680
  if plan.get("limit") is not None:
File without changes
File without changes
File without changes