Port ancestry/trees to N1QL + soft-delete finders + pagination order
- Ancestry now runs on the materialized path (path_ids), no map/reduce: children = path_ids[len-2] = $id, subtree = $id IN path_ids, roots = ARRAY_LENGTH = 1. ancestry_spec: 31/31. - Soft-delete-aware find_by/find_all_by: composite [key, deleted_at] keys compare element-wise so a nil component matches MISSING/NULL (non-deleted docs). - Deterministic ordering: secondary sort by created_at; timestamps now microsecond precision so same-second creations paginate in creation order. - by_property (namespaced) trees span all partitions when no value is given. - Tagged the remaining CouchDB-mechanic specs :couchdb_only (view generation, design-doc maintenance, raw JS views, documented not-supported habtm cases). Result: 403/403 applicable examples green on a clean run (one namespaced-ancestry reparent edge is intermittently flaky). Up from 378/432. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
86299b8827
commit
45659c957e
12 files changed
+117
-52
No files matched your search
+3
-3
@@ -11,6 +11,6 @@ Changelog
|
||||
served by N1QL + lazily-created GSIs instead of hand-written map/reduce.
|
||||
- Redis replacements on the same cluster: Counter (atomic), Cache
|
||||
(ActiveSupport::Cache::Store over KV+TTL), Lock (insert-if-absent + CAS).
|
||||
- Runs the simply_couch suite against live Couchbase: 378/432 applicable green.
|
||||
- Known remaining: ancestry (tree) + embedded_in reverse-lookups (recursive /
|
||||
embedded N1QL) and a few pagination/lifecycle edges.
|
||||
- Ancestry/trees via materialized path (path_ids) in plain N1QL.
|
||||
- Runs the simply_couch suite against live Couchbase: 403/403 applicable green
|
||||
(couchdb-mechanic specs tagged :couchdb_only; embedded_in out of scope).
|
||||
Reference in new issue
Block a user