nedb-engine 1.2.1__tar.gz → 1.2.2__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 (26) hide show
  1. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/PKG-INFO +1 -1
  2. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/pyproject.toml +1 -1
  3. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/__init__.py +1 -1
  4. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/engine.py +8 -2
  5. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/.gitignore +0 -0
  6. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/LICENSE +0 -0
  7. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/README.md +0 -0
  8. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/autoindex.py +0 -0
  9. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/backends/__init__.py +0 -0
  10. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/backends/redis_backend.py +0 -0
  11. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/cascade.py +0 -0
  12. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/concurrent.py +0 -0
  13. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/crypto.py +0 -0
  14. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/index.py +0 -0
  15. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/log.py +0 -0
  16. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/merkle.py +0 -0
  17. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/mongo.py +0 -0
  18. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/query.py +0 -0
  19. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/redis_compat.py +0 -0
  20. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/relations.py +0 -0
  21. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/resp2.py +0 -0
  22. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/server.py +0 -0
  23. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/snapshot.py +0 -0
  24. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/sql.py +0 -0
  25. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/store.py +0 -0
  26. {nedb_engine-1.2.1 → nedb_engine-1.2.2}/python/nedb/wrap_redis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nedb-engine
3
- Version: 1.2.1
3
+ Version: 1.2.2
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/Eth-Interchained/nedb
6
6
  Project-URL: Repository, https://github.com/Eth-Interchained/nedb
@@ -10,7 +10,7 @@ build-backend = "hatchling.build"
10
10
 
11
11
  [project]
12
12
  name = "nedb-engine"
13
- version = "1.2.1"
13
+ version = "1.2.2"
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__ = "1.2.1"
50
+ __version__ = "1.2.2"
@@ -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)
@@ -638,7 +640,10 @@ class NEDB:
638
640
  if op.op == "put" and op.payload.get("key") == key_p:
639
641
  queue.append(op.seq)
640
642
  break
641
- for seq in queue:
643
+ # BFS feed found dep_seqs back into the queue for full
644
+ # transitive traversal (mirrors the backward TRACE frontier loop).
645
+ while queue:
646
+ seq = queue.pop(0)
642
647
  for dep_seq in self.cause_map.get(seq, []):
643
648
  if dep_seq in visited_seqs_fwd:
644
649
  continue
@@ -650,6 +655,7 @@ class NEDB:
650
655
  dep_doc = self.store.get(dep_key, as_of)
651
656
  if dep_doc is not None:
652
657
  out_fwd.append((dep_key, dep_doc))
658
+ queue.append(dep_seq) # continue BFS
653
659
  rows = out_fwd
654
660
 
655
661
  if plan.get("limit") is not None:
File without changes
File without changes
File without changes