6b1c9b76
browse: read-only doltdb browsing over bare stores
Read-only web-browsing data layer over bare NBS chunk stores, the only package that reaches into version-fragile dolthub/dolt internals (nbs, prolly, durable, diff), kept isolated so a module bump re-verifies here. - open.go: Open/Close per request. Builds the DoltDB from a single nbs.NewLocalStore via doltdb.DoltDBFromCS instead of doltdb.LoadDoltDB: LoadDoltDB's GenerationalNBS wrapper panics on Close over our bare stores in the pinned version (onHeapTableIndex ref count < 0), even on a plain open-then-close. The single-store path closes cleanly, gives a fresh manifest per request, and is safe alongside the push writer. - log.go: Branches (+ DefaultBranch pick), Log with topological walk, count+start-hash pagination, and commit metadata. - tables.go: Tables (schema + cheap row count) and Rows via durable.ProllyMapFromIndex + prolly IterOrdinalRange, rendered through the tuple descriptors; NULLs, binary/out-of-band values and exotic encodings degrade to printable placeholders and never panic. - diff.go: CommitSummary vs first parent (empty root for the initial commit) with exact added/removed/modified row counts from diff.StatForTableDelta. - tests: fixture built the production way (WriteEmptyRepo bare store, CLI clone/commit/push over a file:// remote); covers branches, log pagination/topo order, tables/schema, row pagination incl. empty table, commit summaries across the add/insert/modify chain and the initial commit, and nonexistent ref/table errors.
Eugene Blikh <bigbes@gmail.com> — 2026-07-18 17:49:41 UTC
Commit 6b1c9b76a7fa6e49faa81a5959cf60dce5e947d0 —
view raw patch
Parent(s):
5e555bac
| File | Status | + | − |
|---|---|---|---|
browse/browse_test.go
|
A | +401 | |
browse/diff.go
|
A | +168 | |
browse/fixture_test.go
|
A | +207 | |
browse/log.go
|
A | +214 | |
browse/open.go
|
A | +109 | |
browse/tables.go
|
A | +279 |