~bigbes/sr-ht-dolt: 419fb133

fix(browse): resolve out-of-line text instead of rendering <binary>

Dolt stores text/longtext past a small inline threshold out-of-line,
addressed by a content hash — StringAddrEnc (older writers) or
StringAdaptiveEnc (inline-or-address, current writers). renderCell handled
neither: address-encoded strings fell into the binary-placeholder switch and
rendered "<binary>", while adaptive ones fell through to FormatValue and
rendered the raw address hash. Every long description, close reason, comment
body, and audit-event payload was lost on real databases.

Resolve both through the prolly map's NodeStore (which satisfies
val.ValueStore): GetStringAddr + NewTextStorage().Unwrap for the plain address
case, GetStringAdaptiveValue (string | *TextStorage) for the adaptive case.
Genuine binary/opaque encodings (blob, geometry, json-addr, commit-addr) still
degrade to "<binary>". Fixture grows a >4KB longtext row (folded into C4 so the
commit topology is untouched) and TestRowsResolvesLongText guards it.

Eugene Blikh <bigbes@gmail.com> — 2026-07-19 18:13:32 UTC

Commit 419fb13352c9b01cb51fefea00b2b9b86a4b2c5bview raw patch

Parent(s): b7e8d134

3 changed file(s)

FileStatus+
browse/browse_test.go M +24
browse/fixture_test.go M +14 -1
browse/tables.go M +59 -4