@@ -22,6 +22,7 @@ import (
2222 "github.com/cockroachdb/pebble/internal/sstableinternal"
2323 "github.com/cockroachdb/pebble/internal/treeprinter"
2424 "github.com/cockroachdb/pebble/objstorage"
25+ "github.com/cockroachdb/pebble/sstable/blob"
2526 "github.com/cockroachdb/pebble/sstable/block"
2627 "github.com/cockroachdb/pebble/sstable/colblk"
2728 "github.com/cockroachdb/pebble/sstable/rowblk"
@@ -428,8 +429,24 @@ var _ block.GetInternalValueForPrefixAndValueHandler = describingLazyValueHandle
428429func (describingLazyValueHandler ) GetInternalValueForPrefixAndValueHandle (
429430 handle []byte ,
430431) base.InternalValue {
431- vh := valblk .DecodeHandle (handle [1 :])
432- return base .MakeInPlaceValue ([]byte (fmt .Sprintf ("value handle %+v" , vh )))
432+ vp := block .ValuePrefix (handle [0 ])
433+ var result string
434+ switch {
435+ case vp .IsValueBlockHandle ():
436+ vh := valblk .DecodeHandle (handle [1 :])
437+ result = fmt .Sprintf ("value handle %+v" , vh )
438+ case vp .IsBlobValueHandle ():
439+ handlePreface , remainder := blob .DecodeInlineHandlePreface (handle [1 :])
440+ handleSuffix := blob .DecodeHandleSuffix (remainder )
441+ ih := blob.InlineHandle {
442+ InlineHandlePreface : handlePreface ,
443+ HandleSuffix : handleSuffix ,
444+ }
445+ result = fmt .Sprintf ("blob handle %+v" , ih )
446+ default :
447+ result = "unknown value type"
448+ }
449+ return base .MakeInPlaceValue ([]byte (result ))
433450}
434451
435452func formatColblkKeyspanBlock (
0 commit comments