diff --git a/internal/binfmt/binfmt.go b/internal/binfmt/binfmt.go index 076e3cc90a..acb5ee3741 100644 --- a/internal/binfmt/binfmt.go +++ b/internal/binfmt/binfmt.go @@ -14,6 +14,8 @@ import ( "strconv" "strings" "unsafe" + + "github.com/cockroachdb/pebble/internal/treeprinter" ) // New constructs a new binary formatter. @@ -114,11 +116,6 @@ func (f *Formatter) Byte(format string, args ...interface{}) int { return 1 } -// CommentLine adds a full-width comment line to the output. -func (f *Formatter) CommentLine(format string, args ...interface{}) { - f.newline("", strings.TrimSpace(fmt.Sprintf(format, args...))) -} - // HexBytesln formats the next n bytes in hexadecimal format, appending the // formatted comment string to each line and ending on a newline. func (f *Formatter) HexBytesln(n int, format string, args ...interface{}) int { @@ -208,6 +205,17 @@ func (f *Formatter) String() string { return f.buf.String() } +// ToTreePrinter formats the current output and creates a treeprinter child node +// for each line. The current output is reset; the position within the binary +// buffer is not. +func (f *Formatter) ToTreePrinter(tp treeprinter.Node) { + for _, l := range strings.Split(strings.TrimRight(f.String(), "\n"), "\n") { + tp.Child(l) + } + f.buf.Reset() + f.lines = f.lines[:0] +} + // Pointer returns a pointer into the original data slice at the specified // offset. func (f *Formatter) Pointer(off int) unsafe.Pointer { diff --git a/iterator_histories_test.go b/iterator_histories_test.go index 2e51fa2f79..e22fa18e0b 100644 --- a/iterator_histories_test.go +++ b/iterator_histories_test.go @@ -251,8 +251,7 @@ func TestIterHistories(t *testing.T) { if err != nil { return err.Error() } - l.Describe(&buf, verbose, r, nil) - return buf.String() + return l.Describe(verbose, r, nil) case "lsm": return runLSMCmd(td, d) case "metrics": diff --git a/sstable/colblk/bitmap.go b/sstable/colblk/bitmap.go index 3c1b8c640e..e305de4da0 100644 --- a/sstable/colblk/bitmap.go +++ b/sstable/colblk/bitmap.go @@ -15,6 +15,7 @@ import ( "github.com/cockroachdb/errors" "github.com/cockroachdb/pebble/internal/binfmt" + "github.com/cockroachdb/pebble/internal/treeprinter" ) // Bitmap is a bitmap structure built on a []uint64. A bitmap utilizes ~1 @@ -407,15 +408,17 @@ func (b *BitmapBuilder) WriteDebug(w io.Writer, rows int) { fmt.Fprint(w, "bitmap") } -func bitmapToBinFormatter(f *binfmt.Formatter, rows int) { +func bitmapToBinFormatter(f *binfmt.Formatter, tp treeprinter.Node, rows int) { encoding := bitmapEncoding(f.PeekUint(1)) - f.HexBytesln(1, "bitmap encoding") if encoding == zeroBitmapEncoding { + f.HexBytesln(1, "zero bitmap encoding") + f.ToTreePrinter(tp) return } if encoding != defaultBitmapEncoding { panic(fmt.Sprintf("unknown bitmap encoding %d", encoding)) } + f.HexBytesln(1, "default bitmap encoding") if aligned := align(f.RelativeOffset(), 8); aligned-f.RelativeOffset() != 0 { f.HexBytesln(aligned-f.RelativeOffset(), "padding to align to 64-bit boundary") } @@ -427,6 +430,7 @@ func bitmapToBinFormatter(f *binfmt.Formatter, rows int) { for i := 0; i < summaryWords; i++ { f.Line(8).Append("b ").Binary(8).Done("bitmap summary word %d-%d", i*64, i*64+63) } + f.ToTreePrinter(tp) } // nextBitInWord returns the index of the smallest set bit with an index ≥ bit diff --git a/sstable/colblk/bitmap_test.go b/sstable/colblk/bitmap_test.go index 5334ea0375..486f787935 100644 --- a/sstable/colblk/bitmap_test.go +++ b/sstable/colblk/bitmap_test.go @@ -16,6 +16,7 @@ import ( "github.com/cockroachdb/datadriven" "github.com/cockroachdb/pebble/internal/binfmt" + "github.com/cockroachdb/pebble/internal/treeprinter" "github.com/stretchr/testify/require" ) @@ -61,8 +62,9 @@ func TestBitmapFixed(t *testing.T) { if off > 0 { f.HexBytesln(int(off), "initial offset") } - bitmapToBinFormatter(f, n) - fmt.Fprint(&buf, f.String()) + tp := treeprinter.New() + bitmapToBinFormatter(f, tp.Child("bitmap"), n) + fmt.Fprint(&buf, tp.String()) case "seek-set-ge": var indexes []int diff --git a/sstable/colblk/block.go b/sstable/colblk/block.go index 5939fd54cb..dda1e7cd71 100644 --- a/sstable/colblk/block.go +++ b/sstable/colblk/block.go @@ -141,6 +141,7 @@ import ( "github.com/cockroachdb/errors" "github.com/cockroachdb/pebble/internal/aligned" "github.com/cockroachdb/pebble/internal/binfmt" + "github.com/cockroachdb/pebble/internal/treeprinter" ) // Version indicates the version of the columnar block format encoded. The @@ -380,16 +381,18 @@ func (d *BlockDecoder) pointer(offset uint32) unsafe.Pointer { // data. func (d *BlockDecoder) FormattedString() string { f := binfmt.New(d.data) - d.headerToBinFormatter(f) + tp := treeprinter.New() + n := tp.Child("block") + d.headerToBinFormatter(f, n) for i := 0; i < int(d.header.Columns); i++ { - d.columnToBinFormatter(f, i, int(d.header.Rows)) + d.columnToBinFormatter(f, n, i, int(d.header.Rows)) } f.HexBytesln(1, "block trailer padding") - return f.String() + f.ToTreePrinter(n) + return tp.String() } -func (d *BlockDecoder) headerToBinFormatter(f *binfmt.Formatter) { - f.CommentLine("columnar block header") +func (d *BlockDecoder) headerToBinFormatter(f *binfmt.Formatter, tp treeprinter.Node) { f.HexBytesln(1, "version %v", Version(f.PeekUint(1))) f.HexBytesln(2, "%d columns", d.header.Columns) f.HexBytesln(4, "%d rows", d.header.Rows) @@ -397,16 +400,19 @@ func (d *BlockDecoder) headerToBinFormatter(f *binfmt.Formatter) { f.Byte("col %d: %s", i, d.DataType(i)) f.HexBytesln(4, "col %d: page start %d", i, d.pageStart(i)) } + f.ToTreePrinter(tp.Child("columnar block header")) } func (d *BlockDecoder) formatColumn( - f *binfmt.Formatter, col int, fn func(*binfmt.Formatter, DataType), + f *binfmt.Formatter, + tp treeprinter.Node, + col int, + fn func(*binfmt.Formatter, treeprinter.Node, DataType), ) { - f.CommentLine("data for column %d", col) dataType := d.DataType(col) colSize := d.pageStart(col+1) - d.pageStart(col) endOff := f.Offset() + int(colSize) - fn(f, dataType) + fn(f, tp, dataType) // We expect formatting the column data to have consumed all the bytes // between the column's pageOffset and the next column's pageOffset. @@ -419,17 +425,20 @@ func (d *BlockDecoder) formatColumn( } } -func (d *BlockDecoder) columnToBinFormatter(f *binfmt.Formatter, col, rows int) { - d.formatColumn(f, col, func(f *binfmt.Formatter, dataType DataType) { +func (d *BlockDecoder) columnToBinFormatter( + f *binfmt.Formatter, tp treeprinter.Node, col, rows int, +) { + d.formatColumn(f, tp, col, func(f *binfmt.Formatter, tp treeprinter.Node, dataType DataType) { + n := tp.Childf("data for column %d (%s)", col, dataType) switch dataType { case DataTypeBool: - bitmapToBinFormatter(f, rows) + bitmapToBinFormatter(f, n, rows) case DataTypeUint: - uintsToBinFormatter(f, rows, nil) + uintsToBinFormatter(f, n, rows, nil) case DataTypePrefixBytes: - prefixBytesToBinFormatter(f, rows, nil) + prefixBytesToBinFormatter(f, n, rows, nil) case DataTypeBytes: - rawBytesToBinFormatter(f, rows, nil) + rawBytesToBinFormatter(f, n, rows, nil) default: panic("unimplemented") } diff --git a/sstable/colblk/data_block.go b/sstable/colblk/data_block.go index 56ee83e4e4..a0db2dfe0d 100644 --- a/sstable/colblk/data_block.go +++ b/sstable/colblk/data_block.go @@ -793,7 +793,7 @@ func (d *DataBlockDecoder) Init(schema KeySchema, data []byte) { // Describe descirbes the binary format of the data block, assuming f.Offset() // is positioned at the beginning of the same data block described by r. -func (d *DataBlockDecoder) Describe(f *binfmt.Formatter) { +func (d *DataBlockDecoder) Describe(f *binfmt.Formatter, tp treeprinter.Node) { // Set the relative offset. When loaded into memory, the beginning of blocks // are aligned. Padding that ensures alignment is done relative to the // current offset. Setting the relative offset ensures that if we're @@ -802,13 +802,14 @@ func (d *DataBlockDecoder) Describe(f *binfmt.Formatter) { // aligned. f.SetAnchorOffset() - f.CommentLine("data block header") + n := tp.Child("data block header") f.HexBytesln(4, "maximum key length: %d", d.maximumKeyLength) - d.d.headerToBinFormatter(f) + d.d.headerToBinFormatter(f, n) for i := 0; i < int(d.d.header.Columns); i++ { - d.d.columnToBinFormatter(f, i, int(d.d.header.Rows)) + d.d.columnToBinFormatter(f, n, i, int(d.d.header.Rows)) } f.HexBytesln(1, "block padding byte") + f.ToTreePrinter(n) } // Assert that *DataBlockIter implements block.DataBlockIterator. diff --git a/sstable/colblk/data_block_test.go b/sstable/colblk/data_block_test.go index 93666e77a1..2485ea44db 100644 --- a/sstable/colblk/data_block_test.go +++ b/sstable/colblk/data_block_test.go @@ -18,6 +18,7 @@ import ( "github.com/cockroachdb/pebble/internal/binfmt" "github.com/cockroachdb/pebble/internal/itertest" "github.com/cockroachdb/pebble/internal/testkeys" + "github.com/cockroachdb/pebble/internal/treeprinter" "github.com/cockroachdb/pebble/sstable/block" ) @@ -87,11 +88,12 @@ func TestDataBlock(t *testing.T) { } r.Init(testKeysSchema, rewrittenBlock) f := binfmt.New(r.d.data).LineWidth(20) - r.Describe(f) + tp := treeprinter.New() + r.Describe(f, tp) fmt.Fprintf(&buf, "Start: %s\nEnd: %s\n%s", start.Pretty(testkeys.Comparer.FormatKey), end.Pretty(testkeys.Comparer.FormatKey), - f.String()) + tp.String()) return buf.String() case "finish": rows := w.Rows() @@ -99,8 +101,9 @@ func TestDataBlock(t *testing.T) { block, lastKey := w.Finish(rows, sizes[rows-1]) r.Init(testKeysSchema, block) f := binfmt.New(r.d.data).LineWidth(20) - r.Describe(f) - fmt.Fprintf(&buf, "LastKey: %s\n%s", lastKey.Pretty(testkeys.Comparer.FormatKey), f.String()) + tp := treeprinter.New() + r.Describe(f, tp) + fmt.Fprintf(&buf, "LastKey: %s\n%s", lastKey.Pretty(testkeys.Comparer.FormatKey), tp.String()) return buf.String() case "iter": var seqNum uint64 diff --git a/sstable/colblk/index_block.go b/sstable/colblk/index_block.go index b398b7b1c7..973cefbbb8 100644 --- a/sstable/colblk/index_block.go +++ b/sstable/colblk/index_block.go @@ -11,6 +11,7 @@ import ( "github.com/cockroachdb/pebble/internal/base" "github.com/cockroachdb/pebble/internal/binfmt" "github.com/cockroachdb/pebble/internal/invariants" + "github.com/cockroachdb/pebble/internal/treeprinter" "github.com/cockroachdb/pebble/sstable/block" ) @@ -154,13 +155,14 @@ func (r *IndexBlockDecoder) Init(data []byte) { // representation. func (r *IndexBlockDecoder) DebugString() string { f := binfmt.New(r.bd.data).LineWidth(20) - r.Describe(f) - return f.String() + tp := treeprinter.New() + r.Describe(f, tp.Child("index-block-decoder")) + return tp.String() } // Describe describes the binary format of the index block, assuming f.Offset() // is positioned at the beginning of the same index block described by r. -func (r *IndexBlockDecoder) Describe(f *binfmt.Formatter) { +func (r *IndexBlockDecoder) Describe(f *binfmt.Formatter, tp treeprinter.Node) { // Set the relative offset. When loaded into memory, the beginning of blocks // are aligned. Padding that ensures alignment is done relative to the // current offset. Setting the relative offset ensures that if we're @@ -169,12 +171,13 @@ func (r *IndexBlockDecoder) Describe(f *binfmt.Formatter) { // aligned. f.SetAnchorOffset() - f.CommentLine("index block header") - r.bd.headerToBinFormatter(f) + n := tp.Child("index block header") + r.bd.headerToBinFormatter(f, n) for i := 0; i < indexBlockColumnCount; i++ { - r.bd.columnToBinFormatter(f, i, int(r.bd.header.Rows)) + r.bd.columnToBinFormatter(f, n, i, int(r.bd.header.Rows)) } f.HexBytesln(1, "block padding byte") + f.ToTreePrinter(n) } // IndexIter is an iterator over the block entries in an index block. diff --git a/sstable/colblk/keyspan.go b/sstable/colblk/keyspan.go index cdf328a8c2..b1766fec99 100644 --- a/sstable/colblk/keyspan.go +++ b/sstable/colblk/keyspan.go @@ -248,14 +248,15 @@ func (d *KeyspanDecoder) Init(data []byte) { // representation. func (d *KeyspanDecoder) DebugString() string { f := binfmt.New(d.blockDecoder.data).LineWidth(20) - d.Describe(f) - return f.String() + tp := treeprinter.New() + d.Describe(f, tp.Child("keyspan-decoder")) + return tp.String() } // Describe describes the binary format of the keyspan block, assuming // f.Offset() is positioned at the beginning of the same keyspan block described // by r. -func (d *KeyspanDecoder) Describe(f *binfmt.Formatter) { +func (d *KeyspanDecoder) Describe(f *binfmt.Formatter, tp treeprinter.Node) { // Set the relative offset. When loaded into memory, the beginning of blocks // are aligned. Padding that ensures alignment is done relative to the // current offset. Setting the relative offset ensures that if we're @@ -264,9 +265,10 @@ func (d *KeyspanDecoder) Describe(f *binfmt.Formatter) { // aligned. f.SetAnchorOffset() - f.CommentLine("keyspan block header") + n := tp.Child("keyspan block header") f.HexBytesln(4, "user key count: %d", d.boundaryKeysCount) - d.blockDecoder.headerToBinFormatter(f) + f.ToTreePrinter(n) + d.blockDecoder.headerToBinFormatter(f, n) for i := 0; i < keyspanColumnCount; i++ { // Not all columns in a keyspan block have the same number of rows; the @@ -277,9 +279,10 @@ func (d *KeyspanDecoder) Describe(f *binfmt.Formatter) { if i == keyspanColBoundaryUserKeys || i == keyspanColBoundaryKeyIndices { rows = int(d.boundaryKeysCount) } - d.blockDecoder.columnToBinFormatter(f, i, rows) + d.blockDecoder.columnToBinFormatter(f, n, i, rows) } f.HexBytesln(1, "block padding byte") + f.ToTreePrinter(n) } // searchBoundaryKeys returns the index of the first boundary key greater than diff --git a/sstable/colblk/prefix_bytes.go b/sstable/colblk/prefix_bytes.go index 6c7d4b35d2..00d9f10071 100644 --- a/sstable/colblk/prefix_bytes.go +++ b/sstable/colblk/prefix_bytes.go @@ -17,6 +17,7 @@ import ( "github.com/cockroachdb/errors" "github.com/cockroachdb/pebble/internal/binfmt" "github.com/cockroachdb/pebble/internal/invariants" + "github.com/cockroachdb/pebble/internal/treeprinter" "github.com/cockroachdb/pebble/sstable/block" ) @@ -599,21 +600,25 @@ func (b *PrefixBytes) Search(k []byte) (rowIndex int, isEqual bool) { return b.rows, false } -func prefixBytesToBinFormatter(f *binfmt.Formatter, count int, sliceFormatter func([]byte) string) { +func prefixBytesToBinFormatter( + f *binfmt.Formatter, tp treeprinter.Node, count int, sliceFormatter func([]byte) string, +) { if sliceFormatter == nil { sliceFormatter = defaultSliceFormatter } pb, _ := DecodePrefixBytes(f.RelativeData(), uint32(f.RelativeOffset()), count) - f.CommentLine("PrefixBytes") - f.HexBytesln(1, "bundleSize: %d", 1< 0 { f.HexBytesln(startOffset, "start offset") + f.ToTreePrinter(n) } - rawBytesToBinFormatter(f, count, nil) + rawBytesToBinFormatter(f, n, count, nil) var decodedEndOffset uint32 rawBytes, decodedEndOffset = DecodeRawBytes(buf[startOffset:], 0, count) require.Equal(t, endOffset, decodedEndOffset+uint32(startOffset)) - return f.String() + return tp.String() case "at": var indices []int td.ScanArgs(t, "indices", &indices) diff --git a/sstable/colblk/testdata/bitmap b/sstable/colblk/testdata/bitmap index ebe7dff17c..638c4d638d 100644 --- a/sstable/colblk/testdata/bitmap +++ b/sstable/colblk/testdata/bitmap @@ -3,36 +3,40 @@ build ---- 00000 Binary representation: -0-1: x 01 # bitmap encoding +bitmap + └── 0-1: x 01 # zero bitmap encoding build offset=3 00000 ---- 00000 Binary representation: -0-3: x 000000 # initial offset -3-4: x 01 # bitmap encoding +bitmap + ├── 0-3: x 000000 # initial offset + └── 3-4: x 01 # zero bitmap encoding build invert 00000 ---- 11111 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0001111100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0001111100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build invert offset=3 00000 ---- 11111 Binary representation: -00-03: x 000000 # initial offset -03-04: x 00 # bitmap encoding -04-08: x 00000000 # padding to align to 64-bit boundary -08-16: b 0001111100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-03: x 000000 # initial offset + ├── 03-04: x 00 # default bitmap encoding + ├── 04-08: x 00000000 # padding to align to 64-bit boundary + ├── 08-16: b 0001111100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # An inverted bitmap never uses the zero encoding. build invert @@ -40,10 +44,11 @@ build invert ---- 00000 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build rows=100 0 @@ -51,17 +56,19 @@ build rows=100 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000 Binary representation: -0-1: x 01 # bitmap encoding +bitmap + └── 0-1: x 01 # zero bitmap encoding build 10101011100011100 ---- 10101011100011100 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 1101010101110001000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 1101010101110001000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 seek-set-ge indexes=(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16) ---- @@ -148,11 +155,12 @@ build offset=1 ---- 10101011100011100 Binary representation: -00-01: x 00 # initial offset -01-02: x 00 # bitmap encoding -02-08: x 000000000000 # padding to align to 64-bit boundary -08-16: b 1101010101110001000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # initial offset + ├── 01-02: x 00 # default bitmap encoding + ├── 02-08: x 000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 1101010101110001000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # Test calling Invert() before finishing. @@ -161,31 +169,34 @@ build invert ---- 01010100011100011 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0010101010001110000000010000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0010101010001110000000010000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build invert offset=1 10101011100011100 ---- 01010100011100011 Binary representation: -00-01: x 00 # initial offset -01-02: x 00 # bitmap encoding -02-08: x 000000000000 # padding to align to 64-bit boundary -08-16: b 0010101010001110000000010000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # initial offset + ├── 01-02: x 00 # default bitmap encoding + ├── 02-08: x 000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0010101010001110000000010000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build 1 ---- 1 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # Test sparseness; relying on the tailing bits being implicitly zeroed. @@ -201,27 +212,29 @@ build rows=512 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 1 -24-32: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 2 -32-40: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 3 -40-48: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 4 -48-56: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 5 -56-64: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 6 -64-72: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 7 -72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + ├── 16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 1 + ├── 24-32: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 2 + ├── 32-40: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 3 + ├── 40-48: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 4 + ├── 48-56: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 5 + ├── 56-64: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 6 + ├── 64-72: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 7 + └── 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build invert 1 ---- 0 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # Test sparseness with inversion, relying on the trailing bits being implicitly # set to one. @@ -238,17 +251,18 @@ build invert rows=512 1111111111111111111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111111111111111111111111 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 1111111011111111111111111111111111111111111111111111111111111111 # bitmap word 0 -16-24: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 1 -24-32: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 2 -32-40: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 3 -40-48: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 4 -48-56: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 5 -56-64: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 6 -64-72: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 7 -72-80: b 1111111100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 1111111011111111111111111111111111111111111111111111111111111111 # bitmap word 0 + ├── 16-24: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 1 + ├── 24-32: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 2 + ├── 32-40: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 3 + ├── 40-48: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 4 + ├── 48-56: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 5 + ├── 56-64: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 6 + ├── 64-72: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 7 + └── 72-80: b 1111111100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # 32-bits wide @@ -257,10 +271,11 @@ build ---- 1010101010111111111110000001110 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0101010111111101000111110011100000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0101010111111101000111110011100000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # 33-bits wide @@ -269,10 +284,11 @@ build ---- 10101010101111111111100000011101 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0101010111111101000111111011100000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0101010111111101000111111011100000000000000000000000000000000000 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # 64-bits wide @@ -281,10 +297,11 @@ build ---- 1010101010111111111110000001110101010101011111111111000000111011 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0101010111111101000111111011100010101010111111100000111111011100 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0101010111111101000111111011100010101010111111100000111111011100 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # 63-bits wide @@ -293,10 +310,11 @@ build ---- 101010101011111111111000000111010101010101111111111100000011101 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0101010111111101000111111011100010101010111111100000111101011100 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0101010111111101000111111011100010101010111111100000111101011100 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # 65-bits wide @@ -307,11 +325,12 @@ build 1010101010111111111110000001110101010101011111111111000000111011 1 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0101010111111101000111111011100010101010111111100000111111011100 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 1 -24-32: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0101010111111101000111111011100010101010111111100000111111011100 # bitmap word 0 + ├── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 1 + └── 24-32: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build 1111111111111111111111111111111111111111111111111111111111111111 @@ -326,14 +345,15 @@ build 1111111111111111111111111111111111111111111111111111111111111111 1111111111111111111111111111111111111111111111111111111111111111 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 0 -16-24: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 1 -24-32: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 2 -32-40: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 3 -40-48: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 4 -48-56: b 0001111100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 0 + ├── 16-24: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 1 + ├── 24-32: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 2 + ├── 32-40: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 3 + ├── 40-48: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 4 + └── 48-56: b 0001111100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 build 0000000000000000000000000000000000000000000000000000000000000000 @@ -348,7 +368,8 @@ build 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 Binary representation: -0-1: x 01 # bitmap encoding +bitmap + └── 0-1: x 01 # zero bitmap encoding build 0000000000000000000000000000000000000000000000000000000000000000 @@ -363,14 +384,15 @@ build 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000001 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 1 -24-32: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 2 -32-40: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 3 -40-48: b 0000000000000000000000000000000000000000000000000000000010000000 # bitmap word 4 -48-56: b 0001000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + ├── 16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 1 + ├── 24-32: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 2 + ├── 32-40: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 3 + ├── 40-48: b 0000000000000000000000000000000000000000000000000000000010000000 # bitmap word 4 + └── 48-56: b 0001000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # Write out one fewer row than is set, which should result in the all-zeroes # encoding. @@ -388,7 +410,8 @@ build rows=319 0000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000 Binary representation: -0-1: x 01 # bitmap encoding +bitmap + └── 0-1: x 01 # zero bitmap encoding # Write out fewer rows than we set. The bitmap summary should reflect the # truncated view of the bitmap. @@ -406,14 +429,15 @@ build rows=260 0000000000111000000000000000000000000000000000000000000000000000 0000 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 -16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 1 -24-32: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 2 -32-40: b 0000000000011100000000000000000000000000000000000000000000000000 # bitmap word 3 -40-48: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 4 -48-56: b 0000100000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + ├── 16-24: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 1 + ├── 24-32: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 2 + ├── 32-40: b 0000000000011100000000000000000000000000000000000000000000000000 # bitmap word 3 + ├── 40-48: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 4 + └── 48-56: b 0000100000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 # Test a case where we invert a bitmap that has more words than we'll need in # the finished serialized bitmap. Regression test for a bug that caused us to @@ -425,7 +449,8 @@ build rows=64 invert ---- 1111111111111111111111111111111111111111111111111111111111111111 Binary representation: -00-01: x 00 # bitmap encoding -01-08: x 00000000000000 # padding to align to 64-bit boundary -08-16: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 0 -16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 +bitmap + ├── 00-01: x 00 # default bitmap encoding + ├── 01-08: x 00000000000000 # padding to align to 64-bit boundary + ├── 08-16: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 0 + └── 16-24: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 diff --git a/sstable/colblk/testdata/block_writer b/sstable/colblk/testdata/block_writer index 2c27e0a484..5fb798f822 100644 --- a/sstable/colblk/testdata/block_writer +++ b/sstable/colblk/testdata/block_writer @@ -16,15 +16,16 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 0a000000 # 10 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 00 # encoding: zero -13-14: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 0a000000 # 10 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ └── 12-13: x 00 # encoding: zero + └── 13-14: x 00 # block trailer padding # Test a uint column with all values equal but non-zero. @@ -48,16 +49,17 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 0c000000 # 12 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 80 # encoding: const -13-21: x ffffffffffffff7f # 64-bit constant: 9223372036854775807 -21-22: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 0c000000 # 12 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ ├── 12-13: x 80 # encoding: const + │ └── 13-21: x ffffffffffffff7f # 64-bit constant: 9223372036854775807 + └── 21-22: x 00 # block trailer padding # Test a uint column with a mix of values, but all values less than 256 # greater than 4149660732785475243. It should use the delta8 encoding. @@ -75,21 +77,22 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 05000000 # 5 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 81 # encoding: 1b,delta -13-21: x abbe105c738e9639 # 64-bit constant: 4149660732785475243 -21-22: x 01 # data[0] = 1 + 4149660732785475243 = 4149660732785475244 -22-23: x 00 # data[1] = 0 + 4149660732785475243 = 4149660732785475243 -23-24: x 33 # data[2] = 51 + 4149660732785475243 = 4149660732785475294 -24-25: x 51 # data[3] = 81 + 4149660732785475243 = 4149660732785475324 -25-26: x 93 # data[4] = 147 + 4149660732785475243 = 4149660732785475390 -26-27: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 05000000 # 5 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ ├── 12-13: x 81 # encoding: 1b,delta + │ ├── 13-21: x abbe105c738e9639 # 64-bit constant: 4149660732785475243 + │ ├── 21-22: x 01 # data[0] = 1 + 4149660732785475243 = 4149660732785475244 + │ ├── 22-23: x 00 # data[1] = 0 + 4149660732785475243 = 4149660732785475243 + │ ├── 23-24: x 33 # data[2] = 51 + 4149660732785475243 = 4149660732785475294 + │ ├── 24-25: x 51 # data[3] = 81 + 4149660732785475243 = 4149660732785475324 + │ └── 25-26: x 93 # data[4] = 147 + 4149660732785475243 = 4149660732785475390 + └── 26-27: x 00 # block trailer padding # Test the same case, but this time with a value that is exactly 256 greater # than the lowest value. The column should use the delta16 encoding. @@ -108,23 +111,24 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 06000000 # 6 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 82 # encoding: 2b,delta -13-21: x abbe105c738e9639 # 64-bit constant: 4149660732785475243 -21-22: x 00 # padding (aligning to 16-bit boundary) -22-24: x 0100 # data[0] = 1 + 4149660732785475243 = 4149660732785475244 -24-26: x 0000 # data[1] = 0 + 4149660732785475243 = 4149660732785475243 -26-28: x 3300 # data[2] = 51 + 4149660732785475243 = 4149660732785475294 -28-30: x 0001 # data[3] = 256 + 4149660732785475243 = 4149660732785475499 -30-32: x 5100 # data[4] = 81 + 4149660732785475243 = 4149660732785475324 -32-34: x 9300 # data[5] = 147 + 4149660732785475243 = 4149660732785475390 -34-35: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 06000000 # 6 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ ├── 12-13: x 82 # encoding: 2b,delta + │ ├── 13-21: x abbe105c738e9639 # 64-bit constant: 4149660732785475243 + │ ├── 21-22: x 00 # padding (aligning to 16-bit boundary) + │ ├── 22-24: x 0100 # data[0] = 1 + 4149660732785475243 = 4149660732785475244 + │ ├── 24-26: x 0000 # data[1] = 0 + 4149660732785475243 = 4149660732785475243 + │ ├── 26-28: x 3300 # data[2] = 51 + 4149660732785475243 = 4149660732785475294 + │ ├── 28-30: x 0001 # data[3] = 256 + 4149660732785475243 = 4149660732785475499 + │ ├── 30-32: x 5100 # data[4] = 81 + 4149660732785475243 = 4149660732785475324 + │ └── 32-34: x 9300 # data[5] = 147 + 4149660732785475243 = 4149660732785475390 + └── 34-35: x 00 # block trailer padding init schema=(uint) ---- @@ -143,25 +147,26 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 09000000 # 9 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 04 # encoding: 4b -13-16: x 000000 # padding (aligning to 32-bit boundary) -16-20: x 00000000 # data[0] = 0 -20-24: x 01000000 # data[1] = 1 -24-28: x 02000000 # data[2] = 2 -28-32: x 03000000 # data[3] = 3 -32-36: x 04000000 # data[4] = 4 -36-40: x 05000000 # data[5] = 5 -40-44: x 06000000 # data[6] = 6 -44-48: x ffffff7f # data[7] = 2147483647 -48-52: x 00000100 # data[8] = 65536 -52-53: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 09000000 # 9 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ ├── 12-13: x 04 # encoding: 4b + │ ├── 13-16: x 000000 # padding (aligning to 32-bit boundary) + │ ├── 16-20: x 00000000 # data[0] = 0 + │ ├── 20-24: x 01000000 # data[1] = 1 + │ ├── 24-28: x 02000000 # data[2] = 2 + │ ├── 28-32: x 03000000 # data[3] = 3 + │ ├── 32-36: x 04000000 # data[4] = 4 + │ ├── 36-40: x 05000000 # data[5] = 5 + │ ├── 40-44: x 06000000 # data[6] = 6 + │ ├── 44-48: x ffffff7f # data[7] = 2147483647 + │ └── 48-52: x 00000100 # data[8] = 65536 + └── 52-53: x 00 # block trailer padding # Test two columns: a uint32 and a uint64. @@ -183,25 +188,26 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 0a000000 # 10 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 01 # encoding: 1b -13-14: x 00 # data[0] = 0 -14-15: x 01 # data[1] = 1 -15-16: x 02 # data[2] = 2 -16-17: x 03 # data[3] = 3 -17-18: x 04 # data[4] = 4 -18-19: x 05 # data[5] = 5 -19-20: x 06 # data[6] = 6 -20-21: x 07 # data[7] = 7 -21-22: x 08 # data[8] = 8 -22-23: x 09 # data[9] = 9 -23-24: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 0a000000 # 10 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ ├── 12-13: x 01 # encoding: 1b + │ ├── 13-14: x 00 # data[0] = 0 + │ ├── 14-15: x 01 # data[1] = 1 + │ ├── 15-16: x 02 # data[2] = 2 + │ ├── 16-17: x 03 # data[3] = 3 + │ ├── 17-18: x 04 # data[4] = 4 + │ ├── 18-19: x 05 # data[5] = 5 + │ ├── 19-20: x 06 # data[6] = 6 + │ ├── 20-21: x 07 # data[7] = 7 + │ ├── 21-22: x 08 # data[8] = 8 + │ └── 22-23: x 09 # data[9] = 9 + └── 23-24: x 00 # block trailer padding init schema=(uint) ---- @@ -213,18 +219,19 @@ write finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 02000000 # 2 rows -07-08: b 00000010 # col 0: uint -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 02 # encoding: 2b -13-14: x 00 # padding (aligning to 16-bit boundary) -14-16: x 0730 # data[0] = 12295 -16-18: x 0100 # data[1] = 1 -18-19: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 02000000 # 2 rows + │ ├── 07-08: b 00000010 # col 0: uint + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (uint) + │ ├── 12-13: x 02 # encoding: 2b + │ ├── 13-14: x 00 # padding (aligning to 16-bit boundary) + │ ├── 14-16: x 0730 # data[0] = 12295 + │ └── 16-18: x 0100 # data[1] = 1 + └── 18-19: x 00 # block trailer padding init schema=(bool) ---- @@ -258,18 +265,19 @@ t finish ---- -# columnar block header -00-01: x 01 # version 1 -01-03: x 0100 # 1 columns -03-07: x 18000000 # 24 rows -07-08: b 00000001 # col 0: bool -08-12: x 0c000000 # col 0: page start 12 -# data for column 0 -12-13: x 00 # bitmap encoding -13-16: x 000000 # padding to align to 64-bit boundary -16-24: b 1011011101111101110110110000000000000000000000000000000000000000 # bitmap word 0 -24-32: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -32-33: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0100 # 1 columns + │ ├── 03-07: x 18000000 # 24 rows + │ ├── 07-08: b 00000001 # col 0: bool + │ └── 08-12: x 0c000000 # col 0: page start 12 + ├── data for column 0 (bool) + │ ├── 12-13: x 00 # default bitmap encoding + │ ├── 13-16: x 000000 # padding to align to 64-bit boundary + │ ├── 16-24: b 1011011101111101110110110000000000000000000000000000000000000000 # bitmap word 0 + │ └── 24-32: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + └── 32-33: x 00 # block trailer padding init schema=(bytes,uint) ---- @@ -288,47 +296,47 @@ kiwi 100 finish ---- -# columnar block header -000-001: x 01 # version 1 -001-003: x 0200 # 2 columns -003-007: x 09000000 # 9 rows -007-008: b 00000011 # col 0: bytes -008-012: x 11000000 # col 0: page start 17 -012-013: b 00000010 # col 1: uint -013-017: x 5a000000 # col 1: page start 90 -# data for column 0 -# rawbytes -# offsets table -017-018: x 01 # encoding: 1b -018-019: x 00 # data[0] = 0 [28 overall] -019-020: x 05 # data[1] = 5 [33 overall] -020-021: x 0b # data[2] = 11 [39 overall] -021-022: x 12 # data[3] = 18 [46 overall] -022-023: x 1d # data[4] = 29 [57 overall] -023-024: x 27 # data[5] = 39 [67 overall] -024-025: x 2d # data[6] = 45 [73 overall] -025-026: x 31 # data[7] = 49 [77 overall] -026-027: x 3a # data[8] = 58 [86 overall] -027-028: x 3e # data[9] = 62 [90 overall] -# data -028-033: x 6170706c65 # data[0]: apple -033-039: x 62616e616e61 # data[1]: banana -039-046: x 636f636f6e7574 # data[2]: coconut -046-057: x 647261676f6e6672756974 # data[3]: dragonfruit -057-067: x 656c6465726265727279 # data[4]: elderberry -067-073: x 667261697365 # data[5]: fraise -073-077: x 676f6a69 # data[6]: goji -077-086: x 6a61636b6672756974 # data[7]: jackfruit -086-090: x 6b697769 # data[8]: kiwi -# data for column 1 -090-091: x 01 # encoding: 1b -091-092: x 14 # data[0] = 20 -092-093: x 1e # data[1] = 30 -093-094: x 0a # data[2] = 10 -094-095: x 46 # data[3] = 70 -095-096: x 32 # data[4] = 50 -096-097: x 3c # data[5] = 60 -097-098: x 50 # data[6] = 80 -098-099: x 5a # data[7] = 90 -099-100: x 64 # data[8] = 100 -100-101: x 00 # block trailer padding +block + ├── columnar block header + │ ├── 000-001: x 01 # version 1 + │ ├── 001-003: x 0200 # 2 columns + │ ├── 003-007: x 09000000 # 9 rows + │ ├── 007-008: b 00000011 # col 0: bytes + │ ├── 008-012: x 11000000 # col 0: page start 17 + │ ├── 012-013: b 00000010 # col 1: uint + │ └── 013-017: x 5a000000 # col 1: page start 90 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 017-018: x 01 # encoding: 1b + │ │ ├── 018-019: x 00 # data[0] = 0 [28 overall] + │ │ ├── 019-020: x 05 # data[1] = 5 [33 overall] + │ │ ├── 020-021: x 0b # data[2] = 11 [39 overall] + │ │ ├── 021-022: x 12 # data[3] = 18 [46 overall] + │ │ ├── 022-023: x 1d # data[4] = 29 [57 overall] + │ │ ├── 023-024: x 27 # data[5] = 39 [67 overall] + │ │ ├── 024-025: x 2d # data[6] = 45 [73 overall] + │ │ ├── 025-026: x 31 # data[7] = 49 [77 overall] + │ │ ├── 026-027: x 3a # data[8] = 58 [86 overall] + │ │ └── 027-028: x 3e # data[9] = 62 [90 overall] + │ └── data + │ ├── 028-033: x 6170706c65 # data[0]: apple + │ ├── 033-039: x 62616e616e61 # data[1]: banana + │ ├── 039-046: x 636f636f6e7574 # data[2]: coconut + │ ├── 046-057: x 647261676f6e6672756974 # data[3]: dragonfruit + │ ├── 057-067: x 656c6465726265727279 # data[4]: elderberry + │ ├── 067-073: x 667261697365 # data[5]: fraise + │ ├── 073-077: x 676f6a69 # data[6]: goji + │ ├── 077-086: x 6a61636b6672756974 # data[7]: jackfruit + │ └── 086-090: x 6b697769 # data[8]: kiwi + ├── data for column 1 (uint) + │ ├── 090-091: x 01 # encoding: 1b + │ ├── 091-092: x 14 # data[0] = 20 + │ ├── 092-093: x 1e # data[1] = 30 + │ ├── 093-094: x 0a # data[2] = 10 + │ ├── 094-095: x 46 # data[3] = 70 + │ ├── 095-096: x 32 # data[4] = 50 + │ ├── 096-097: x 3c # data[5] = 60 + │ ├── 097-098: x 50 # data[6] = 80 + │ ├── 098-099: x 5a # data[7] = 90 + │ └── 099-100: x 64 # data[8] = 100 + └── 100-101: x 00 # block trailer padding diff --git a/sstable/colblk/testdata/data_block/bundle_search b/sstable/colblk/testdata/data_block/bundle_search index 433c1db92b..d652f15987 100644 --- a/sstable/colblk/testdata/data_block/bundle_search +++ b/sstable/colblk/testdata/data_block/bundle_search @@ -99,424 +99,421 @@ size=729: finish ---- LastKey: bacteria#1,SET -# data block header -000-004: x 10000000 # maximum key length: 16 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 42000000 # 66 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 29020000 # col 1: page start 553 -021-022: b 00000010 # col 2: uint -022-026: x 2a020000 # col 2: page start 554 -026-027: b 00000001 # col 3: bool -027-031: x 33020000 # col 3: page start 563 -031-032: b 00000011 # col 4: bytes -032-036: x 50020000 # col 4: page start 592 -036-037: b 00000001 # col 5: bool -037-041: x d6020000 # col 5: page start 726 -041-042: b 00000001 # col 6: bool -042-046: x d7020000 # col 6: page start 727 -# data for column 0 -# PrefixBytes -046-047: x 02 # bundleSize: 4 -# Offsets table -047-048: x 02 # encoding: 2b -048-050: x 0200 # data[0] = 2 [218 overall] -050-052: x 0300 # data[1] = 3 [219 overall] -052-054: x 0400 # data[2] = 4 [220 overall] -054-056: x 0700 # data[3] = 7 [223 overall] -056-058: x 0e00 # data[4] = 14 [230 overall] -058-060: x 1200 # data[5] = 18 [234 overall] -060-062: x 1500 # data[6] = 21 [237 overall] -062-064: x 1a00 # data[7] = 26 [242 overall] -064-066: x 1d00 # data[8] = 29 [245 overall] -066-068: x 2200 # data[9] = 34 [250 overall] -068-070: x 2500 # data[10] = 37 [253 overall] -070-072: x 2600 # data[11] = 38 [254 overall] -072-074: x 2d00 # data[12] = 45 [261 overall] -074-076: x 3000 # data[13] = 48 [264 overall] -076-078: x 3100 # data[14] = 49 [265 overall] -078-080: x 3400 # data[15] = 52 [268 overall] -080-082: x 3500 # data[16] = 53 [269 overall] -082-084: x 3b00 # data[17] = 59 [275 overall] -084-086: x 4100 # data[18] = 65 [281 overall] -086-088: x 4600 # data[19] = 70 [286 overall] -088-090: x 4700 # data[20] = 71 [287 overall] -090-092: x 4900 # data[21] = 73 [289 overall] -092-094: x 4c00 # data[22] = 76 [292 overall] -094-096: x 5000 # data[23] = 80 [296 overall] -096-098: x 5500 # data[24] = 85 [301 overall] -098-100: x 5800 # data[25] = 88 [304 overall] -100-102: x 5a00 # data[26] = 90 [306 overall] -102-104: x 5f00 # data[27] = 95 [311 overall] -104-106: x 6600 # data[28] = 102 [318 overall] -106-108: x 6900 # data[29] = 105 [321 overall] -108-110: x 6d00 # data[30] = 109 [325 overall] -110-112: x 7400 # data[31] = 116 [332 overall] -112-114: x 7400 # data[32] = 116 [332 overall] -114-116: x 7700 # data[33] = 119 [335 overall] -116-118: x 7d00 # data[34] = 125 [341 overall] -118-120: x 8200 # data[35] = 130 [346 overall] -120-122: x 8300 # data[36] = 131 [347 overall] -122-124: x 8c00 # data[37] = 140 [356 overall] -124-126: x 9900 # data[38] = 153 [369 overall] -126-128: x a200 # data[39] = 162 [378 overall] -128-130: x a300 # data[40] = 163 [379 overall] -130-132: x a500 # data[41] = 165 [381 overall] -132-134: x a900 # data[42] = 169 [385 overall] -134-136: x ad00 # data[43] = 173 [389 overall] -136-138: x b200 # data[44] = 178 [394 overall] -138-140: x ba00 # data[45] = 186 [402 overall] -140-142: x bc00 # data[46] = 188 [404 overall] -142-144: x c100 # data[47] = 193 [409 overall] -144-146: x c600 # data[48] = 198 [414 overall] -146-148: x ca00 # data[49] = 202 [418 overall] -148-150: x ce00 # data[50] = 206 [422 overall] -150-152: x d000 # data[51] = 208 [424 overall] -152-154: x d400 # data[52] = 212 [428 overall] -154-156: x d600 # data[53] = 214 [430 overall] -156-158: x db00 # data[54] = 219 [435 overall] -158-160: x df00 # data[55] = 223 [439 overall] -160-162: x e100 # data[56] = 225 [441 overall] -162-164: x e500 # data[57] = 229 [445 overall] -164-166: x eb00 # data[58] = 235 [451 overall] -166-168: x f100 # data[59] = 241 [457 overall] -168-170: x f700 # data[60] = 247 [463 overall] -170-172: x fd00 # data[61] = 253 [469 overall] -172-174: x fd00 # data[62] = 253 [469 overall] -174-176: x ff00 # data[63] = 255 [471 overall] -176-178: x 0301 # data[64] = 259 [475 overall] -178-180: x 0901 # data[65] = 265 [481 overall] -180-182: x 0b01 # data[66] = 267 [483 overall] -182-184: x 1001 # data[67] = 272 [488 overall] -184-186: x 1401 # data[68] = 276 [492 overall] -186-188: x 1901 # data[69] = 281 [497 overall] -188-190: x 1e01 # data[70] = 286 [502 overall] -190-192: x 2001 # data[71] = 288 [504 overall] -192-194: x 2501 # data[72] = 293 [509 overall] -194-196: x 2901 # data[73] = 297 [513 overall] -196-198: x 2f01 # data[74] = 303 [519 overall] -198-200: x 3401 # data[75] = 308 [524 overall] -200-202: x 3601 # data[76] = 310 [526 overall] -202-204: x 3801 # data[77] = 312 [528 overall] -204-206: x 3c01 # data[78] = 316 [532 overall] -206-208: x 4101 # data[79] = 321 [537 overall] -208-210: x 4501 # data[80] = 325 [541 overall] -210-212: x 4601 # data[81] = 326 [542 overall] -212-214: x 4c01 # data[82] = 332 [548 overall] -214-216: x 5101 # data[83] = 337 [553 overall] -# Data -216-218: x 6261 # data[00]: ba (block prefix) -218-219: x 62 # data[01]: ..b (bundle prefix) -219-220: x 61 # data[02]: ...a -220-223: x 626c65 # data[03]: ...ble -223-230: x 626c656d656e74 # data[04]: ...blement -230-234: x 626c6572 # data[05]: ...bler -234-237: x 62626c # data[06]: ..bbl (bundle prefix) -237-242: x 65736f6d65 # data[07]: .....esome -242-245: x 696e67 # data[08]: .....ing -245-250: x 696e676c79 # data[09]: .....ingly -250-253: x 697368 # data[10]: .....ish -253-254: x 62 # data[11]: ..b (bundle prefix) -254-261: x 626c6973686c79 # data[12]: ...blishly -261-264: x 626c79 # data[13]: ...bly -264-265: x 65 # data[14]: ...e -265-268: x 6f6f6e # data[15]: ...oon -268-269: x 62 # data[16]: ..b (bundle prefix) -269-275: x 6f6f6e657279 # data[17]: ...oonery -275-281: x 6f6f6e697368 # data[18]: ...oonish -281-286: x 7573686b61 # data[19]: ...ushka -286-287: x 79 # data[20]: ...y -287-289: x 6279 # data[21]: ..by (bundle prefix) -289-292: x 646f6d # data[22]: ....dom -292-296: x 686f6f64 # data[23]: ....hood -296-301: x 686f757365 # data[24]: ....house -301-304: x 697368 # data[25]: ....ish -304-306: x 6279 # data[26]: ..by (bundle prefix) -306-311: x 6973686c79 # data[27]: ....ishly -311-318: x 6973686e657373 # data[28]: ....ishness -318-321: x 69736d # data[29]: ....ism -321-325: x 6c696b65 # data[30]: ....like -325-332: x 636368616e616c # data[31]: ..cchanal (bundle prefix) -332-332: x # data[32]: ......... -332-335: x 69616e # data[33]: .........ian -335-341: x 69616e69736d # data[34]: .........ianism -341-346: x 69616e6c79 # data[35]: .........ianly -346-347: x 63 # data[36]: ..c (bundle prefix) -347-356: x 6368616e616c69736d # data[37]: ...chanalism -356-366: x 6368616e616c697a6174 # data[38]: ...chanalization -366-369: x 696f6e # (continued...) -369-378: x 6368616e616c697a65 # data[39]: ...chanalize -378-379: x 6b # data[40]: ...k -379-381: x 636b # data[41]: ..ck (bundle prefix) -381-385: x 61636865 # data[42]: ....ache -385-389: x 626f6e65 # data[43]: ....bone -389-394: x 626f6e6564 # data[44]: ....boned -394-402: x 627265616b696e67 # data[45]: ....breaking -402-404: x 636b # data[46]: ..ck (bundle prefix) -404-409: x 636f757274 # data[47]: ....court -409-414: x 63726f7373 # data[48]: ....cross -414-418: x 646f6f72 # data[49]: ....door -418-422: x 646f776e # data[50]: ....down -422-424: x 636b # data[51]: ..ck (bundle prefix) -424-428: x 64726f70 # data[52]: ....drop -428-430: x 6564 # data[53]: ....ed -430-435: x 6669656c64 # data[54]: ....field -435-439: x 66696c6c # data[55]: ....fill -439-441: x 636b # data[56]: ..ck (bundle prefix) -441-445: x 66697265 # data[57]: ....fire -445-451: x 666972696e67 # data[58]: ....firing -451-457: x 67616d6d6f6e # data[59]: ....gammon -457-463: x 67726f756e64 # data[60]: ....ground -463-469: x 636b68616e64 # data[61]: ..ckhand (bundle prefix) -469-469: x # data[62]: ........ -469-471: x 6564 # data[63]: ........ed -471-475: x 65646c79 # data[64]: ........edly -475-481: x 65646e657373 # data[65]: ........edness -481-483: x 636b # data[66]: ..ck (bundle prefix) -483-488: x 706564616c # data[67]: ....pedal -488-492: x 736c6170 # data[68]: ....slap -492-497: x 736c696465 # data[69]: ....slide -497-502: x 7370616365 # data[70]: ....space -502-504: x 636b # data[71]: ..ck (bundle prefix) -504-509: x 7374616765 # data[72]: ....stage -509-513: x 73746f70 # data[73]: ....stop -513-519: x 7374726f6b65 # data[74]: ....stroke -519-524: x 747261636b # data[75]: ....track -524-526: x 636b # data[76]: ..ck (bundle prefix) -526-528: x 7570 # data[77]: ....up -528-532: x 77617264 # data[78]: ....ward -532-537: x 7761726473 # data[79]: ....wards -537-541: x 77617368 # data[80]: ....wash -541-542: x 63 # data[81]: ..c (bundle prefix) -542-548: x 6b776f6f6473 # data[82]: ...kwoods -548-553: x 7465726961 # data[83]: ...teria -# data for column 1 -# rawbytes -# offsets table -553-554: x 00 # encoding: zero -# data -554-554: x # data[0]: -554-554: x # data[1]: -554-554: x # data[2]: -554-554: x # data[3]: -554-554: x # data[4]: -554-554: x # data[5]: -554-554: x # data[6]: -554-554: x # data[7]: -554-554: x # data[8]: -554-554: x # data[9]: -554-554: x # data[10]: -554-554: x # data[11]: -554-554: x # data[12]: -554-554: x # data[13]: -554-554: x # data[14]: -554-554: x # data[15]: -554-554: x # data[16]: -554-554: x # data[17]: -554-554: x # data[18]: -554-554: x # data[19]: -554-554: x # data[20]: -554-554: x # data[21]: -554-554: x # data[22]: -554-554: x # data[23]: -554-554: x # data[24]: -554-554: x # data[25]: -554-554: x # data[26]: -554-554: x # data[27]: -554-554: x # data[28]: -554-554: x # data[29]: -554-554: x # data[30]: -554-554: x # data[31]: -554-554: x # data[32]: -554-554: x # data[33]: -554-554: x # data[34]: -554-554: x # data[35]: -554-554: x # data[36]: -554-554: x # data[37]: -554-554: x # data[38]: -554-554: x # data[39]: -554-554: x # data[40]: -554-554: x # data[41]: -554-554: x # data[42]: -554-554: x # data[43]: -554-554: x # data[44]: -554-554: x # data[45]: -554-554: x # data[46]: -554-554: x # data[47]: -554-554: x # data[48]: -554-554: x # data[49]: -554-554: x # data[50]: -554-554: x # data[51]: -554-554: x # data[52]: -554-554: x # data[53]: -554-554: x # data[54]: -554-554: x # data[55]: -554-554: x # data[56]: -554-554: x # data[57]: -554-554: x # data[58]: -554-554: x # data[59]: -554-554: x # data[60]: -554-554: x # data[61]: -554-554: x # data[62]: -554-554: x # data[63]: -554-554: x # data[64]: -554-554: x # data[65]: -# data for column 2 -554-555: x 80 # encoding: const -555-563: x 0101000000000000 # 64-bit constant: 257 -# data for column 3 -563-564: x 00 # bitmap encoding -564-568: x 00000000 # padding to align to 64-bit boundary -568-576: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 0 -576-584: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 1 -584-592: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -592-593: x 01 # encoding: 1b -593-594: x 00 # data[0] = 0 [660 overall] -594-595: x 01 # data[1] = 1 [661 overall] -595-596: x 02 # data[2] = 2 [662 overall] -596-597: x 03 # data[3] = 3 [663 overall] -597-598: x 04 # data[4] = 4 [664 overall] -598-599: x 05 # data[5] = 5 [665 overall] -599-600: x 06 # data[6] = 6 [666 overall] -600-601: x 07 # data[7] = 7 [667 overall] -601-602: x 08 # data[8] = 8 [668 overall] -602-603: x 09 # data[9] = 9 [669 overall] -603-604: x 0a # data[10] = 10 [670 overall] -604-605: x 0b # data[11] = 11 [671 overall] -605-606: x 0c # data[12] = 12 [672 overall] -606-607: x 0d # data[13] = 13 [673 overall] -607-608: x 0e # data[14] = 14 [674 overall] -608-609: x 0f # data[15] = 15 [675 overall] -609-610: x 10 # data[16] = 16 [676 overall] -610-611: x 11 # data[17] = 17 [677 overall] -611-612: x 12 # data[18] = 18 [678 overall] -612-613: x 13 # data[19] = 19 [679 overall] -613-614: x 14 # data[20] = 20 [680 overall] -614-615: x 15 # data[21] = 21 [681 overall] -615-616: x 16 # data[22] = 22 [682 overall] -616-617: x 17 # data[23] = 23 [683 overall] -617-618: x 18 # data[24] = 24 [684 overall] -618-619: x 19 # data[25] = 25 [685 overall] -619-620: x 1a # data[26] = 26 [686 overall] -620-621: x 1b # data[27] = 27 [687 overall] -621-622: x 1c # data[28] = 28 [688 overall] -622-623: x 1d # data[29] = 29 [689 overall] -623-624: x 1e # data[30] = 30 [690 overall] -624-625: x 1f # data[31] = 31 [691 overall] -625-626: x 20 # data[32] = 32 [692 overall] -626-627: x 21 # data[33] = 33 [693 overall] -627-628: x 22 # data[34] = 34 [694 overall] -628-629: x 23 # data[35] = 35 [695 overall] -629-630: x 24 # data[36] = 36 [696 overall] -630-631: x 25 # data[37] = 37 [697 overall] -631-632: x 26 # data[38] = 38 [698 overall] -632-633: x 27 # data[39] = 39 [699 overall] -633-634: x 28 # data[40] = 40 [700 overall] -634-635: x 29 # data[41] = 41 [701 overall] -635-636: x 2a # data[42] = 42 [702 overall] -636-637: x 2b # data[43] = 43 [703 overall] -637-638: x 2c # data[44] = 44 [704 overall] -638-639: x 2d # data[45] = 45 [705 overall] -639-640: x 2e # data[46] = 46 [706 overall] -640-641: x 2f # data[47] = 47 [707 overall] -641-642: x 30 # data[48] = 48 [708 overall] -642-643: x 31 # data[49] = 49 [709 overall] -643-644: x 32 # data[50] = 50 [710 overall] -644-645: x 33 # data[51] = 51 [711 overall] -645-646: x 34 # data[52] = 52 [712 overall] -646-647: x 35 # data[53] = 53 [713 overall] -647-648: x 36 # data[54] = 54 [714 overall] -648-649: x 37 # data[55] = 55 [715 overall] -649-650: x 38 # data[56] = 56 [716 overall] -650-651: x 39 # data[57] = 57 [717 overall] -651-652: x 3a # data[58] = 58 [718 overall] -652-653: x 3b # data[59] = 59 [719 overall] -653-654: x 3c # data[60] = 60 [720 overall] -654-655: x 3d # data[61] = 61 [721 overall] -655-656: x 3e # data[62] = 62 [722 overall] -656-657: x 3f # data[63] = 63 [723 overall] -657-658: x 40 # data[64] = 64 [724 overall] -658-659: x 41 # data[65] = 65 [725 overall] -659-660: x 42 # data[66] = 66 [726 overall] -# data -660-661: x 76 # data[0]: v -661-662: x 76 # data[1]: v -662-663: x 76 # data[2]: v -663-664: x 76 # data[3]: v -664-665: x 76 # data[4]: v -665-666: x 76 # data[5]: v -666-667: x 76 # data[6]: v -667-668: x 76 # data[7]: v -668-669: x 76 # data[8]: v -669-670: x 76 # data[9]: v -670-671: x 76 # data[10]: v -671-672: x 76 # data[11]: v -672-673: x 76 # data[12]: v -673-674: x 76 # data[13]: v -674-675: x 76 # data[14]: v -675-676: x 76 # data[15]: v -676-677: x 76 # data[16]: v -677-678: x 76 # data[17]: v -678-679: x 76 # data[18]: v -679-680: x 76 # data[19]: v -680-681: x 76 # data[20]: v -681-682: x 76 # data[21]: v -682-683: x 76 # data[22]: v -683-684: x 76 # data[23]: v -684-685: x 76 # data[24]: v -685-686: x 76 # data[25]: v -686-687: x 76 # data[26]: v -687-688: x 76 # data[27]: v -688-689: x 76 # data[28]: v -689-690: x 76 # data[29]: v -690-691: x 76 # data[30]: v -691-692: x 76 # data[31]: v -692-693: x 76 # data[32]: v -693-694: x 76 # data[33]: v -694-695: x 76 # data[34]: v -695-696: x 76 # data[35]: v -696-697: x 76 # data[36]: v -697-698: x 76 # data[37]: v -698-699: x 76 # data[38]: v -699-700: x 76 # data[39]: v -700-701: x 76 # data[40]: v -701-702: x 76 # data[41]: v -702-703: x 76 # data[42]: v -703-704: x 76 # data[43]: v -704-705: x 76 # data[44]: v -705-706: x 76 # data[45]: v -706-707: x 76 # data[46]: v -707-708: x 76 # data[47]: v -708-709: x 76 # data[48]: v -709-710: x 76 # data[49]: v -710-711: x 76 # data[50]: v -711-712: x 76 # data[51]: v -712-713: x 76 # data[52]: v -713-714: x 76 # data[53]: v -714-715: x 76 # data[54]: v -715-716: x 76 # data[55]: v -716-717: x 76 # data[56]: v -717-718: x 76 # data[57]: v -718-719: x 76 # data[58]: v -719-720: x 76 # data[59]: v -720-721: x 76 # data[60]: v -721-722: x 76 # data[61]: v -722-723: x 76 # data[62]: v -723-724: x 76 # data[63]: v -724-725: x 76 # data[64]: v -725-726: x 76 # data[65]: v -# data for column 5 -726-727: x 01 # bitmap encoding -# data for column 6 -727-728: x 01 # bitmap encoding -728-729: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 10000000 # maximum key length: 16 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 42000000 # 66 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 29020000 # col 1: page start 553 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 2a020000 # col 2: page start 554 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 33020000 # col 3: page start 563 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 50020000 # col 4: page start 592 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x d6020000 # col 5: page start 726 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x d7020000 # col 6: page start 727 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 02 # bundle size: 4 + │ ├── offsets table + │ │ ├── 047-048: x 02 # encoding: 2b + │ │ ├── 048-050: x 0200 # data[0] = 2 [218 overall] + │ │ ├── 050-052: x 0300 # data[1] = 3 [219 overall] + │ │ ├── 052-054: x 0400 # data[2] = 4 [220 overall] + │ │ ├── 054-056: x 0700 # data[3] = 7 [223 overall] + │ │ ├── 056-058: x 0e00 # data[4] = 14 [230 overall] + │ │ ├── 058-060: x 1200 # data[5] = 18 [234 overall] + │ │ ├── 060-062: x 1500 # data[6] = 21 [237 overall] + │ │ ├── 062-064: x 1a00 # data[7] = 26 [242 overall] + │ │ ├── 064-066: x 1d00 # data[8] = 29 [245 overall] + │ │ ├── 066-068: x 2200 # data[9] = 34 [250 overall] + │ │ ├── 068-070: x 2500 # data[10] = 37 [253 overall] + │ │ ├── 070-072: x 2600 # data[11] = 38 [254 overall] + │ │ ├── 072-074: x 2d00 # data[12] = 45 [261 overall] + │ │ ├── 074-076: x 3000 # data[13] = 48 [264 overall] + │ │ ├── 076-078: x 3100 # data[14] = 49 [265 overall] + │ │ ├── 078-080: x 3400 # data[15] = 52 [268 overall] + │ │ ├── 080-082: x 3500 # data[16] = 53 [269 overall] + │ │ ├── 082-084: x 3b00 # data[17] = 59 [275 overall] + │ │ ├── 084-086: x 4100 # data[18] = 65 [281 overall] + │ │ ├── 086-088: x 4600 # data[19] = 70 [286 overall] + │ │ ├── 088-090: x 4700 # data[20] = 71 [287 overall] + │ │ ├── 090-092: x 4900 # data[21] = 73 [289 overall] + │ │ ├── 092-094: x 4c00 # data[22] = 76 [292 overall] + │ │ ├── 094-096: x 5000 # data[23] = 80 [296 overall] + │ │ ├── 096-098: x 5500 # data[24] = 85 [301 overall] + │ │ ├── 098-100: x 5800 # data[25] = 88 [304 overall] + │ │ ├── 100-102: x 5a00 # data[26] = 90 [306 overall] + │ │ ├── 102-104: x 5f00 # data[27] = 95 [311 overall] + │ │ ├── 104-106: x 6600 # data[28] = 102 [318 overall] + │ │ ├── 106-108: x 6900 # data[29] = 105 [321 overall] + │ │ ├── 108-110: x 6d00 # data[30] = 109 [325 overall] + │ │ ├── 110-112: x 7400 # data[31] = 116 [332 overall] + │ │ ├── 112-114: x 7400 # data[32] = 116 [332 overall] + │ │ ├── 114-116: x 7700 # data[33] = 119 [335 overall] + │ │ ├── 116-118: x 7d00 # data[34] = 125 [341 overall] + │ │ ├── 118-120: x 8200 # data[35] = 130 [346 overall] + │ │ ├── 120-122: x 8300 # data[36] = 131 [347 overall] + │ │ ├── 122-124: x 8c00 # data[37] = 140 [356 overall] + │ │ ├── 124-126: x 9900 # data[38] = 153 [369 overall] + │ │ ├── 126-128: x a200 # data[39] = 162 [378 overall] + │ │ ├── 128-130: x a300 # data[40] = 163 [379 overall] + │ │ ├── 130-132: x a500 # data[41] = 165 [381 overall] + │ │ ├── 132-134: x a900 # data[42] = 169 [385 overall] + │ │ ├── 134-136: x ad00 # data[43] = 173 [389 overall] + │ │ ├── 136-138: x b200 # data[44] = 178 [394 overall] + │ │ ├── 138-140: x ba00 # data[45] = 186 [402 overall] + │ │ ├── 140-142: x bc00 # data[46] = 188 [404 overall] + │ │ ├── 142-144: x c100 # data[47] = 193 [409 overall] + │ │ ├── 144-146: x c600 # data[48] = 198 [414 overall] + │ │ ├── 146-148: x ca00 # data[49] = 202 [418 overall] + │ │ ├── 148-150: x ce00 # data[50] = 206 [422 overall] + │ │ ├── 150-152: x d000 # data[51] = 208 [424 overall] + │ │ ├── 152-154: x d400 # data[52] = 212 [428 overall] + │ │ ├── 154-156: x d600 # data[53] = 214 [430 overall] + │ │ ├── 156-158: x db00 # data[54] = 219 [435 overall] + │ │ ├── 158-160: x df00 # data[55] = 223 [439 overall] + │ │ ├── 160-162: x e100 # data[56] = 225 [441 overall] + │ │ ├── 162-164: x e500 # data[57] = 229 [445 overall] + │ │ ├── 164-166: x eb00 # data[58] = 235 [451 overall] + │ │ ├── 166-168: x f100 # data[59] = 241 [457 overall] + │ │ ├── 168-170: x f700 # data[60] = 247 [463 overall] + │ │ ├── 170-172: x fd00 # data[61] = 253 [469 overall] + │ │ ├── 172-174: x fd00 # data[62] = 253 [469 overall] + │ │ ├── 174-176: x ff00 # data[63] = 255 [471 overall] + │ │ ├── 176-178: x 0301 # data[64] = 259 [475 overall] + │ │ ├── 178-180: x 0901 # data[65] = 265 [481 overall] + │ │ ├── 180-182: x 0b01 # data[66] = 267 [483 overall] + │ │ ├── 182-184: x 1001 # data[67] = 272 [488 overall] + │ │ ├── 184-186: x 1401 # data[68] = 276 [492 overall] + │ │ ├── 186-188: x 1901 # data[69] = 281 [497 overall] + │ │ ├── 188-190: x 1e01 # data[70] = 286 [502 overall] + │ │ ├── 190-192: x 2001 # data[71] = 288 [504 overall] + │ │ ├── 192-194: x 2501 # data[72] = 293 [509 overall] + │ │ ├── 194-196: x 2901 # data[73] = 297 [513 overall] + │ │ ├── 196-198: x 2f01 # data[74] = 303 [519 overall] + │ │ ├── 198-200: x 3401 # data[75] = 308 [524 overall] + │ │ ├── 200-202: x 3601 # data[76] = 310 [526 overall] + │ │ ├── 202-204: x 3801 # data[77] = 312 [528 overall] + │ │ ├── 204-206: x 3c01 # data[78] = 316 [532 overall] + │ │ ├── 206-208: x 4101 # data[79] = 321 [537 overall] + │ │ ├── 208-210: x 4501 # data[80] = 325 [541 overall] + │ │ ├── 210-212: x 4601 # data[81] = 326 [542 overall] + │ │ ├── 212-214: x 4c01 # data[82] = 332 [548 overall] + │ │ └── 214-216: x 5101 # data[83] = 337 [553 overall] + │ └── data + │ ├── 216-218: x 6261 # data[00]: ba (block prefix) + │ ├── 218-219: x 62 # data[01]: ..b (bundle prefix) + │ ├── 219-220: x 61 # data[02]: ...a + │ ├── 220-223: x 626c65 # data[03]: ...ble + │ ├── 223-230: x 626c656d656e74 # data[04]: ...blement + │ ├── 230-234: x 626c6572 # data[05]: ...bler + │ ├── 234-237: x 62626c # data[06]: ..bbl (bundle prefix) + │ ├── 237-242: x 65736f6d65 # data[07]: .....esome + │ ├── 242-245: x 696e67 # data[08]: .....ing + │ ├── 245-250: x 696e676c79 # data[09]: .....ingly + │ ├── 250-253: x 697368 # data[10]: .....ish + │ ├── 253-254: x 62 # data[11]: ..b (bundle prefix) + │ ├── 254-261: x 626c6973686c79 # data[12]: ...blishly + │ ├── 261-264: x 626c79 # data[13]: ...bly + │ ├── 264-265: x 65 # data[14]: ...e + │ ├── 265-268: x 6f6f6e # data[15]: ...oon + │ ├── 268-269: x 62 # data[16]: ..b (bundle prefix) + │ ├── 269-275: x 6f6f6e657279 # data[17]: ...oonery + │ ├── 275-281: x 6f6f6e697368 # data[18]: ...oonish + │ ├── 281-286: x 7573686b61 # data[19]: ...ushka + │ ├── 286-287: x 79 # data[20]: ...y + │ ├── 287-289: x 6279 # data[21]: ..by (bundle prefix) + │ ├── 289-292: x 646f6d # data[22]: ....dom + │ ├── 292-296: x 686f6f64 # data[23]: ....hood + │ ├── 296-301: x 686f757365 # data[24]: ....house + │ ├── 301-304: x 697368 # data[25]: ....ish + │ ├── 304-306: x 6279 # data[26]: ..by (bundle prefix) + │ ├── 306-311: x 6973686c79 # data[27]: ....ishly + │ ├── 311-318: x 6973686e657373 # data[28]: ....ishness + │ ├── 318-321: x 69736d # data[29]: ....ism + │ ├── 321-325: x 6c696b65 # data[30]: ....like + │ ├── 325-332: x 636368616e616c # data[31]: ..cchanal (bundle prefix) + │ ├── 332-332: x # data[32]: ......... + │ ├── 332-335: x 69616e # data[33]: .........ian + │ ├── 335-341: x 69616e69736d # data[34]: .........ianism + │ ├── 341-346: x 69616e6c79 # data[35]: .........ianly + │ ├── 346-347: x 63 # data[36]: ..c (bundle prefix) + │ ├── 347-356: x 6368616e616c69736d # data[37]: ...chanalism + │ ├── 356-366: x 6368616e616c697a6174 # data[38]: ...chanalization + │ ├── 366-369: x 696f6e # (continued...) + │ ├── 369-378: x 6368616e616c697a65 # data[39]: ...chanalize + │ ├── 378-379: x 6b # data[40]: ...k + │ ├── 379-381: x 636b # data[41]: ..ck (bundle prefix) + │ ├── 381-385: x 61636865 # data[42]: ....ache + │ ├── 385-389: x 626f6e65 # data[43]: ....bone + │ ├── 389-394: x 626f6e6564 # data[44]: ....boned + │ ├── 394-402: x 627265616b696e67 # data[45]: ....breaking + │ ├── 402-404: x 636b # data[46]: ..ck (bundle prefix) + │ ├── 404-409: x 636f757274 # data[47]: ....court + │ ├── 409-414: x 63726f7373 # data[48]: ....cross + │ ├── 414-418: x 646f6f72 # data[49]: ....door + │ ├── 418-422: x 646f776e # data[50]: ....down + │ ├── 422-424: x 636b # data[51]: ..ck (bundle prefix) + │ ├── 424-428: x 64726f70 # data[52]: ....drop + │ ├── 428-430: x 6564 # data[53]: ....ed + │ ├── 430-435: x 6669656c64 # data[54]: ....field + │ ├── 435-439: x 66696c6c # data[55]: ....fill + │ ├── 439-441: x 636b # data[56]: ..ck (bundle prefix) + │ ├── 441-445: x 66697265 # data[57]: ....fire + │ ├── 445-451: x 666972696e67 # data[58]: ....firing + │ ├── 451-457: x 67616d6d6f6e # data[59]: ....gammon + │ ├── 457-463: x 67726f756e64 # data[60]: ....ground + │ ├── 463-469: x 636b68616e64 # data[61]: ..ckhand (bundle prefix) + │ ├── 469-469: x # data[62]: ........ + │ ├── 469-471: x 6564 # data[63]: ........ed + │ ├── 471-475: x 65646c79 # data[64]: ........edly + │ ├── 475-481: x 65646e657373 # data[65]: ........edness + │ ├── 481-483: x 636b # data[66]: ..ck (bundle prefix) + │ ├── 483-488: x 706564616c # data[67]: ....pedal + │ ├── 488-492: x 736c6170 # data[68]: ....slap + │ ├── 492-497: x 736c696465 # data[69]: ....slide + │ ├── 497-502: x 7370616365 # data[70]: ....space + │ ├── 502-504: x 636b # data[71]: ..ck (bundle prefix) + │ ├── 504-509: x 7374616765 # data[72]: ....stage + │ ├── 509-513: x 73746f70 # data[73]: ....stop + │ ├── 513-519: x 7374726f6b65 # data[74]: ....stroke + │ ├── 519-524: x 747261636b # data[75]: ....track + │ ├── 524-526: x 636b # data[76]: ..ck (bundle prefix) + │ ├── 526-528: x 7570 # data[77]: ....up + │ ├── 528-532: x 77617264 # data[78]: ....ward + │ ├── 532-537: x 7761726473 # data[79]: ....wards + │ ├── 537-541: x 77617368 # data[80]: ....wash + │ ├── 541-542: x 63 # data[81]: ..c (bundle prefix) + │ ├── 542-548: x 6b776f6f6473 # data[82]: ...kwoods + │ └── 548-553: x 7465726961 # data[83]: ...teria + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ └── 553-554: x 00 # encoding: zero + │ └── data + │ ├── 554-554: x # data[0]: + │ ├── 554-554: x # data[1]: + │ ├── 554-554: x # data[2]: + │ ├── 554-554: x # data[3]: + │ ├── 554-554: x # data[4]: + │ ├── 554-554: x # data[5]: + │ ├── 554-554: x # data[6]: + │ ├── 554-554: x # data[7]: + │ ├── 554-554: x # data[8]: + │ ├── 554-554: x # data[9]: + │ ├── 554-554: x # data[10]: + │ ├── 554-554: x # data[11]: + │ ├── 554-554: x # data[12]: + │ ├── 554-554: x # data[13]: + │ ├── 554-554: x # data[14]: + │ ├── 554-554: x # data[15]: + │ ├── 554-554: x # data[16]: + │ ├── 554-554: x # data[17]: + │ ├── 554-554: x # data[18]: + │ ├── 554-554: x # data[19]: + │ ├── 554-554: x # data[20]: + │ ├── 554-554: x # data[21]: + │ ├── 554-554: x # data[22]: + │ ├── 554-554: x # data[23]: + │ ├── 554-554: x # data[24]: + │ ├── 554-554: x # data[25]: + │ ├── 554-554: x # data[26]: + │ ├── 554-554: x # data[27]: + │ ├── 554-554: x # data[28]: + │ ├── 554-554: x # data[29]: + │ ├── 554-554: x # data[30]: + │ ├── 554-554: x # data[31]: + │ ├── 554-554: x # data[32]: + │ ├── 554-554: x # data[33]: + │ ├── 554-554: x # data[34]: + │ ├── 554-554: x # data[35]: + │ ├── 554-554: x # data[36]: + │ ├── 554-554: x # data[37]: + │ ├── 554-554: x # data[38]: + │ ├── 554-554: x # data[39]: + │ ├── 554-554: x # data[40]: + │ ├── 554-554: x # data[41]: + │ ├── 554-554: x # data[42]: + │ ├── 554-554: x # data[43]: + │ ├── 554-554: x # data[44]: + │ ├── 554-554: x # data[45]: + │ ├── 554-554: x # data[46]: + │ ├── 554-554: x # data[47]: + │ ├── 554-554: x # data[48]: + │ ├── 554-554: x # data[49]: + │ ├── 554-554: x # data[50]: + │ ├── 554-554: x # data[51]: + │ ├── 554-554: x # data[52]: + │ ├── 554-554: x # data[53]: + │ ├── 554-554: x # data[54]: + │ ├── 554-554: x # data[55]: + │ ├── 554-554: x # data[56]: + │ ├── 554-554: x # data[57]: + │ ├── 554-554: x # data[58]: + │ ├── 554-554: x # data[59]: + │ ├── 554-554: x # data[60]: + │ ├── 554-554: x # data[61]: + │ ├── 554-554: x # data[62]: + │ ├── 554-554: x # data[63]: + │ ├── 554-554: x # data[64]: + │ └── 554-554: x # data[65]: + ├── data for column 2 (uint) + │ ├── 554-555: x 80 # encoding: const + │ └── 555-563: x 0101000000000000 # 64-bit constant: 257 + ├── data for column 3 (bool) + │ ├── 563-564: x 00 # default bitmap encoding + │ ├── 564-568: x 00000000 # padding to align to 64-bit boundary + │ ├── 568-576: b 1111111111111111111111111111111111111111111111111111111111111111 # bitmap word 0 + │ ├── 576-584: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 1 + │ └── 584-592: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 592-593: x 01 # encoding: 1b + │ │ ├── 593-594: x 00 # data[0] = 0 [660 overall] + │ │ ├── 594-595: x 01 # data[1] = 1 [661 overall] + │ │ ├── 595-596: x 02 # data[2] = 2 [662 overall] + │ │ ├── 596-597: x 03 # data[3] = 3 [663 overall] + │ │ ├── 597-598: x 04 # data[4] = 4 [664 overall] + │ │ ├── 598-599: x 05 # data[5] = 5 [665 overall] + │ │ ├── 599-600: x 06 # data[6] = 6 [666 overall] + │ │ ├── 600-601: x 07 # data[7] = 7 [667 overall] + │ │ ├── 601-602: x 08 # data[8] = 8 [668 overall] + │ │ ├── 602-603: x 09 # data[9] = 9 [669 overall] + │ │ ├── 603-604: x 0a # data[10] = 10 [670 overall] + │ │ ├── 604-605: x 0b # data[11] = 11 [671 overall] + │ │ ├── 605-606: x 0c # data[12] = 12 [672 overall] + │ │ ├── 606-607: x 0d # data[13] = 13 [673 overall] + │ │ ├── 607-608: x 0e # data[14] = 14 [674 overall] + │ │ ├── 608-609: x 0f # data[15] = 15 [675 overall] + │ │ ├── 609-610: x 10 # data[16] = 16 [676 overall] + │ │ ├── 610-611: x 11 # data[17] = 17 [677 overall] + │ │ ├── 611-612: x 12 # data[18] = 18 [678 overall] + │ │ ├── 612-613: x 13 # data[19] = 19 [679 overall] + │ │ ├── 613-614: x 14 # data[20] = 20 [680 overall] + │ │ ├── 614-615: x 15 # data[21] = 21 [681 overall] + │ │ ├── 615-616: x 16 # data[22] = 22 [682 overall] + │ │ ├── 616-617: x 17 # data[23] = 23 [683 overall] + │ │ ├── 617-618: x 18 # data[24] = 24 [684 overall] + │ │ ├── 618-619: x 19 # data[25] = 25 [685 overall] + │ │ ├── 619-620: x 1a # data[26] = 26 [686 overall] + │ │ ├── 620-621: x 1b # data[27] = 27 [687 overall] + │ │ ├── 621-622: x 1c # data[28] = 28 [688 overall] + │ │ ├── 622-623: x 1d # data[29] = 29 [689 overall] + │ │ ├── 623-624: x 1e # data[30] = 30 [690 overall] + │ │ ├── 624-625: x 1f # data[31] = 31 [691 overall] + │ │ ├── 625-626: x 20 # data[32] = 32 [692 overall] + │ │ ├── 626-627: x 21 # data[33] = 33 [693 overall] + │ │ ├── 627-628: x 22 # data[34] = 34 [694 overall] + │ │ ├── 628-629: x 23 # data[35] = 35 [695 overall] + │ │ ├── 629-630: x 24 # data[36] = 36 [696 overall] + │ │ ├── 630-631: x 25 # data[37] = 37 [697 overall] + │ │ ├── 631-632: x 26 # data[38] = 38 [698 overall] + │ │ ├── 632-633: x 27 # data[39] = 39 [699 overall] + │ │ ├── 633-634: x 28 # data[40] = 40 [700 overall] + │ │ ├── 634-635: x 29 # data[41] = 41 [701 overall] + │ │ ├── 635-636: x 2a # data[42] = 42 [702 overall] + │ │ ├── 636-637: x 2b # data[43] = 43 [703 overall] + │ │ ├── 637-638: x 2c # data[44] = 44 [704 overall] + │ │ ├── 638-639: x 2d # data[45] = 45 [705 overall] + │ │ ├── 639-640: x 2e # data[46] = 46 [706 overall] + │ │ ├── 640-641: x 2f # data[47] = 47 [707 overall] + │ │ ├── 641-642: x 30 # data[48] = 48 [708 overall] + │ │ ├── 642-643: x 31 # data[49] = 49 [709 overall] + │ │ ├── 643-644: x 32 # data[50] = 50 [710 overall] + │ │ ├── 644-645: x 33 # data[51] = 51 [711 overall] + │ │ ├── 645-646: x 34 # data[52] = 52 [712 overall] + │ │ ├── 646-647: x 35 # data[53] = 53 [713 overall] + │ │ ├── 647-648: x 36 # data[54] = 54 [714 overall] + │ │ ├── 648-649: x 37 # data[55] = 55 [715 overall] + │ │ ├── 649-650: x 38 # data[56] = 56 [716 overall] + │ │ ├── 650-651: x 39 # data[57] = 57 [717 overall] + │ │ ├── 651-652: x 3a # data[58] = 58 [718 overall] + │ │ ├── 652-653: x 3b # data[59] = 59 [719 overall] + │ │ ├── 653-654: x 3c # data[60] = 60 [720 overall] + │ │ ├── 654-655: x 3d # data[61] = 61 [721 overall] + │ │ ├── 655-656: x 3e # data[62] = 62 [722 overall] + │ │ ├── 656-657: x 3f # data[63] = 63 [723 overall] + │ │ ├── 657-658: x 40 # data[64] = 64 [724 overall] + │ │ ├── 658-659: x 41 # data[65] = 65 [725 overall] + │ │ └── 659-660: x 42 # data[66] = 66 [726 overall] + │ └── data + │ ├── 660-661: x 76 # data[0]: v + │ ├── 661-662: x 76 # data[1]: v + │ ├── 662-663: x 76 # data[2]: v + │ ├── 663-664: x 76 # data[3]: v + │ ├── 664-665: x 76 # data[4]: v + │ ├── 665-666: x 76 # data[5]: v + │ ├── 666-667: x 76 # data[6]: v + │ ├── 667-668: x 76 # data[7]: v + │ ├── 668-669: x 76 # data[8]: v + │ ├── 669-670: x 76 # data[9]: v + │ ├── 670-671: x 76 # data[10]: v + │ ├── 671-672: x 76 # data[11]: v + │ ├── 672-673: x 76 # data[12]: v + │ ├── 673-674: x 76 # data[13]: v + │ ├── 674-675: x 76 # data[14]: v + │ ├── 675-676: x 76 # data[15]: v + │ ├── 676-677: x 76 # data[16]: v + │ ├── 677-678: x 76 # data[17]: v + │ ├── 678-679: x 76 # data[18]: v + │ ├── 679-680: x 76 # data[19]: v + │ ├── 680-681: x 76 # data[20]: v + │ ├── 681-682: x 76 # data[21]: v + │ ├── 682-683: x 76 # data[22]: v + │ ├── 683-684: x 76 # data[23]: v + │ ├── 684-685: x 76 # data[24]: v + │ ├── 685-686: x 76 # data[25]: v + │ ├── 686-687: x 76 # data[26]: v + │ ├── 687-688: x 76 # data[27]: v + │ ├── 688-689: x 76 # data[28]: v + │ ├── 689-690: x 76 # data[29]: v + │ ├── 690-691: x 76 # data[30]: v + │ ├── 691-692: x 76 # data[31]: v + │ ├── 692-693: x 76 # data[32]: v + │ ├── 693-694: x 76 # data[33]: v + │ ├── 694-695: x 76 # data[34]: v + │ ├── 695-696: x 76 # data[35]: v + │ ├── 696-697: x 76 # data[36]: v + │ ├── 697-698: x 76 # data[37]: v + │ ├── 698-699: x 76 # data[38]: v + │ ├── 699-700: x 76 # data[39]: v + │ ├── 700-701: x 76 # data[40]: v + │ ├── 701-702: x 76 # data[41]: v + │ ├── 702-703: x 76 # data[42]: v + │ ├── 703-704: x 76 # data[43]: v + │ ├── 704-705: x 76 # data[44]: v + │ ├── 705-706: x 76 # data[45]: v + │ ├── 706-707: x 76 # data[46]: v + │ ├── 707-708: x 76 # data[47]: v + │ ├── 708-709: x 76 # data[48]: v + │ ├── 709-710: x 76 # data[49]: v + │ ├── 710-711: x 76 # data[50]: v + │ ├── 711-712: x 76 # data[51]: v + │ ├── 712-713: x 76 # data[52]: v + │ ├── 713-714: x 76 # data[53]: v + │ ├── 714-715: x 76 # data[54]: v + │ ├── 715-716: x 76 # data[55]: v + │ ├── 716-717: x 76 # data[56]: v + │ ├── 717-718: x 76 # data[57]: v + │ ├── 718-719: x 76 # data[58]: v + │ ├── 719-720: x 76 # data[59]: v + │ ├── 720-721: x 76 # data[60]: v + │ ├── 721-722: x 76 # data[61]: v + │ ├── 722-723: x 76 # data[62]: v + │ ├── 723-724: x 76 # data[63]: v + │ ├── 724-725: x 76 # data[64]: v + │ └── 725-726: x 76 # data[65]: v + ├── data for column 5 (bool) + │ └── 726-727: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 727-728: x 01 # zero bitmap encoding + └── 728-729: x 00 # block padding byte iter seek-ge backache diff --git a/sstable/colblk/testdata/data_block/external_value b/sstable/colblk/testdata/data_block/external_value index e9ab8369ce..48793718ac 100644 --- a/sstable/colblk/testdata/data_block/external_value +++ b/sstable/colblk/testdata/data_block/external_value @@ -43,228 +43,225 @@ size=650: finish ---- LastKey: blockprefix_lemon@92#0,DEL -# data block header -000-004: x 16000000 # maximum key length: 22 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 14000000 # 20 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 73000000 # col 1: page start 115 -021-022: b 00000010 # col 2: uint -022-026: x bf000000 # col 2: page start 191 -026-027: b 00000001 # col 3: bool -027-031: x e8000000 # col 3: page start 232 -031-032: b 00000011 # col 4: bytes -032-036: x 00010000 # col 4: page start 256 -036-037: b 00000001 # col 5: bool -037-041: x 77020000 # col 5: page start 631 -041-042: b 00000001 # col 6: bool -042-046: x 88020000 # col 6: page start 648 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 0c # data[0] = 12 [83 overall] -049-050: x 0c # data[1] = 12 [83 overall] -050-051: x 11 # data[2] = 17 [88 overall] -051-052: x 11 # data[3] = 17 [88 overall] -052-053: x 11 # data[4] = 17 [88 overall] -053-054: x 11 # data[5] = 17 [88 overall] -054-055: x 17 # data[6] = 23 [94 overall] -055-056: x 17 # data[7] = 23 [94 overall] -056-057: x 17 # data[8] = 23 [94 overall] -057-058: x 17 # data[9] = 23 [94 overall] -058-059: x 17 # data[10] = 23 [94 overall] -059-060: x 17 # data[11] = 23 [94 overall] -060-061: x 1e # data[12] = 30 [101 overall] -061-062: x 1e # data[13] = 30 [101 overall] -062-063: x 1e # data[14] = 30 [101 overall] -063-064: x 1e # data[15] = 30 [101 overall] -064-065: x 1e # data[16] = 30 [101 overall] -065-066: x 1e # data[17] = 30 [101 overall] -066-067: x 1e # data[18] = 30 [101 overall] -067-068: x 23 # data[19] = 35 [106 overall] -068-069: x 27 # data[20] = 39 [110 overall] -069-070: x 27 # data[21] = 39 [110 overall] -070-071: x 2c # data[22] = 44 [115 overall] -# Data -071-081: x 626c6f636b7072656669 # data[00]: blockprefix_ (block prefix) -081-083: x 785f # (continued...) -083-083: x # data[01]: ............ (bundle prefix) -083-088: x 6170706c65 # data[02]: ............apple -088-088: x # data[03]: ................. -088-088: x # data[04]: ................. -088-088: x # data[05]: ................. -088-094: x 62616e616e61 # data[06]: ............banana -094-094: x # data[07]: .................. -094-094: x # data[08]: .................. -094-094: x # data[09]: .................. -094-094: x # data[10]: .................. -094-094: x # data[11]: .................. -094-101: x 636f636f6e7574 # data[12]: ............coconut -101-101: x # data[13]: ................... -101-101: x # data[14]: ................... -101-101: x # data[15]: ................... -101-101: x # data[16]: ................... -101-101: x # data[17]: ................... -101-101: x # data[18]: ............ (bundle prefix) -101-106: x 6775617661 # data[19]: ............guava -106-110: x 6b697769 # data[20]: ............kiwi -110-110: x # data[21]: ................ -110-115: x 6c656d6f6e # data[22]: ............lemon -# data for column 1 -# rawbytes -# offsets table -115-116: x 01 # encoding: 1b -116-117: x 00 # data[0] = 0 [137 overall] -117-118: x 03 # data[1] = 3 [140 overall] -118-119: x 06 # data[2] = 6 [143 overall] -119-120: x 09 # data[3] = 9 [146 overall] -120-121: x 0c # data[4] = 12 [149 overall] -121-122: x 0f # data[5] = 15 [152 overall] -122-123: x 12 # data[6] = 18 [155 overall] -123-124: x 15 # data[7] = 21 [158 overall] -124-125: x 18 # data[8] = 24 [161 overall] -125-126: x 1a # data[9] = 26 [163 overall] -126-127: x 1c # data[10] = 28 [165 overall] -127-128: x 1c # data[11] = 28 [165 overall] -128-129: x 1f # data[12] = 31 [168 overall] -129-130: x 22 # data[13] = 34 [171 overall] -130-131: x 25 # data[14] = 37 [174 overall] -131-132: x 28 # data[15] = 40 [177 overall] -132-133: x 2a # data[16] = 42 [179 overall] -133-134: x 2d # data[17] = 45 [182 overall] -134-135: x 30 # data[18] = 48 [185 overall] -135-136: x 33 # data[19] = 51 [188 overall] -136-137: x 36 # data[20] = 54 [191 overall] -# data -137-140: x 403938 # data[0]: @98 -140-143: x 403532 # data[1]: @52 -143-146: x 403233 # data[2]: @23 -146-149: x 403131 # data[3]: @11 -149-152: x 403934 # data[4]: @94 -152-155: x 403933 # data[5]: @93 -155-158: x 403933 # data[6]: @93 -158-161: x 403732 # data[7]: @72 -161-163: x 4039 # data[8]: @9 -163-165: x 4031 # data[9]: @1 -165-165: x # data[10]: -165-168: x 403932 # data[11]: @92 -168-171: x 403335 # data[12]: @35 -171-174: x 403232 # data[13]: @22 -174-177: x 403231 # data[14]: @21 -177-179: x 4031 # data[15]: @1 -179-182: x 403939 # data[16]: @99 -182-185: x 403939 # data[17]: @99 -185-188: x 403938 # data[18]: @98 -188-191: x 403932 # data[19]: @92 -# data for column 2 -191-192: x 02 # encoding: 2b -192-194: x 0100 # data[0] = 1 -194-196: x 0100 # data[1] = 1 -196-198: x 0100 # data[2] = 1 -198-200: x 1200 # data[3] = 18 -200-202: x 12f5 # data[4] = 62738 -202-204: x 00f4 # data[5] = 62464 -204-206: x 12dd # data[6] = 56594 -206-208: x 1200 # data[7] = 18 -208-210: x 0100 # data[8] = 1 -210-212: x 0100 # data[9] = 1 -212-214: x 0100 # data[10] = 1 -214-216: x 0100 # data[11] = 1 -216-218: x 0100 # data[12] = 1 -218-220: x 0100 # data[13] = 1 -220-222: x 0100 # data[14] = 1 -222-224: x 0100 # data[15] = 1 -224-226: x 0100 # data[16] = 1 -226-228: x 0100 # data[17] = 1 -228-230: x 0100 # data[18] = 1 -230-232: x 0000 # data[19] = 0 -# data for column 3 -232-233: x 00 # bitmap encoding -233-240: x 00000000000000 # padding to align to 64-bit boundary -240-248: b 0001000100000100000010110000000000000000000000000000000000000000 # bitmap word 0 -248-256: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -256-257: x 02 # encoding: 2b -257-258: x 00 # padding (aligning to 16-bit boundary) -258-260: x 0000 # data[0] = 0 [300 overall] -260-262: x 0700 # data[1] = 7 [307 overall] -262-264: x 1b00 # data[2] = 27 [327 overall] -264-266: x 2f00 # data[3] = 47 [347 overall] -266-268: x 4300 # data[4] = 67 [367 overall] -268-270: x 4b00 # data[5] = 75 [375 overall] -270-272: x 4b00 # data[6] = 75 [375 overall] -272-274: x 6000 # data[7] = 96 [396 overall] -274-276: x 7500 # data[8] = 117 [417 overall] -276-278: x 8900 # data[9] = 137 [437 overall] -278-280: x 9d00 # data[10] = 157 [457 overall] -280-282: x a400 # data[11] = 164 [464 overall] -282-284: x ba00 # data[12] = 186 [486 overall] -284-286: x d000 # data[13] = 208 [508 overall] -286-288: x e600 # data[14] = 230 [530 overall] -288-290: x fc00 # data[15] = 252 [552 overall] -290-292: x 1101 # data[16] = 273 [573 overall] -292-294: x 2501 # data[17] = 293 [593 overall] -294-296: x 3801 # data[18] = 312 [612 overall] -296-298: x 4b01 # data[19] = 331 [631 overall] -298-300: x 4b01 # data[20] = 331 [631 overall] -# data -300-307: x 6170706c653938 # data[0]: apple98 -307-317: x a076616c756548616e64 # data[1]: "\xa0valueHandle-apple52" -317-327: x 6c652d6170706c653532 # (continued...) -327-337: x a076616c756548616e64 # data[2]: "\xa0valueHandle-apple23" -337-347: x 6c652d6170706c653233 # (continued...) -347-357: x a076616c756548616e64 # data[3]: "\xa0valueHandle-apple11" -357-367: x 6c652d6170706c653131 # (continued...) -367-375: x 62616e616e613934 # data[4]: banana94 -375-375: x # data[5]: -375-385: x a076616c756548616e64 # data[6]: "\xa0valueHandle-banana93" -385-395: x 6c652d62616e616e6139 # (continued...) -395-396: x 33 # (continued...) -396-406: x a076616c756548616e64 # data[7]: "\xa0valueHandle-banana72" -406-416: x 6c652d62616e616e6137 # (continued...) -416-417: x 32 # (continued...) -417-427: x a076616c756548616e64 # data[8]: "\xa0valueHandle-banana9" -427-437: x 6c652d62616e616e6139 # (continued...) -437-447: x a076616c756548616e64 # data[9]: "\xa0valueHandle-banana1" -447-457: x 6c652d62616e616e6131 # (continued...) -457-464: x 636f636f6e7574 # data[10]: coconut -464-474: x a076616c756548616e64 # data[11]: "\xa0valueHandle-coconut92" -474-484: x 6c652d636f636f6e7574 # (continued...) -484-486: x 3932 # (continued...) -486-496: x a076616c756548616e64 # data[12]: "\xa0valueHandle-coconut35" -496-506: x 6c652d636f636f6e7574 # (continued...) -506-508: x 3335 # (continued...) -508-518: x a076616c756548616e64 # data[13]: "\xa0valueHandle-coconut22" -518-528: x 6c652d636f636f6e7574 # (continued...) -528-530: x 3232 # (continued...) -530-540: x a076616c756548616e64 # data[14]: "\xa0valueHandle-coconut21" -540-550: x 6c652d636f636f6e7574 # (continued...) -550-552: x 3231 # (continued...) -552-562: x a076616c756548616e64 # data[15]: "\xa0valueHandle-coconut1" -562-572: x 6c652d636f636f6e7574 # (continued...) -572-573: x 31 # (continued...) -573-583: x 8076616c756548616e64 # data[16]: "\x80valueHandle-guava99" -583-593: x 6c652d67756176613939 # (continued...) -593-603: x 8076616c756548616e64 # data[17]: "\x80valueHandle-kiwi99" -603-612: x 6c652d6b6977693939 # (continued...) -612-622: x a076616c756548616e64 # data[18]: "\xa0valueHandle-kiwi98" -622-631: x 6c652d6b6977693938 # (continued...) -631-631: x # data[19]: -# data for column 5 -631-632: x 00 # bitmap encoding -632-640: b 1100111011111011000001110000000000000000000000000000000000000000 # bitmap word 0 -640-648: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 6 -648-649: x 01 # bitmap encoding -649-650: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 16000000 # maximum key length: 22 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 14000000 # 20 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 73000000 # col 1: page start 115 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x bf000000 # col 2: page start 191 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x e8000000 # col 3: page start 232 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 00010000 # col 4: page start 256 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 77020000 # col 5: page start 631 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 88020000 # col 6: page start 648 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 0c # data[0] = 12 [83 overall] + │ │ ├── 049-050: x 0c # data[1] = 12 [83 overall] + │ │ ├── 050-051: x 11 # data[2] = 17 [88 overall] + │ │ ├── 051-052: x 11 # data[3] = 17 [88 overall] + │ │ ├── 052-053: x 11 # data[4] = 17 [88 overall] + │ │ ├── 053-054: x 11 # data[5] = 17 [88 overall] + │ │ ├── 054-055: x 17 # data[6] = 23 [94 overall] + │ │ ├── 055-056: x 17 # data[7] = 23 [94 overall] + │ │ ├── 056-057: x 17 # data[8] = 23 [94 overall] + │ │ ├── 057-058: x 17 # data[9] = 23 [94 overall] + │ │ ├── 058-059: x 17 # data[10] = 23 [94 overall] + │ │ ├── 059-060: x 17 # data[11] = 23 [94 overall] + │ │ ├── 060-061: x 1e # data[12] = 30 [101 overall] + │ │ ├── 061-062: x 1e # data[13] = 30 [101 overall] + │ │ ├── 062-063: x 1e # data[14] = 30 [101 overall] + │ │ ├── 063-064: x 1e # data[15] = 30 [101 overall] + │ │ ├── 064-065: x 1e # data[16] = 30 [101 overall] + │ │ ├── 065-066: x 1e # data[17] = 30 [101 overall] + │ │ ├── 066-067: x 1e # data[18] = 30 [101 overall] + │ │ ├── 067-068: x 23 # data[19] = 35 [106 overall] + │ │ ├── 068-069: x 27 # data[20] = 39 [110 overall] + │ │ ├── 069-070: x 27 # data[21] = 39 [110 overall] + │ │ └── 070-071: x 2c # data[22] = 44 [115 overall] + │ └── data + │ ├── 071-081: x 626c6f636b7072656669 # data[00]: blockprefix_ (block prefix) + │ ├── 081-083: x 785f # (continued...) + │ ├── 083-083: x # data[01]: ............ (bundle prefix) + │ ├── 083-088: x 6170706c65 # data[02]: ............apple + │ ├── 088-088: x # data[03]: ................. + │ ├── 088-088: x # data[04]: ................. + │ ├── 088-088: x # data[05]: ................. + │ ├── 088-094: x 62616e616e61 # data[06]: ............banana + │ ├── 094-094: x # data[07]: .................. + │ ├── 094-094: x # data[08]: .................. + │ ├── 094-094: x # data[09]: .................. + │ ├── 094-094: x # data[10]: .................. + │ ├── 094-094: x # data[11]: .................. + │ ├── 094-101: x 636f636f6e7574 # data[12]: ............coconut + │ ├── 101-101: x # data[13]: ................... + │ ├── 101-101: x # data[14]: ................... + │ ├── 101-101: x # data[15]: ................... + │ ├── 101-101: x # data[16]: ................... + │ ├── 101-101: x # data[17]: ................... + │ ├── 101-101: x # data[18]: ............ (bundle prefix) + │ ├── 101-106: x 6775617661 # data[19]: ............guava + │ ├── 106-110: x 6b697769 # data[20]: ............kiwi + │ ├── 110-110: x # data[21]: ................ + │ └── 110-115: x 6c656d6f6e # data[22]: ............lemon + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 115-116: x 01 # encoding: 1b + │ │ ├── 116-117: x 00 # data[0] = 0 [137 overall] + │ │ ├── 117-118: x 03 # data[1] = 3 [140 overall] + │ │ ├── 118-119: x 06 # data[2] = 6 [143 overall] + │ │ ├── 119-120: x 09 # data[3] = 9 [146 overall] + │ │ ├── 120-121: x 0c # data[4] = 12 [149 overall] + │ │ ├── 121-122: x 0f # data[5] = 15 [152 overall] + │ │ ├── 122-123: x 12 # data[6] = 18 [155 overall] + │ │ ├── 123-124: x 15 # data[7] = 21 [158 overall] + │ │ ├── 124-125: x 18 # data[8] = 24 [161 overall] + │ │ ├── 125-126: x 1a # data[9] = 26 [163 overall] + │ │ ├── 126-127: x 1c # data[10] = 28 [165 overall] + │ │ ├── 127-128: x 1c # data[11] = 28 [165 overall] + │ │ ├── 128-129: x 1f # data[12] = 31 [168 overall] + │ │ ├── 129-130: x 22 # data[13] = 34 [171 overall] + │ │ ├── 130-131: x 25 # data[14] = 37 [174 overall] + │ │ ├── 131-132: x 28 # data[15] = 40 [177 overall] + │ │ ├── 132-133: x 2a # data[16] = 42 [179 overall] + │ │ ├── 133-134: x 2d # data[17] = 45 [182 overall] + │ │ ├── 134-135: x 30 # data[18] = 48 [185 overall] + │ │ ├── 135-136: x 33 # data[19] = 51 [188 overall] + │ │ └── 136-137: x 36 # data[20] = 54 [191 overall] + │ └── data + │ ├── 137-140: x 403938 # data[0]: @98 + │ ├── 140-143: x 403532 # data[1]: @52 + │ ├── 143-146: x 403233 # data[2]: @23 + │ ├── 146-149: x 403131 # data[3]: @11 + │ ├── 149-152: x 403934 # data[4]: @94 + │ ├── 152-155: x 403933 # data[5]: @93 + │ ├── 155-158: x 403933 # data[6]: @93 + │ ├── 158-161: x 403732 # data[7]: @72 + │ ├── 161-163: x 4039 # data[8]: @9 + │ ├── 163-165: x 4031 # data[9]: @1 + │ ├── 165-165: x # data[10]: + │ ├── 165-168: x 403932 # data[11]: @92 + │ ├── 168-171: x 403335 # data[12]: @35 + │ ├── 171-174: x 403232 # data[13]: @22 + │ ├── 174-177: x 403231 # data[14]: @21 + │ ├── 177-179: x 4031 # data[15]: @1 + │ ├── 179-182: x 403939 # data[16]: @99 + │ ├── 182-185: x 403939 # data[17]: @99 + │ ├── 185-188: x 403938 # data[18]: @98 + │ └── 188-191: x 403932 # data[19]: @92 + ├── data for column 2 (uint) + │ ├── 191-192: x 02 # encoding: 2b + │ ├── 192-194: x 0100 # data[0] = 1 + │ ├── 194-196: x 0100 # data[1] = 1 + │ ├── 196-198: x 0100 # data[2] = 1 + │ ├── 198-200: x 1200 # data[3] = 18 + │ ├── 200-202: x 12f5 # data[4] = 62738 + │ ├── 202-204: x 00f4 # data[5] = 62464 + │ ├── 204-206: x 12dd # data[6] = 56594 + │ ├── 206-208: x 1200 # data[7] = 18 + │ ├── 208-210: x 0100 # data[8] = 1 + │ ├── 210-212: x 0100 # data[9] = 1 + │ ├── 212-214: x 0100 # data[10] = 1 + │ ├── 214-216: x 0100 # data[11] = 1 + │ ├── 216-218: x 0100 # data[12] = 1 + │ ├── 218-220: x 0100 # data[13] = 1 + │ ├── 220-222: x 0100 # data[14] = 1 + │ ├── 222-224: x 0100 # data[15] = 1 + │ ├── 224-226: x 0100 # data[16] = 1 + │ ├── 226-228: x 0100 # data[17] = 1 + │ ├── 228-230: x 0100 # data[18] = 1 + │ └── 230-232: x 0000 # data[19] = 0 + ├── data for column 3 (bool) + │ ├── 232-233: x 00 # default bitmap encoding + │ ├── 233-240: x 00000000000000 # padding to align to 64-bit boundary + │ ├── 240-248: b 0001000100000100000010110000000000000000000000000000000000000000 # bitmap word 0 + │ └── 248-256: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 256-257: x 02 # encoding: 2b + │ │ ├── 257-258: x 00 # padding (aligning to 16-bit boundary) + │ │ ├── 258-260: x 0000 # data[0] = 0 [300 overall] + │ │ ├── 260-262: x 0700 # data[1] = 7 [307 overall] + │ │ ├── 262-264: x 1b00 # data[2] = 27 [327 overall] + │ │ ├── 264-266: x 2f00 # data[3] = 47 [347 overall] + │ │ ├── 266-268: x 4300 # data[4] = 67 [367 overall] + │ │ ├── 268-270: x 4b00 # data[5] = 75 [375 overall] + │ │ ├── 270-272: x 4b00 # data[6] = 75 [375 overall] + │ │ ├── 272-274: x 6000 # data[7] = 96 [396 overall] + │ │ ├── 274-276: x 7500 # data[8] = 117 [417 overall] + │ │ ├── 276-278: x 8900 # data[9] = 137 [437 overall] + │ │ ├── 278-280: x 9d00 # data[10] = 157 [457 overall] + │ │ ├── 280-282: x a400 # data[11] = 164 [464 overall] + │ │ ├── 282-284: x ba00 # data[12] = 186 [486 overall] + │ │ ├── 284-286: x d000 # data[13] = 208 [508 overall] + │ │ ├── 286-288: x e600 # data[14] = 230 [530 overall] + │ │ ├── 288-290: x fc00 # data[15] = 252 [552 overall] + │ │ ├── 290-292: x 1101 # data[16] = 273 [573 overall] + │ │ ├── 292-294: x 2501 # data[17] = 293 [593 overall] + │ │ ├── 294-296: x 3801 # data[18] = 312 [612 overall] + │ │ ├── 296-298: x 4b01 # data[19] = 331 [631 overall] + │ │ └── 298-300: x 4b01 # data[20] = 331 [631 overall] + │ └── data + │ ├── 300-307: x 6170706c653938 # data[0]: apple98 + │ ├── 307-317: x a076616c756548616e64 # data[1]: "\xa0valueHandle-apple52" + │ ├── 317-327: x 6c652d6170706c653532 # (continued...) + │ ├── 327-337: x a076616c756548616e64 # data[2]: "\xa0valueHandle-apple23" + │ ├── 337-347: x 6c652d6170706c653233 # (continued...) + │ ├── 347-357: x a076616c756548616e64 # data[3]: "\xa0valueHandle-apple11" + │ ├── 357-367: x 6c652d6170706c653131 # (continued...) + │ ├── 367-375: x 62616e616e613934 # data[4]: banana94 + │ ├── 375-375: x # data[5]: + │ ├── 375-385: x a076616c756548616e64 # data[6]: "\xa0valueHandle-banana93" + │ ├── 385-395: x 6c652d62616e616e6139 # (continued...) + │ ├── 395-396: x 33 # (continued...) + │ ├── 396-406: x a076616c756548616e64 # data[7]: "\xa0valueHandle-banana72" + │ ├── 406-416: x 6c652d62616e616e6137 # (continued...) + │ ├── 416-417: x 32 # (continued...) + │ ├── 417-427: x a076616c756548616e64 # data[8]: "\xa0valueHandle-banana9" + │ ├── 427-437: x 6c652d62616e616e6139 # (continued...) + │ ├── 437-447: x a076616c756548616e64 # data[9]: "\xa0valueHandle-banana1" + │ ├── 447-457: x 6c652d62616e616e6131 # (continued...) + │ ├── 457-464: x 636f636f6e7574 # data[10]: coconut + │ ├── 464-474: x a076616c756548616e64 # data[11]: "\xa0valueHandle-coconut92" + │ ├── 474-484: x 6c652d636f636f6e7574 # (continued...) + │ ├── 484-486: x 3932 # (continued...) + │ ├── 486-496: x a076616c756548616e64 # data[12]: "\xa0valueHandle-coconut35" + │ ├── 496-506: x 6c652d636f636f6e7574 # (continued...) + │ ├── 506-508: x 3335 # (continued...) + │ ├── 508-518: x a076616c756548616e64 # data[13]: "\xa0valueHandle-coconut22" + │ ├── 518-528: x 6c652d636f636f6e7574 # (continued...) + │ ├── 528-530: x 3232 # (continued...) + │ ├── 530-540: x a076616c756548616e64 # data[14]: "\xa0valueHandle-coconut21" + │ ├── 540-550: x 6c652d636f636f6e7574 # (continued...) + │ ├── 550-552: x 3231 # (continued...) + │ ├── 552-562: x a076616c756548616e64 # data[15]: "\xa0valueHandle-coconut1" + │ ├── 562-572: x 6c652d636f636f6e7574 # (continued...) + │ ├── 572-573: x 31 # (continued...) + │ ├── 573-583: x 8076616c756548616e64 # data[16]: "\x80valueHandle-guava99" + │ ├── 583-593: x 6c652d67756176613939 # (continued...) + │ ├── 593-603: x 8076616c756548616e64 # data[17]: "\x80valueHandle-kiwi99" + │ ├── 603-612: x 6c652d6b6977693939 # (continued...) + │ ├── 612-622: x a076616c756548616e64 # data[18]: "\xa0valueHandle-kiwi98" + │ ├── 622-631: x 6c652d6b6977693938 # (continued...) + │ └── 631-631: x # data[19]: + ├── data for column 5 (bool) + │ ├── 631-632: x 00 # default bitmap encoding + │ ├── 632-640: b 1100111011111011000001110000000000000000000000000000000000000000 # bitmap word 0 + │ └── 640-648: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 6 (bool) + │ └── 648-649: x 01 # zero bitmap encoding + └── 649-650: x 00 # block padding byte # Scan across the block using next. iter diff --git a/sstable/colblk/testdata/data_block/finish_without_final_row b/sstable/colblk/testdata/data_block/finish_without_final_row index 3bc77ecea8..055b966a65 100644 --- a/sstable/colblk/testdata/data_block/finish_without_final_row +++ b/sstable/colblk/testdata/data_block/finish_without_final_row @@ -29,95 +29,92 @@ size=161: finish rows=5 ---- LastKey: c@6#0,SET -# data block header -000-004: x 04000000 # maximum key length: 4 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 05000000 # 5 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 3a000000 # col 1: page start 58 -021-022: b 00000010 # col 2: uint -022-026: x 4c000000 # col 2: page start 76 -026-027: b 00000001 # col 3: bool -027-031: x 52000000 # col 3: page start 82 -031-032: b 00000011 # col 4: bytes -032-036: x 68000000 # col 4: page start 104 -036-037: b 00000001 # col 5: bool -037-041: x 93000000 # col 5: page start 147 -041-042: b 00000001 # col 6: bool -042-046: x 94000000 # col 6: page start 148 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 00 # data[0] = 0 [55 overall] -049-050: x 00 # data[1] = 0 [55 overall] -050-051: x 01 # data[2] = 1 [56 overall] -051-052: x 02 # data[3] = 2 [57 overall] -052-053: x 02 # data[4] = 2 [57 overall] -053-054: x 03 # data[5] = 3 [58 overall] -054-055: x 03 # data[6] = 3 [58 overall] -# Data -055-055: x # data[00]: (block prefix) -055-055: x # data[01]: (bundle prefix) -055-056: x 61 # data[02]: a -056-057: x 62 # data[03]: b -057-057: x # data[04]: . -057-058: x 63 # data[05]: c -058-058: x # data[06]: . -# data for column 1 -# rawbytes -# offsets table -058-059: x 01 # encoding: 1b -059-060: x 00 # data[0] = 0 [65 overall] -060-061: x 03 # data[1] = 3 [68 overall] -061-062: x 05 # data[2] = 5 [70 overall] -062-063: x 07 # data[3] = 7 [72 overall] -063-064: x 09 # data[4] = 9 [74 overall] -064-065: x 0b # data[5] = 11 [76 overall] -# data -065-068: x 403130 # data[0]: @10 -068-070: x 4035 # data[1]: @5 -070-072: x 4032 # data[2]: @2 -072-074: x 4039 # data[3]: @9 -074-076: x 4036 # data[4]: @6 -# data for column 2 -076-077: x 01 # encoding: 1b -077-078: x 01 # data[0] = 1 -078-079: x 01 # data[1] = 1 -079-080: x 12 # data[2] = 18 -080-081: x 12 # data[3] = 18 -081-082: x 01 # data[4] = 1 -# data for column 3 -082-083: x 00 # bitmap encoding -083-088: x 0000000000 # padding to align to 64-bit boundary -088-096: b 0000101100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -104-105: x 01 # encoding: 1b -105-106: x 00 # data[0] = 0 [111 overall] -106-107: x 05 # data[1] = 5 [116 overall] -107-108: x 0b # data[2] = 11 [122 overall] -108-109: x 14 # data[3] = 20 [131 overall] -109-110: x 1b # data[4] = 27 [138 overall] -110-111: x 24 # data[5] = 36 [147 overall] -# data -111-116: x 6170706c65 # data[0]: apple -116-122: x 62616e616e61 # data[1]: banana -122-131: x 626c75656265727279 # data[2]: blueberry -131-138: x 636f636f6e7574 # data[3]: coconut -138-147: x 63616e74656c6f7065 # data[4]: cantelope -# data for column 5 -147-148: x 01 # bitmap encoding -# data for column 6 -148-149: x 01 # bitmap encoding -149-150: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 04000000 # maximum key length: 4 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 05000000 # 5 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 3a000000 # col 1: page start 58 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 4c000000 # col 2: page start 76 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 52000000 # col 3: page start 82 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 68000000 # col 4: page start 104 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 93000000 # col 5: page start 147 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 94000000 # col 6: page start 148 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 00 # data[0] = 0 [55 overall] + │ │ ├── 049-050: x 00 # data[1] = 0 [55 overall] + │ │ ├── 050-051: x 01 # data[2] = 1 [56 overall] + │ │ ├── 051-052: x 02 # data[3] = 2 [57 overall] + │ │ ├── 052-053: x 02 # data[4] = 2 [57 overall] + │ │ ├── 053-054: x 03 # data[5] = 3 [58 overall] + │ │ └── 054-055: x 03 # data[6] = 3 [58 overall] + │ └── data + │ ├── 055-055: x # data[00]: (block prefix) + │ ├── 055-055: x # data[01]: (bundle prefix) + │ ├── 055-056: x 61 # data[02]: a + │ ├── 056-057: x 62 # data[03]: b + │ ├── 057-057: x # data[04]: . + │ ├── 057-058: x 63 # data[05]: c + │ └── 058-058: x # data[06]: . + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 058-059: x 01 # encoding: 1b + │ │ ├── 059-060: x 00 # data[0] = 0 [65 overall] + │ │ ├── 060-061: x 03 # data[1] = 3 [68 overall] + │ │ ├── 061-062: x 05 # data[2] = 5 [70 overall] + │ │ ├── 062-063: x 07 # data[3] = 7 [72 overall] + │ │ ├── 063-064: x 09 # data[4] = 9 [74 overall] + │ │ └── 064-065: x 0b # data[5] = 11 [76 overall] + │ └── data + │ ├── 065-068: x 403130 # data[0]: @10 + │ ├── 068-070: x 4035 # data[1]: @5 + │ ├── 070-072: x 4032 # data[2]: @2 + │ ├── 072-074: x 4039 # data[3]: @9 + │ └── 074-076: x 4036 # data[4]: @6 + ├── data for column 2 (uint) + │ ├── 076-077: x 01 # encoding: 1b + │ ├── 077-078: x 01 # data[0] = 1 + │ ├── 078-079: x 01 # data[1] = 1 + │ ├── 079-080: x 12 # data[2] = 18 + │ ├── 080-081: x 12 # data[3] = 18 + │ └── 081-082: x 01 # data[4] = 1 + ├── data for column 3 (bool) + │ ├── 082-083: x 00 # default bitmap encoding + │ ├── 083-088: x 0000000000 # padding to align to 64-bit boundary + │ ├── 088-096: b 0000101100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ └── 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 104-105: x 01 # encoding: 1b + │ │ ├── 105-106: x 00 # data[0] = 0 [111 overall] + │ │ ├── 106-107: x 05 # data[1] = 5 [116 overall] + │ │ ├── 107-108: x 0b # data[2] = 11 [122 overall] + │ │ ├── 108-109: x 14 # data[3] = 20 [131 overall] + │ │ ├── 109-110: x 1b # data[4] = 27 [138 overall] + │ │ └── 110-111: x 24 # data[5] = 36 [147 overall] + │ └── data + │ ├── 111-116: x 6170706c65 # data[0]: apple + │ ├── 116-122: x 62616e616e61 # data[1]: banana + │ ├── 122-131: x 626c75656265727279 # data[2]: blueberry + │ ├── 131-138: x 636f636f6e7574 # data[3]: coconut + │ └── 138-147: x 63616e74656c6f7065 # data[4]: cantelope + ├── data for column 5 (bool) + │ └── 147-148: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 148-149: x 01 # zero bitmap encoding + └── 149-150: x 00 # block padding byte iter first @@ -220,321 +217,318 @@ size=1493: finish rows=43 ---- LastKey: capitulator@95720#0,SET -# data block header -0000-0004: x 1c000000 # maximum key length: 28 -# columnar block header -0004-0005: x 01 # version 1 -0005-0007: x 0700 # 7 columns -0007-0011: x 2b000000 # 43 rows -0011-0012: b 00000100 # col 0: prefixbytes -0012-0016: x 2e000000 # col 0: page start 46 -0016-0017: b 00000011 # col 1: bytes -0017-0021: x 92010000 # col 1: page start 402 -0021-0022: b 00000010 # col 2: uint -0022-0026: x ee020000 # col 2: page start 750 -0026-0027: b 00000001 # col 3: bool -0027-0031: x f7020000 # col 3: page start 759 -0031-0032: b 00000011 # col 4: bytes -0032-0036: x 08030000 # col 4: page start 776 -0036-0037: b 00000001 # col 5: bool -0037-0041: x 0c040000 # col 5: page start 1036 -0041-0042: b 00000001 # col 6: bool -0042-0046: x 0d040000 # col 6: page start 1037 -# data for column 0 -# PrefixBytes -0046-0047: x 04 # bundleSize: 16 -# Offsets table -0047-0048: x 02 # encoding: 2b -0048-0050: x 0400 # data[0] = 4 [146 overall] -0050-0052: x 0600 # data[1] = 6 [148 overall] -0052-0054: x 0c00 # data[2] = 12 [154 overall] -0054-0056: x 1000 # data[3] = 16 [158 overall] -0056-0058: x 1500 # data[4] = 21 [163 overall] -0058-0060: x 1e00 # data[5] = 30 [172 overall] -0060-0062: x 2300 # data[6] = 35 [177 overall] -0062-0064: x 2b00 # data[7] = 43 [185 overall] -0064-0066: x 3200 # data[8] = 50 [192 overall] -0066-0068: x 3b00 # data[9] = 59 [201 overall] -0068-0070: x 4000 # data[10] = 64 [206 overall] -0070-0072: x 4300 # data[11] = 67 [209 overall] -0072-0074: x 4800 # data[12] = 72 [214 overall] -0074-0076: x 5000 # data[13] = 80 [222 overall] -0076-0078: x 5500 # data[14] = 85 [227 overall] -0078-0080: x 5a00 # data[15] = 90 [232 overall] -0080-0082: x 5f00 # data[16] = 95 [237 overall] -0082-0084: x 6200 # data[17] = 98 [240 overall] -0084-0086: x 6200 # data[18] = 98 [240 overall] -0086-0088: x 6800 # data[19] = 104 [246 overall] -0088-0090: x 6b00 # data[20] = 107 [249 overall] -0090-0092: x 7100 # data[21] = 113 [255 overall] -0092-0094: x 7600 # data[22] = 118 [260 overall] -0094-0096: x 7c00 # data[23] = 124 [266 overall] -0096-0098: x 8200 # data[24] = 130 [272 overall] -0098-0100: x 8a00 # data[25] = 138 [280 overall] -0100-0102: x 9600 # data[26] = 150 [292 overall] -0102-0104: x 9f00 # data[27] = 159 [301 overall] -0104-0106: x a900 # data[28] = 169 [311 overall] -0106-0108: x af00 # data[29] = 175 [317 overall] -0108-0110: x b400 # data[30] = 180 [322 overall] -0110-0112: x bb00 # data[31] = 187 [329 overall] -0112-0114: x be00 # data[32] = 190 [332 overall] -0114-0116: x c200 # data[33] = 194 [336 overall] -0116-0118: x c700 # data[34] = 199 [341 overall] -0118-0120: x c800 # data[35] = 200 [342 overall] -0120-0122: x cc00 # data[36] = 204 [346 overall] -0122-0124: x d100 # data[37] = 209 [351 overall] -0124-0126: x d600 # data[38] = 214 [356 overall] -0126-0128: x da00 # data[39] = 218 [360 overall] -0128-0130: x df00 # data[40] = 223 [365 overall] -0130-0132: x e500 # data[41] = 229 [371 overall] -0132-0134: x ed00 # data[42] = 237 [379 overall] -0134-0136: x f200 # data[43] = 242 [384 overall] -0136-0138: x f700 # data[44] = 247 [389 overall] -0138-0140: x fe00 # data[45] = 254 [396 overall] -0140-0142: x 0401 # data[46] = 260 [402 overall] -# Data -0142-0146: x 63617069 # data[00]: capi (block prefix) -0146-0148: x 6c6c # data[01]: ....ll (bundle prefix) -0148-0154: x 6163656f7573 # data[02]: ......aceous -0154-0158: x 61697265 # data[03]: ......aire -0158-0163: x 616d656e74 # data[04]: ......ament -0163-0172: x 617265637461736961 # data[05]: ......arectasia -0172-0177: x 6172696c79 # data[06]: ......arily -0177-0185: x 6172696d65746572 # data[07]: ......arimeter -0185-0192: x 6172696e657373 # data[08]: ......ariness -0192-0201: x 6172696f6d6f746f72 # data[09]: ......ariomotor -0201-0206: x 6172697479 # data[10]: ......arity -0206-0209: x 617279 # data[11]: ......ary -0209-0214: x 6174696f6e # data[12]: ......ation -0214-0222: x 6963756c74757265 # data[13]: ......iculture -0222-0227: x 69666f726d # data[14]: ......iform -0227-0232: x 697469616c # data[15]: ......itial -0232-0237: x 697469756d # data[16]: ......itium -0237-0240: x 6f7365 # data[17]: ......ose -0240-0240: x # data[18]: .... (bundle prefix) -0240-0246: x 737472617465 # data[19]: ....strate -0246-0249: x 74616c # data[20]: ....tal -0249-0255: x 74616c646f6d # data[21]: ....taldom -0255-0260: x 74616c6564 # data[22]: ....taled -0260-0266: x 74616c69736d # data[23]: ....talism -0266-0272: x 74616c697374 # data[24]: ....talist -0272-0280: x 74616c6973746963 # data[25]: ....talistic -0280-0290: x 74616c6973746963616c # data[26]: ....talistically -0290-0292: x 6c79 # (continued...) -0292-0301: x 74616c697a61626c65 # data[27]: ....talizable -0301-0311: x 74616c697a6174696f6e # data[28]: ....talization -0311-0317: x 74616c697a65 # data[29]: ....talize -0317-0322: x 74616c6c79 # data[30]: ....tally -0322-0329: x 74616c6e657373 # data[31]: ....talness -0329-0332: x 74616e # data[32]: ....tan -0332-0336: x 74617465 # data[33]: ....tate -0336-0341: x 7461746564 # data[34]: ....tated -0341-0342: x 74 # data[35]: ....t (bundle prefix) -0342-0346: x 6174696d # data[36]: .....atim -0346-0351: x 6174696f6e # data[37]: .....ation -0351-0356: x 6174697665 # data[38]: .....ative -0356-0360: x 6174756d # data[39]: .....atum -0360-0365: x 656c6c6172 # data[40]: .....ellar -0365-0371: x 656c6c617465 # data[41]: .....ellate -0371-0379: x 656c6c69666f726d # data[42]: .....elliform -0379-0384: x 656c6c756d # data[43]: .....ellum -0384-0389: x 756c617465 # data[44]: .....ulate -0389-0396: x 756c6174696f6e # data[45]: .....ulation -0396-0402: x 756c61746f72 # data[46]: .....ulator -# data for column 1 -# rawbytes -# offsets table -0402-0403: x 02 # encoding: 2b -0403-0404: x 00 # padding (aligning to 16-bit boundary) -0404-0406: x 0000 # data[0] = 0 [492 overall] -0406-0408: x 0600 # data[1] = 6 [498 overall] -0408-0410: x 0c00 # data[2] = 12 [504 overall] -0410-0412: x 1200 # data[3] = 18 [510 overall] -0412-0414: x 1800 # data[4] = 24 [516 overall] -0414-0416: x 1e00 # data[5] = 30 [522 overall] -0416-0418: x 2400 # data[6] = 36 [528 overall] -0418-0420: x 2a00 # data[7] = 42 [534 overall] -0420-0422: x 3000 # data[8] = 48 [540 overall] -0422-0424: x 3600 # data[9] = 54 [546 overall] -0424-0426: x 3c00 # data[10] = 60 [552 overall] -0426-0428: x 4200 # data[11] = 66 [558 overall] -0428-0430: x 4800 # data[12] = 72 [564 overall] -0430-0432: x 4e00 # data[13] = 78 [570 overall] -0432-0434: x 5400 # data[14] = 84 [576 overall] -0434-0436: x 5a00 # data[15] = 90 [582 overall] -0436-0438: x 6000 # data[16] = 96 [588 overall] -0438-0440: x 6600 # data[17] = 102 [594 overall] -0440-0442: x 6c00 # data[18] = 108 [600 overall] -0442-0444: x 7200 # data[19] = 114 [606 overall] -0444-0446: x 7800 # data[20] = 120 [612 overall] -0446-0448: x 7e00 # data[21] = 126 [618 overall] -0448-0450: x 8400 # data[22] = 132 [624 overall] -0450-0452: x 8a00 # data[23] = 138 [630 overall] -0452-0454: x 9000 # data[24] = 144 [636 overall] -0454-0456: x 9600 # data[25] = 150 [642 overall] -0456-0458: x 9c00 # data[26] = 156 [648 overall] -0458-0460: x a200 # data[27] = 162 [654 overall] -0460-0462: x a800 # data[28] = 168 [660 overall] -0462-0464: x ae00 # data[29] = 174 [666 overall] -0464-0466: x b400 # data[30] = 180 [672 overall] -0466-0468: x ba00 # data[31] = 186 [678 overall] -0468-0470: x c000 # data[32] = 192 [684 overall] -0470-0472: x c600 # data[33] = 198 [690 overall] -0472-0474: x cc00 # data[34] = 204 [696 overall] -0474-0476: x d200 # data[35] = 210 [702 overall] -0476-0478: x d800 # data[36] = 216 [708 overall] -0478-0480: x de00 # data[37] = 222 [714 overall] -0480-0482: x e400 # data[38] = 228 [720 overall] -0482-0484: x ea00 # data[39] = 234 [726 overall] -0484-0486: x f000 # data[40] = 240 [732 overall] -0486-0488: x f600 # data[41] = 246 [738 overall] -0488-0490: x fc00 # data[42] = 252 [744 overall] -0490-0492: x 0201 # data[43] = 258 [750 overall] -# data -0492-0498: x 403935373230 # data[0]: @95720 -0498-0504: x 403935373230 # data[1]: @95720 -0504-0510: x 403935373230 # data[2]: @95720 -0510-0516: x 403935373230 # data[3]: @95720 -0516-0522: x 403935373230 # data[4]: @95720 -0522-0528: x 403935373230 # data[5]: @95720 -0528-0534: x 403935373230 # data[6]: @95720 -0534-0540: x 403935373230 # data[7]: @95720 -0540-0546: x 403935373230 # data[8]: @95720 -0546-0552: x 403935373230 # data[9]: @95720 -0552-0558: x 403935373230 # data[10]: @95720 -0558-0564: x 403935373230 # data[11]: @95720 -0564-0570: x 403935373230 # data[12]: @95720 -0570-0576: x 403935373230 # data[13]: @95720 -0576-0582: x 403935373230 # data[14]: @95720 -0582-0588: x 403935373230 # data[15]: @95720 -0588-0594: x 403935373230 # data[16]: @95720 -0594-0600: x 403935373230 # data[17]: @95720 -0600-0606: x 403935373230 # data[18]: @95720 -0606-0612: x 403935373230 # data[19]: @95720 -0612-0618: x 403935373230 # data[20]: @95720 -0618-0624: x 403935373230 # data[21]: @95720 -0624-0630: x 403935373230 # data[22]: @95720 -0630-0636: x 403935373230 # data[23]: @95720 -0636-0642: x 403935373230 # data[24]: @95720 -0642-0648: x 403935373230 # data[25]: @95720 -0648-0654: x 403935373230 # data[26]: @95720 -0654-0660: x 403935373230 # data[27]: @95720 -0660-0666: x 403935373230 # data[28]: @95720 -0666-0672: x 403935373230 # data[29]: @95720 -0672-0678: x 403935373230 # data[30]: @95720 -0678-0684: x 403935373230 # data[31]: @95720 -0684-0690: x 403935373230 # data[32]: @95720 -0690-0696: x 403935373230 # data[33]: @95720 -0696-0702: x 403935373230 # data[34]: @95720 -0702-0708: x 403935373230 # data[35]: @95720 -0708-0714: x 403935373230 # data[36]: @95720 -0714-0720: x 403935373230 # data[37]: @95720 -0720-0726: x 403935373230 # data[38]: @95720 -0726-0732: x 403935373230 # data[39]: @95720 -0732-0738: x 403935373230 # data[40]: @95720 -0738-0744: x 403935373230 # data[41]: @95720 -0744-0750: x 403935373230 # data[42]: @95720 -# data for column 2 -0750-0751: x 80 # encoding: const -0751-0759: x 0100000000000000 # 64-bit constant: 1 -# data for column 3 -0759-0760: x 00 # bitmap encoding -0760-0768: b 1111111111111111111111111111111111111111000001110000000000000000 # bitmap word 0 -0768-0776: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -0776-0777: x 01 # encoding: 1b -0777-0778: x 00 # data[0] = 0 [821 overall] -0778-0779: x 05 # data[1] = 5 [826 overall] -0779-0780: x 0a # data[2] = 10 [831 overall] -0780-0781: x 0f # data[3] = 15 [836 overall] -0781-0782: x 14 # data[4] = 20 [841 overall] -0782-0783: x 19 # data[5] = 25 [846 overall] -0783-0784: x 1e # data[6] = 30 [851 overall] -0784-0785: x 23 # data[7] = 35 [856 overall] -0785-0786: x 28 # data[8] = 40 [861 overall] -0786-0787: x 2d # data[9] = 45 [866 overall] -0787-0788: x 32 # data[10] = 50 [871 overall] -0788-0789: x 37 # data[11] = 55 [876 overall] -0789-0790: x 3c # data[12] = 60 [881 overall] -0790-0791: x 41 # data[13] = 65 [886 overall] -0791-0792: x 46 # data[14] = 70 [891 overall] -0792-0793: x 4b # data[15] = 75 [896 overall] -0793-0794: x 50 # data[16] = 80 [901 overall] -0794-0795: x 55 # data[17] = 85 [906 overall] -0795-0796: x 5a # data[18] = 90 [911 overall] -0796-0797: x 5f # data[19] = 95 [916 overall] -0797-0798: x 64 # data[20] = 100 [921 overall] -0798-0799: x 69 # data[21] = 105 [926 overall] -0799-0800: x 6e # data[22] = 110 [931 overall] -0800-0801: x 73 # data[23] = 115 [936 overall] -0801-0802: x 78 # data[24] = 120 [941 overall] -0802-0803: x 7d # data[25] = 125 [946 overall] -0803-0804: x 82 # data[26] = 130 [951 overall] -0804-0805: x 87 # data[27] = 135 [956 overall] -0805-0806: x 8c # data[28] = 140 [961 overall] -0806-0807: x 91 # data[29] = 145 [966 overall] -0807-0808: x 96 # data[30] = 150 [971 overall] -0808-0809: x 9b # data[31] = 155 [976 overall] -0809-0810: x a0 # data[32] = 160 [981 overall] -0810-0811: x a5 # data[33] = 165 [986 overall] -0811-0812: x aa # data[34] = 170 [991 overall] -0812-0813: x af # data[35] = 175 [996 overall] -0813-0814: x b4 # data[36] = 180 [1001 overall] -0814-0815: x b9 # data[37] = 185 [1006 overall] -0815-0816: x be # data[38] = 190 [1011 overall] -0816-0817: x c3 # data[39] = 195 [1016 overall] -0817-0818: x c8 # data[40] = 200 [1021 overall] -0818-0819: x cd # data[41] = 205 [1026 overall] -0819-0820: x d2 # data[42] = 210 [1031 overall] -0820-0821: x d7 # data[43] = 215 [1036 overall] -# data -0821-0826: x 76616c7565 # data[0]: value -0826-0831: x 76616c7565 # data[1]: value -0831-0836: x 76616c7565 # data[2]: value -0836-0841: x 76616c7565 # data[3]: value -0841-0846: x 76616c7565 # data[4]: value -0846-0851: x 76616c7565 # data[5]: value -0851-0856: x 76616c7565 # data[6]: value -0856-0861: x 76616c7565 # data[7]: value -0861-0866: x 76616c7565 # data[8]: value -0866-0871: x 76616c7565 # data[9]: value -0871-0876: x 76616c7565 # data[10]: value -0876-0881: x 76616c7565 # data[11]: value -0881-0886: x 76616c7565 # data[12]: value -0886-0891: x 76616c7565 # data[13]: value -0891-0896: x 76616c7565 # data[14]: value -0896-0901: x 76616c7565 # data[15]: value -0901-0906: x 76616c7565 # data[16]: value -0906-0911: x 76616c7565 # data[17]: value -0911-0916: x 76616c7565 # data[18]: value -0916-0921: x 76616c7565 # data[19]: value -0921-0926: x 76616c7565 # data[20]: value -0926-0931: x 76616c7565 # data[21]: value -0931-0936: x 76616c7565 # data[22]: value -0936-0941: x 76616c7565 # data[23]: value -0941-0946: x 76616c7565 # data[24]: value -0946-0951: x 76616c7565 # data[25]: value -0951-0956: x 76616c7565 # data[26]: value -0956-0961: x 76616c7565 # data[27]: value -0961-0966: x 76616c7565 # data[28]: value -0966-0971: x 76616c7565 # data[29]: value -0971-0976: x 76616c7565 # data[30]: value -0976-0981: x 76616c7565 # data[31]: value -0981-0986: x 76616c7565 # data[32]: value -0986-0991: x 76616c7565 # data[33]: value -0991-0996: x 76616c7565 # data[34]: value -0996-1001: x 76616c7565 # data[35]: value -1001-1006: x 76616c7565 # data[36]: value -1006-1011: x 76616c7565 # data[37]: value -1011-1016: x 76616c7565 # data[38]: value -1016-1021: x 76616c7565 # data[39]: value -1021-1026: x 76616c7565 # data[40]: value -1026-1031: x 76616c7565 # data[41]: value -1031-1036: x 76616c7565 # data[42]: value -# data for column 5 -1036-1037: x 01 # bitmap encoding -# data for column 6 -1037-1038: x 01 # bitmap encoding -1038-1039: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 0000-0004: x 1c000000 # maximum key length: 28 + │ ├── 0004-0005: x 01 # version 1 + │ ├── 0005-0007: x 0700 # 7 columns + │ ├── 0007-0011: x 2b000000 # 43 rows + │ ├── 0011-0012: b 00000100 # col 0: prefixbytes + │ ├── 0012-0016: x 2e000000 # col 0: page start 46 + │ ├── 0016-0017: b 00000011 # col 1: bytes + │ ├── 0017-0021: x 92010000 # col 1: page start 402 + │ ├── 0021-0022: b 00000010 # col 2: uint + │ ├── 0022-0026: x ee020000 # col 2: page start 750 + │ ├── 0026-0027: b 00000001 # col 3: bool + │ ├── 0027-0031: x f7020000 # col 3: page start 759 + │ ├── 0031-0032: b 00000011 # col 4: bytes + │ ├── 0032-0036: x 08030000 # col 4: page start 776 + │ ├── 0036-0037: b 00000001 # col 5: bool + │ ├── 0037-0041: x 0c040000 # col 5: page start 1036 + │ ├── 0041-0042: b 00000001 # col 6: bool + │ └── 0042-0046: x 0d040000 # col 6: page start 1037 + ├── data for column 0 (prefixbytes) + │ ├── 0046-0047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 0047-0048: x 02 # encoding: 2b + │ │ ├── 0048-0050: x 0400 # data[0] = 4 [146 overall] + │ │ ├── 0050-0052: x 0600 # data[1] = 6 [148 overall] + │ │ ├── 0052-0054: x 0c00 # data[2] = 12 [154 overall] + │ │ ├── 0054-0056: x 1000 # data[3] = 16 [158 overall] + │ │ ├── 0056-0058: x 1500 # data[4] = 21 [163 overall] + │ │ ├── 0058-0060: x 1e00 # data[5] = 30 [172 overall] + │ │ ├── 0060-0062: x 2300 # data[6] = 35 [177 overall] + │ │ ├── 0062-0064: x 2b00 # data[7] = 43 [185 overall] + │ │ ├── 0064-0066: x 3200 # data[8] = 50 [192 overall] + │ │ ├── 0066-0068: x 3b00 # data[9] = 59 [201 overall] + │ │ ├── 0068-0070: x 4000 # data[10] = 64 [206 overall] + │ │ ├── 0070-0072: x 4300 # data[11] = 67 [209 overall] + │ │ ├── 0072-0074: x 4800 # data[12] = 72 [214 overall] + │ │ ├── 0074-0076: x 5000 # data[13] = 80 [222 overall] + │ │ ├── 0076-0078: x 5500 # data[14] = 85 [227 overall] + │ │ ├── 0078-0080: x 5a00 # data[15] = 90 [232 overall] + │ │ ├── 0080-0082: x 5f00 # data[16] = 95 [237 overall] + │ │ ├── 0082-0084: x 6200 # data[17] = 98 [240 overall] + │ │ ├── 0084-0086: x 6200 # data[18] = 98 [240 overall] + │ │ ├── 0086-0088: x 6800 # data[19] = 104 [246 overall] + │ │ ├── 0088-0090: x 6b00 # data[20] = 107 [249 overall] + │ │ ├── 0090-0092: x 7100 # data[21] = 113 [255 overall] + │ │ ├── 0092-0094: x 7600 # data[22] = 118 [260 overall] + │ │ ├── 0094-0096: x 7c00 # data[23] = 124 [266 overall] + │ │ ├── 0096-0098: x 8200 # data[24] = 130 [272 overall] + │ │ ├── 0098-0100: x 8a00 # data[25] = 138 [280 overall] + │ │ ├── 0100-0102: x 9600 # data[26] = 150 [292 overall] + │ │ ├── 0102-0104: x 9f00 # data[27] = 159 [301 overall] + │ │ ├── 0104-0106: x a900 # data[28] = 169 [311 overall] + │ │ ├── 0106-0108: x af00 # data[29] = 175 [317 overall] + │ │ ├── 0108-0110: x b400 # data[30] = 180 [322 overall] + │ │ ├── 0110-0112: x bb00 # data[31] = 187 [329 overall] + │ │ ├── 0112-0114: x be00 # data[32] = 190 [332 overall] + │ │ ├── 0114-0116: x c200 # data[33] = 194 [336 overall] + │ │ ├── 0116-0118: x c700 # data[34] = 199 [341 overall] + │ │ ├── 0118-0120: x c800 # data[35] = 200 [342 overall] + │ │ ├── 0120-0122: x cc00 # data[36] = 204 [346 overall] + │ │ ├── 0122-0124: x d100 # data[37] = 209 [351 overall] + │ │ ├── 0124-0126: x d600 # data[38] = 214 [356 overall] + │ │ ├── 0126-0128: x da00 # data[39] = 218 [360 overall] + │ │ ├── 0128-0130: x df00 # data[40] = 223 [365 overall] + │ │ ├── 0130-0132: x e500 # data[41] = 229 [371 overall] + │ │ ├── 0132-0134: x ed00 # data[42] = 237 [379 overall] + │ │ ├── 0134-0136: x f200 # data[43] = 242 [384 overall] + │ │ ├── 0136-0138: x f700 # data[44] = 247 [389 overall] + │ │ ├── 0138-0140: x fe00 # data[45] = 254 [396 overall] + │ │ └── 0140-0142: x 0401 # data[46] = 260 [402 overall] + │ └── data + │ ├── 0142-0146: x 63617069 # data[00]: capi (block prefix) + │ ├── 0146-0148: x 6c6c # data[01]: ....ll (bundle prefix) + │ ├── 0148-0154: x 6163656f7573 # data[02]: ......aceous + │ ├── 0154-0158: x 61697265 # data[03]: ......aire + │ ├── 0158-0163: x 616d656e74 # data[04]: ......ament + │ ├── 0163-0172: x 617265637461736961 # data[05]: ......arectasia + │ ├── 0172-0177: x 6172696c79 # data[06]: ......arily + │ ├── 0177-0185: x 6172696d65746572 # data[07]: ......arimeter + │ ├── 0185-0192: x 6172696e657373 # data[08]: ......ariness + │ ├── 0192-0201: x 6172696f6d6f746f72 # data[09]: ......ariomotor + │ ├── 0201-0206: x 6172697479 # data[10]: ......arity + │ ├── 0206-0209: x 617279 # data[11]: ......ary + │ ├── 0209-0214: x 6174696f6e # data[12]: ......ation + │ ├── 0214-0222: x 6963756c74757265 # data[13]: ......iculture + │ ├── 0222-0227: x 69666f726d # data[14]: ......iform + │ ├── 0227-0232: x 697469616c # data[15]: ......itial + │ ├── 0232-0237: x 697469756d # data[16]: ......itium + │ ├── 0237-0240: x 6f7365 # data[17]: ......ose + │ ├── 0240-0240: x # data[18]: .... (bundle prefix) + │ ├── 0240-0246: x 737472617465 # data[19]: ....strate + │ ├── 0246-0249: x 74616c # data[20]: ....tal + │ ├── 0249-0255: x 74616c646f6d # data[21]: ....taldom + │ ├── 0255-0260: x 74616c6564 # data[22]: ....taled + │ ├── 0260-0266: x 74616c69736d # data[23]: ....talism + │ ├── 0266-0272: x 74616c697374 # data[24]: ....talist + │ ├── 0272-0280: x 74616c6973746963 # data[25]: ....talistic + │ ├── 0280-0290: x 74616c6973746963616c # data[26]: ....talistically + │ ├── 0290-0292: x 6c79 # (continued...) + │ ├── 0292-0301: x 74616c697a61626c65 # data[27]: ....talizable + │ ├── 0301-0311: x 74616c697a6174696f6e # data[28]: ....talization + │ ├── 0311-0317: x 74616c697a65 # data[29]: ....talize + │ ├── 0317-0322: x 74616c6c79 # data[30]: ....tally + │ ├── 0322-0329: x 74616c6e657373 # data[31]: ....talness + │ ├── 0329-0332: x 74616e # data[32]: ....tan + │ ├── 0332-0336: x 74617465 # data[33]: ....tate + │ ├── 0336-0341: x 7461746564 # data[34]: ....tated + │ ├── 0341-0342: x 74 # data[35]: ....t (bundle prefix) + │ ├── 0342-0346: x 6174696d # data[36]: .....atim + │ ├── 0346-0351: x 6174696f6e # data[37]: .....ation + │ ├── 0351-0356: x 6174697665 # data[38]: .....ative + │ ├── 0356-0360: x 6174756d # data[39]: .....atum + │ ├── 0360-0365: x 656c6c6172 # data[40]: .....ellar + │ ├── 0365-0371: x 656c6c617465 # data[41]: .....ellate + │ ├── 0371-0379: x 656c6c69666f726d # data[42]: .....elliform + │ ├── 0379-0384: x 656c6c756d # data[43]: .....ellum + │ ├── 0384-0389: x 756c617465 # data[44]: .....ulate + │ ├── 0389-0396: x 756c6174696f6e # data[45]: .....ulation + │ └── 0396-0402: x 756c61746f72 # data[46]: .....ulator + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 0402-0403: x 02 # encoding: 2b + │ │ ├── 0403-0404: x 00 # padding (aligning to 16-bit boundary) + │ │ ├── 0404-0406: x 0000 # data[0] = 0 [492 overall] + │ │ ├── 0406-0408: x 0600 # data[1] = 6 [498 overall] + │ │ ├── 0408-0410: x 0c00 # data[2] = 12 [504 overall] + │ │ ├── 0410-0412: x 1200 # data[3] = 18 [510 overall] + │ │ ├── 0412-0414: x 1800 # data[4] = 24 [516 overall] + │ │ ├── 0414-0416: x 1e00 # data[5] = 30 [522 overall] + │ │ ├── 0416-0418: x 2400 # data[6] = 36 [528 overall] + │ │ ├── 0418-0420: x 2a00 # data[7] = 42 [534 overall] + │ │ ├── 0420-0422: x 3000 # data[8] = 48 [540 overall] + │ │ ├── 0422-0424: x 3600 # data[9] = 54 [546 overall] + │ │ ├── 0424-0426: x 3c00 # data[10] = 60 [552 overall] + │ │ ├── 0426-0428: x 4200 # data[11] = 66 [558 overall] + │ │ ├── 0428-0430: x 4800 # data[12] = 72 [564 overall] + │ │ ├── 0430-0432: x 4e00 # data[13] = 78 [570 overall] + │ │ ├── 0432-0434: x 5400 # data[14] = 84 [576 overall] + │ │ ├── 0434-0436: x 5a00 # data[15] = 90 [582 overall] + │ │ ├── 0436-0438: x 6000 # data[16] = 96 [588 overall] + │ │ ├── 0438-0440: x 6600 # data[17] = 102 [594 overall] + │ │ ├── 0440-0442: x 6c00 # data[18] = 108 [600 overall] + │ │ ├── 0442-0444: x 7200 # data[19] = 114 [606 overall] + │ │ ├── 0444-0446: x 7800 # data[20] = 120 [612 overall] + │ │ ├── 0446-0448: x 7e00 # data[21] = 126 [618 overall] + │ │ ├── 0448-0450: x 8400 # data[22] = 132 [624 overall] + │ │ ├── 0450-0452: x 8a00 # data[23] = 138 [630 overall] + │ │ ├── 0452-0454: x 9000 # data[24] = 144 [636 overall] + │ │ ├── 0454-0456: x 9600 # data[25] = 150 [642 overall] + │ │ ├── 0456-0458: x 9c00 # data[26] = 156 [648 overall] + │ │ ├── 0458-0460: x a200 # data[27] = 162 [654 overall] + │ │ ├── 0460-0462: x a800 # data[28] = 168 [660 overall] + │ │ ├── 0462-0464: x ae00 # data[29] = 174 [666 overall] + │ │ ├── 0464-0466: x b400 # data[30] = 180 [672 overall] + │ │ ├── 0466-0468: x ba00 # data[31] = 186 [678 overall] + │ │ ├── 0468-0470: x c000 # data[32] = 192 [684 overall] + │ │ ├── 0470-0472: x c600 # data[33] = 198 [690 overall] + │ │ ├── 0472-0474: x cc00 # data[34] = 204 [696 overall] + │ │ ├── 0474-0476: x d200 # data[35] = 210 [702 overall] + │ │ ├── 0476-0478: x d800 # data[36] = 216 [708 overall] + │ │ ├── 0478-0480: x de00 # data[37] = 222 [714 overall] + │ │ ├── 0480-0482: x e400 # data[38] = 228 [720 overall] + │ │ ├── 0482-0484: x ea00 # data[39] = 234 [726 overall] + │ │ ├── 0484-0486: x f000 # data[40] = 240 [732 overall] + │ │ ├── 0486-0488: x f600 # data[41] = 246 [738 overall] + │ │ ├── 0488-0490: x fc00 # data[42] = 252 [744 overall] + │ │ └── 0490-0492: x 0201 # data[43] = 258 [750 overall] + │ └── data + │ ├── 0492-0498: x 403935373230 # data[0]: @95720 + │ ├── 0498-0504: x 403935373230 # data[1]: @95720 + │ ├── 0504-0510: x 403935373230 # data[2]: @95720 + │ ├── 0510-0516: x 403935373230 # data[3]: @95720 + │ ├── 0516-0522: x 403935373230 # data[4]: @95720 + │ ├── 0522-0528: x 403935373230 # data[5]: @95720 + │ ├── 0528-0534: x 403935373230 # data[6]: @95720 + │ ├── 0534-0540: x 403935373230 # data[7]: @95720 + │ ├── 0540-0546: x 403935373230 # data[8]: @95720 + │ ├── 0546-0552: x 403935373230 # data[9]: @95720 + │ ├── 0552-0558: x 403935373230 # data[10]: @95720 + │ ├── 0558-0564: x 403935373230 # data[11]: @95720 + │ ├── 0564-0570: x 403935373230 # data[12]: @95720 + │ ├── 0570-0576: x 403935373230 # data[13]: @95720 + │ ├── 0576-0582: x 403935373230 # data[14]: @95720 + │ ├── 0582-0588: x 403935373230 # data[15]: @95720 + │ ├── 0588-0594: x 403935373230 # data[16]: @95720 + │ ├── 0594-0600: x 403935373230 # data[17]: @95720 + │ ├── 0600-0606: x 403935373230 # data[18]: @95720 + │ ├── 0606-0612: x 403935373230 # data[19]: @95720 + │ ├── 0612-0618: x 403935373230 # data[20]: @95720 + │ ├── 0618-0624: x 403935373230 # data[21]: @95720 + │ ├── 0624-0630: x 403935373230 # data[22]: @95720 + │ ├── 0630-0636: x 403935373230 # data[23]: @95720 + │ ├── 0636-0642: x 403935373230 # data[24]: @95720 + │ ├── 0642-0648: x 403935373230 # data[25]: @95720 + │ ├── 0648-0654: x 403935373230 # data[26]: @95720 + │ ├── 0654-0660: x 403935373230 # data[27]: @95720 + │ ├── 0660-0666: x 403935373230 # data[28]: @95720 + │ ├── 0666-0672: x 403935373230 # data[29]: @95720 + │ ├── 0672-0678: x 403935373230 # data[30]: @95720 + │ ├── 0678-0684: x 403935373230 # data[31]: @95720 + │ ├── 0684-0690: x 403935373230 # data[32]: @95720 + │ ├── 0690-0696: x 403935373230 # data[33]: @95720 + │ ├── 0696-0702: x 403935373230 # data[34]: @95720 + │ ├── 0702-0708: x 403935373230 # data[35]: @95720 + │ ├── 0708-0714: x 403935373230 # data[36]: @95720 + │ ├── 0714-0720: x 403935373230 # data[37]: @95720 + │ ├── 0720-0726: x 403935373230 # data[38]: @95720 + │ ├── 0726-0732: x 403935373230 # data[39]: @95720 + │ ├── 0732-0738: x 403935373230 # data[40]: @95720 + │ ├── 0738-0744: x 403935373230 # data[41]: @95720 + │ └── 0744-0750: x 403935373230 # data[42]: @95720 + ├── data for column 2 (uint) + │ ├── 0750-0751: x 80 # encoding: const + │ └── 0751-0759: x 0100000000000000 # 64-bit constant: 1 + ├── data for column 3 (bool) + │ ├── 0759-0760: x 00 # default bitmap encoding + │ ├── 0760-0768: b 1111111111111111111111111111111111111111000001110000000000000000 # bitmap word 0 + │ └── 0768-0776: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 0776-0777: x 01 # encoding: 1b + │ │ ├── 0777-0778: x 00 # data[0] = 0 [821 overall] + │ │ ├── 0778-0779: x 05 # data[1] = 5 [826 overall] + │ │ ├── 0779-0780: x 0a # data[2] = 10 [831 overall] + │ │ ├── 0780-0781: x 0f # data[3] = 15 [836 overall] + │ │ ├── 0781-0782: x 14 # data[4] = 20 [841 overall] + │ │ ├── 0782-0783: x 19 # data[5] = 25 [846 overall] + │ │ ├── 0783-0784: x 1e # data[6] = 30 [851 overall] + │ │ ├── 0784-0785: x 23 # data[7] = 35 [856 overall] + │ │ ├── 0785-0786: x 28 # data[8] = 40 [861 overall] + │ │ ├── 0786-0787: x 2d # data[9] = 45 [866 overall] + │ │ ├── 0787-0788: x 32 # data[10] = 50 [871 overall] + │ │ ├── 0788-0789: x 37 # data[11] = 55 [876 overall] + │ │ ├── 0789-0790: x 3c # data[12] = 60 [881 overall] + │ │ ├── 0790-0791: x 41 # data[13] = 65 [886 overall] + │ │ ├── 0791-0792: x 46 # data[14] = 70 [891 overall] + │ │ ├── 0792-0793: x 4b # data[15] = 75 [896 overall] + │ │ ├── 0793-0794: x 50 # data[16] = 80 [901 overall] + │ │ ├── 0794-0795: x 55 # data[17] = 85 [906 overall] + │ │ ├── 0795-0796: x 5a # data[18] = 90 [911 overall] + │ │ ├── 0796-0797: x 5f # data[19] = 95 [916 overall] + │ │ ├── 0797-0798: x 64 # data[20] = 100 [921 overall] + │ │ ├── 0798-0799: x 69 # data[21] = 105 [926 overall] + │ │ ├── 0799-0800: x 6e # data[22] = 110 [931 overall] + │ │ ├── 0800-0801: x 73 # data[23] = 115 [936 overall] + │ │ ├── 0801-0802: x 78 # data[24] = 120 [941 overall] + │ │ ├── 0802-0803: x 7d # data[25] = 125 [946 overall] + │ │ ├── 0803-0804: x 82 # data[26] = 130 [951 overall] + │ │ ├── 0804-0805: x 87 # data[27] = 135 [956 overall] + │ │ ├── 0805-0806: x 8c # data[28] = 140 [961 overall] + │ │ ├── 0806-0807: x 91 # data[29] = 145 [966 overall] + │ │ ├── 0807-0808: x 96 # data[30] = 150 [971 overall] + │ │ ├── 0808-0809: x 9b # data[31] = 155 [976 overall] + │ │ ├── 0809-0810: x a0 # data[32] = 160 [981 overall] + │ │ ├── 0810-0811: x a5 # data[33] = 165 [986 overall] + │ │ ├── 0811-0812: x aa # data[34] = 170 [991 overall] + │ │ ├── 0812-0813: x af # data[35] = 175 [996 overall] + │ │ ├── 0813-0814: x b4 # data[36] = 180 [1001 overall] + │ │ ├── 0814-0815: x b9 # data[37] = 185 [1006 overall] + │ │ ├── 0815-0816: x be # data[38] = 190 [1011 overall] + │ │ ├── 0816-0817: x c3 # data[39] = 195 [1016 overall] + │ │ ├── 0817-0818: x c8 # data[40] = 200 [1021 overall] + │ │ ├── 0818-0819: x cd # data[41] = 205 [1026 overall] + │ │ ├── 0819-0820: x d2 # data[42] = 210 [1031 overall] + │ │ └── 0820-0821: x d7 # data[43] = 215 [1036 overall] + │ └── data + │ ├── 0821-0826: x 76616c7565 # data[0]: value + │ ├── 0826-0831: x 76616c7565 # data[1]: value + │ ├── 0831-0836: x 76616c7565 # data[2]: value + │ ├── 0836-0841: x 76616c7565 # data[3]: value + │ ├── 0841-0846: x 76616c7565 # data[4]: value + │ ├── 0846-0851: x 76616c7565 # data[5]: value + │ ├── 0851-0856: x 76616c7565 # data[6]: value + │ ├── 0856-0861: x 76616c7565 # data[7]: value + │ ├── 0861-0866: x 76616c7565 # data[8]: value + │ ├── 0866-0871: x 76616c7565 # data[9]: value + │ ├── 0871-0876: x 76616c7565 # data[10]: value + │ ├── 0876-0881: x 76616c7565 # data[11]: value + │ ├── 0881-0886: x 76616c7565 # data[12]: value + │ ├── 0886-0891: x 76616c7565 # data[13]: value + │ ├── 0891-0896: x 76616c7565 # data[14]: value + │ ├── 0896-0901: x 76616c7565 # data[15]: value + │ ├── 0901-0906: x 76616c7565 # data[16]: value + │ ├── 0906-0911: x 76616c7565 # data[17]: value + │ ├── 0911-0916: x 76616c7565 # data[18]: value + │ ├── 0916-0921: x 76616c7565 # data[19]: value + │ ├── 0921-0926: x 76616c7565 # data[20]: value + │ ├── 0926-0931: x 76616c7565 # data[21]: value + │ ├── 0931-0936: x 76616c7565 # data[22]: value + │ ├── 0936-0941: x 76616c7565 # data[23]: value + │ ├── 0941-0946: x 76616c7565 # data[24]: value + │ ├── 0946-0951: x 76616c7565 # data[25]: value + │ ├── 0951-0956: x 76616c7565 # data[26]: value + │ ├── 0956-0961: x 76616c7565 # data[27]: value + │ ├── 0961-0966: x 76616c7565 # data[28]: value + │ ├── 0966-0971: x 76616c7565 # data[29]: value + │ ├── 0971-0976: x 76616c7565 # data[30]: value + │ ├── 0976-0981: x 76616c7565 # data[31]: value + │ ├── 0981-0986: x 76616c7565 # data[32]: value + │ ├── 0986-0991: x 76616c7565 # data[33]: value + │ ├── 0991-0996: x 76616c7565 # data[34]: value + │ ├── 0996-1001: x 76616c7565 # data[35]: value + │ ├── 1001-1006: x 76616c7565 # data[36]: value + │ ├── 1006-1011: x 76616c7565 # data[37]: value + │ ├── 1011-1016: x 76616c7565 # data[38]: value + │ ├── 1016-1021: x 76616c7565 # data[39]: value + │ ├── 1021-1026: x 76616c7565 # data[40]: value + │ ├── 1026-1031: x 76616c7565 # data[41]: value + │ └── 1031-1036: x 76616c7565 # data[42]: value + ├── data for column 5 (bool) + │ └── 1036-1037: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 1037-1038: x 01 # zero bitmap encoding + └── 1038-1039: x 00 # block padding byte diff --git a/sstable/colblk/testdata/data_block/next_prefix b/sstable/colblk/testdata/data_block/next_prefix index 95c94bc4ea..1222d52684 100644 --- a/sstable/colblk/testdata/data_block/next_prefix +++ b/sstable/colblk/testdata/data_block/next_prefix @@ -43,203 +43,200 @@ size=417: finish ---- LastKey: blockprefix_lemon@92#0,DEL -# data block header -000-004: x 16000000 # maximum key length: 22 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 14000000 # 20 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 73000000 # col 1: page start 115 -021-022: b 00000010 # col 2: uint -022-026: x bf000000 # col 2: page start 191 -026-027: b 00000001 # col 3: bool -027-031: x e8000000 # col 3: page start 232 -031-032: b 00000011 # col 4: bytes -032-036: x 00010000 # col 4: page start 256 -036-037: b 00000001 # col 5: bool -037-041: x 9e010000 # col 5: page start 414 -041-042: b 00000001 # col 6: bool -042-046: x 9f010000 # col 6: page start 415 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 0c # data[0] = 12 [83 overall] -049-050: x 0c # data[1] = 12 [83 overall] -050-051: x 11 # data[2] = 17 [88 overall] -051-052: x 11 # data[3] = 17 [88 overall] -052-053: x 11 # data[4] = 17 [88 overall] -053-054: x 11 # data[5] = 17 [88 overall] -054-055: x 17 # data[6] = 23 [94 overall] -055-056: x 17 # data[7] = 23 [94 overall] -056-057: x 17 # data[8] = 23 [94 overall] -057-058: x 17 # data[9] = 23 [94 overall] -058-059: x 17 # data[10] = 23 [94 overall] -059-060: x 17 # data[11] = 23 [94 overall] -060-061: x 1e # data[12] = 30 [101 overall] -061-062: x 1e # data[13] = 30 [101 overall] -062-063: x 1e # data[14] = 30 [101 overall] -063-064: x 1e # data[15] = 30 [101 overall] -064-065: x 1e # data[16] = 30 [101 overall] -065-066: x 1e # data[17] = 30 [101 overall] -066-067: x 1e # data[18] = 30 [101 overall] -067-068: x 23 # data[19] = 35 [106 overall] -068-069: x 27 # data[20] = 39 [110 overall] -069-070: x 27 # data[21] = 39 [110 overall] -070-071: x 2c # data[22] = 44 [115 overall] -# Data -071-081: x 626c6f636b7072656669 # data[00]: blockprefix_ (block prefix) -081-083: x 785f # (continued...) -083-083: x # data[01]: ............ (bundle prefix) -083-088: x 6170706c65 # data[02]: ............apple -088-088: x # data[03]: ................. -088-088: x # data[04]: ................. -088-088: x # data[05]: ................. -088-094: x 62616e616e61 # data[06]: ............banana -094-094: x # data[07]: .................. -094-094: x # data[08]: .................. -094-094: x # data[09]: .................. -094-094: x # data[10]: .................. -094-094: x # data[11]: .................. -094-101: x 636f636f6e7574 # data[12]: ............coconut -101-101: x # data[13]: ................... -101-101: x # data[14]: ................... -101-101: x # data[15]: ................... -101-101: x # data[16]: ................... -101-101: x # data[17]: ................... -101-101: x # data[18]: ............ (bundle prefix) -101-106: x 6775617661 # data[19]: ............guava -106-110: x 6b697769 # data[20]: ............kiwi -110-110: x # data[21]: ................ -110-115: x 6c656d6f6e # data[22]: ............lemon -# data for column 1 -# rawbytes -# offsets table -115-116: x 01 # encoding: 1b -116-117: x 00 # data[0] = 0 [137 overall] -117-118: x 03 # data[1] = 3 [140 overall] -118-119: x 06 # data[2] = 6 [143 overall] -119-120: x 09 # data[3] = 9 [146 overall] -120-121: x 0c # data[4] = 12 [149 overall] -121-122: x 0f # data[5] = 15 [152 overall] -122-123: x 12 # data[6] = 18 [155 overall] -123-124: x 15 # data[7] = 21 [158 overall] -124-125: x 18 # data[8] = 24 [161 overall] -125-126: x 1a # data[9] = 26 [163 overall] -126-127: x 1c # data[10] = 28 [165 overall] -127-128: x 1c # data[11] = 28 [165 overall] -128-129: x 1f # data[12] = 31 [168 overall] -129-130: x 22 # data[13] = 34 [171 overall] -130-131: x 25 # data[14] = 37 [174 overall] -131-132: x 28 # data[15] = 40 [177 overall] -132-133: x 2a # data[16] = 42 [179 overall] -133-134: x 2d # data[17] = 45 [182 overall] -134-135: x 30 # data[18] = 48 [185 overall] -135-136: x 33 # data[19] = 51 [188 overall] -136-137: x 36 # data[20] = 54 [191 overall] -# data -137-140: x 403938 # data[0]: @98 -140-143: x 403532 # data[1]: @52 -143-146: x 403233 # data[2]: @23 -146-149: x 403131 # data[3]: @11 -149-152: x 403934 # data[4]: @94 -152-155: x 403933 # data[5]: @93 -155-158: x 403933 # data[6]: @93 -158-161: x 403732 # data[7]: @72 -161-163: x 4039 # data[8]: @9 -163-165: x 4031 # data[9]: @1 -165-165: x # data[10]: -165-168: x 403932 # data[11]: @92 -168-171: x 403335 # data[12]: @35 -171-174: x 403232 # data[13]: @22 -174-177: x 403231 # data[14]: @21 -177-179: x 4031 # data[15]: @1 -179-182: x 403939 # data[16]: @99 -182-185: x 403939 # data[17]: @99 -185-188: x 403938 # data[18]: @98 -188-191: x 403932 # data[19]: @92 -# data for column 2 -191-192: x 02 # encoding: 2b -192-194: x 0100 # data[0] = 1 -194-196: x 0100 # data[1] = 1 -196-198: x 0100 # data[2] = 1 -198-200: x 1200 # data[3] = 18 -200-202: x 12f5 # data[4] = 62738 -202-204: x 00f4 # data[5] = 62464 -204-206: x 12dd # data[6] = 56594 -206-208: x 1200 # data[7] = 18 -208-210: x 0100 # data[8] = 1 -210-212: x 0100 # data[9] = 1 -212-214: x 0100 # data[10] = 1 -214-216: x 0100 # data[11] = 1 -216-218: x 0100 # data[12] = 1 -218-220: x 0100 # data[13] = 1 -220-222: x 0100 # data[14] = 1 -222-224: x 0100 # data[15] = 1 -224-226: x 0100 # data[16] = 1 -226-228: x 0100 # data[17] = 1 -228-230: x 0100 # data[18] = 1 -230-232: x 0000 # data[19] = 0 -# data for column 3 -232-233: x 00 # bitmap encoding -233-240: x 00000000000000 # padding to align to 64-bit boundary -240-248: b 0001000100000100000010110000000000000000000000000000000000000000 # bitmap word 0 -248-256: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -256-257: x 01 # encoding: 1b -257-258: x 00 # data[0] = 0 [278 overall] -258-259: x 07 # data[1] = 7 [285 overall] -259-260: x 0e # data[2] = 14 [292 overall] -260-261: x 15 # data[3] = 21 [299 overall] -261-262: x 1c # data[4] = 28 [306 overall] -262-263: x 24 # data[5] = 36 [314 overall] -263-264: x 24 # data[6] = 36 [314 overall] -264-265: x 2c # data[7] = 44 [322 overall] -265-266: x 34 # data[8] = 52 [330 overall] -266-267: x 3b # data[9] = 59 [337 overall] -267-268: x 42 # data[10] = 66 [344 overall] -268-269: x 49 # data[11] = 73 [351 overall] -269-270: x 52 # data[12] = 82 [360 overall] -270-271: x 5b # data[13] = 91 [369 overall] -271-272: x 64 # data[14] = 100 [378 overall] -272-273: x 6d # data[15] = 109 [387 overall] -273-274: x 75 # data[16] = 117 [395 overall] -274-275: x 7c # data[17] = 124 [402 overall] -275-276: x 82 # data[18] = 130 [408 overall] -276-277: x 88 # data[19] = 136 [414 overall] -277-278: x 88 # data[20] = 136 [414 overall] -# data -278-285: x 6170706c653938 # data[0]: apple98 -285-292: x 6170706c653532 # data[1]: apple52 -292-299: x 6170706c653233 # data[2]: apple23 -299-306: x 6170706c653131 # data[3]: apple11 -306-314: x 62616e616e613934 # data[4]: banana94 -314-314: x # data[5]: -314-322: x 62616e616e613933 # data[6]: banana93 -322-330: x 62616e616e613732 # data[7]: banana72 -330-337: x 62616e616e6139 # data[8]: banana9 -337-344: x 62616e616e6131 # data[9]: banana1 -344-351: x 636f636f6e7574 # data[10]: coconut -351-360: x 636f636f6e75743932 # data[11]: coconut92 -360-369: x 636f636f6e75743335 # data[12]: coconut35 -369-378: x 636f636f6e75743232 # data[13]: coconut22 -378-387: x 636f636f6e75743231 # data[14]: coconut21 -387-395: x 636f636f6e757431 # data[15]: coconut1 -395-402: x 67756176613939 # data[16]: guava99 -402-408: x 6b6977693939 # data[17]: kiwi99 -408-414: x 6b6977693938 # data[18]: kiwi98 -414-414: x # data[19]: -# data for column 5 -414-415: x 01 # bitmap encoding -# data for column 6 -415-416: x 01 # bitmap encoding -416-417: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 16000000 # maximum key length: 22 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 14000000 # 20 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 73000000 # col 1: page start 115 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x bf000000 # col 2: page start 191 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x e8000000 # col 3: page start 232 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 00010000 # col 4: page start 256 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 9e010000 # col 5: page start 414 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 9f010000 # col 6: page start 415 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 0c # data[0] = 12 [83 overall] + │ │ ├── 049-050: x 0c # data[1] = 12 [83 overall] + │ │ ├── 050-051: x 11 # data[2] = 17 [88 overall] + │ │ ├── 051-052: x 11 # data[3] = 17 [88 overall] + │ │ ├── 052-053: x 11 # data[4] = 17 [88 overall] + │ │ ├── 053-054: x 11 # data[5] = 17 [88 overall] + │ │ ├── 054-055: x 17 # data[6] = 23 [94 overall] + │ │ ├── 055-056: x 17 # data[7] = 23 [94 overall] + │ │ ├── 056-057: x 17 # data[8] = 23 [94 overall] + │ │ ├── 057-058: x 17 # data[9] = 23 [94 overall] + │ │ ├── 058-059: x 17 # data[10] = 23 [94 overall] + │ │ ├── 059-060: x 17 # data[11] = 23 [94 overall] + │ │ ├── 060-061: x 1e # data[12] = 30 [101 overall] + │ │ ├── 061-062: x 1e # data[13] = 30 [101 overall] + │ │ ├── 062-063: x 1e # data[14] = 30 [101 overall] + │ │ ├── 063-064: x 1e # data[15] = 30 [101 overall] + │ │ ├── 064-065: x 1e # data[16] = 30 [101 overall] + │ │ ├── 065-066: x 1e # data[17] = 30 [101 overall] + │ │ ├── 066-067: x 1e # data[18] = 30 [101 overall] + │ │ ├── 067-068: x 23 # data[19] = 35 [106 overall] + │ │ ├── 068-069: x 27 # data[20] = 39 [110 overall] + │ │ ├── 069-070: x 27 # data[21] = 39 [110 overall] + │ │ └── 070-071: x 2c # data[22] = 44 [115 overall] + │ └── data + │ ├── 071-081: x 626c6f636b7072656669 # data[00]: blockprefix_ (block prefix) + │ ├── 081-083: x 785f # (continued...) + │ ├── 083-083: x # data[01]: ............ (bundle prefix) + │ ├── 083-088: x 6170706c65 # data[02]: ............apple + │ ├── 088-088: x # data[03]: ................. + │ ├── 088-088: x # data[04]: ................. + │ ├── 088-088: x # data[05]: ................. + │ ├── 088-094: x 62616e616e61 # data[06]: ............banana + │ ├── 094-094: x # data[07]: .................. + │ ├── 094-094: x # data[08]: .................. + │ ├── 094-094: x # data[09]: .................. + │ ├── 094-094: x # data[10]: .................. + │ ├── 094-094: x # data[11]: .................. + │ ├── 094-101: x 636f636f6e7574 # data[12]: ............coconut + │ ├── 101-101: x # data[13]: ................... + │ ├── 101-101: x # data[14]: ................... + │ ├── 101-101: x # data[15]: ................... + │ ├── 101-101: x # data[16]: ................... + │ ├── 101-101: x # data[17]: ................... + │ ├── 101-101: x # data[18]: ............ (bundle prefix) + │ ├── 101-106: x 6775617661 # data[19]: ............guava + │ ├── 106-110: x 6b697769 # data[20]: ............kiwi + │ ├── 110-110: x # data[21]: ................ + │ └── 110-115: x 6c656d6f6e # data[22]: ............lemon + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 115-116: x 01 # encoding: 1b + │ │ ├── 116-117: x 00 # data[0] = 0 [137 overall] + │ │ ├── 117-118: x 03 # data[1] = 3 [140 overall] + │ │ ├── 118-119: x 06 # data[2] = 6 [143 overall] + │ │ ├── 119-120: x 09 # data[3] = 9 [146 overall] + │ │ ├── 120-121: x 0c # data[4] = 12 [149 overall] + │ │ ├── 121-122: x 0f # data[5] = 15 [152 overall] + │ │ ├── 122-123: x 12 # data[6] = 18 [155 overall] + │ │ ├── 123-124: x 15 # data[7] = 21 [158 overall] + │ │ ├── 124-125: x 18 # data[8] = 24 [161 overall] + │ │ ├── 125-126: x 1a # data[9] = 26 [163 overall] + │ │ ├── 126-127: x 1c # data[10] = 28 [165 overall] + │ │ ├── 127-128: x 1c # data[11] = 28 [165 overall] + │ │ ├── 128-129: x 1f # data[12] = 31 [168 overall] + │ │ ├── 129-130: x 22 # data[13] = 34 [171 overall] + │ │ ├── 130-131: x 25 # data[14] = 37 [174 overall] + │ │ ├── 131-132: x 28 # data[15] = 40 [177 overall] + │ │ ├── 132-133: x 2a # data[16] = 42 [179 overall] + │ │ ├── 133-134: x 2d # data[17] = 45 [182 overall] + │ │ ├── 134-135: x 30 # data[18] = 48 [185 overall] + │ │ ├── 135-136: x 33 # data[19] = 51 [188 overall] + │ │ └── 136-137: x 36 # data[20] = 54 [191 overall] + │ └── data + │ ├── 137-140: x 403938 # data[0]: @98 + │ ├── 140-143: x 403532 # data[1]: @52 + │ ├── 143-146: x 403233 # data[2]: @23 + │ ├── 146-149: x 403131 # data[3]: @11 + │ ├── 149-152: x 403934 # data[4]: @94 + │ ├── 152-155: x 403933 # data[5]: @93 + │ ├── 155-158: x 403933 # data[6]: @93 + │ ├── 158-161: x 403732 # data[7]: @72 + │ ├── 161-163: x 4039 # data[8]: @9 + │ ├── 163-165: x 4031 # data[9]: @1 + │ ├── 165-165: x # data[10]: + │ ├── 165-168: x 403932 # data[11]: @92 + │ ├── 168-171: x 403335 # data[12]: @35 + │ ├── 171-174: x 403232 # data[13]: @22 + │ ├── 174-177: x 403231 # data[14]: @21 + │ ├── 177-179: x 4031 # data[15]: @1 + │ ├── 179-182: x 403939 # data[16]: @99 + │ ├── 182-185: x 403939 # data[17]: @99 + │ ├── 185-188: x 403938 # data[18]: @98 + │ └── 188-191: x 403932 # data[19]: @92 + ├── data for column 2 (uint) + │ ├── 191-192: x 02 # encoding: 2b + │ ├── 192-194: x 0100 # data[0] = 1 + │ ├── 194-196: x 0100 # data[1] = 1 + │ ├── 196-198: x 0100 # data[2] = 1 + │ ├── 198-200: x 1200 # data[3] = 18 + │ ├── 200-202: x 12f5 # data[4] = 62738 + │ ├── 202-204: x 00f4 # data[5] = 62464 + │ ├── 204-206: x 12dd # data[6] = 56594 + │ ├── 206-208: x 1200 # data[7] = 18 + │ ├── 208-210: x 0100 # data[8] = 1 + │ ├── 210-212: x 0100 # data[9] = 1 + │ ├── 212-214: x 0100 # data[10] = 1 + │ ├── 214-216: x 0100 # data[11] = 1 + │ ├── 216-218: x 0100 # data[12] = 1 + │ ├── 218-220: x 0100 # data[13] = 1 + │ ├── 220-222: x 0100 # data[14] = 1 + │ ├── 222-224: x 0100 # data[15] = 1 + │ ├── 224-226: x 0100 # data[16] = 1 + │ ├── 226-228: x 0100 # data[17] = 1 + │ ├── 228-230: x 0100 # data[18] = 1 + │ └── 230-232: x 0000 # data[19] = 0 + ├── data for column 3 (bool) + │ ├── 232-233: x 00 # default bitmap encoding + │ ├── 233-240: x 00000000000000 # padding to align to 64-bit boundary + │ ├── 240-248: b 0001000100000100000010110000000000000000000000000000000000000000 # bitmap word 0 + │ └── 248-256: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 256-257: x 01 # encoding: 1b + │ │ ├── 257-258: x 00 # data[0] = 0 [278 overall] + │ │ ├── 258-259: x 07 # data[1] = 7 [285 overall] + │ │ ├── 259-260: x 0e # data[2] = 14 [292 overall] + │ │ ├── 260-261: x 15 # data[3] = 21 [299 overall] + │ │ ├── 261-262: x 1c # data[4] = 28 [306 overall] + │ │ ├── 262-263: x 24 # data[5] = 36 [314 overall] + │ │ ├── 263-264: x 24 # data[6] = 36 [314 overall] + │ │ ├── 264-265: x 2c # data[7] = 44 [322 overall] + │ │ ├── 265-266: x 34 # data[8] = 52 [330 overall] + │ │ ├── 266-267: x 3b # data[9] = 59 [337 overall] + │ │ ├── 267-268: x 42 # data[10] = 66 [344 overall] + │ │ ├── 268-269: x 49 # data[11] = 73 [351 overall] + │ │ ├── 269-270: x 52 # data[12] = 82 [360 overall] + │ │ ├── 270-271: x 5b # data[13] = 91 [369 overall] + │ │ ├── 271-272: x 64 # data[14] = 100 [378 overall] + │ │ ├── 272-273: x 6d # data[15] = 109 [387 overall] + │ │ ├── 273-274: x 75 # data[16] = 117 [395 overall] + │ │ ├── 274-275: x 7c # data[17] = 124 [402 overall] + │ │ ├── 275-276: x 82 # data[18] = 130 [408 overall] + │ │ ├── 276-277: x 88 # data[19] = 136 [414 overall] + │ │ └── 277-278: x 88 # data[20] = 136 [414 overall] + │ └── data + │ ├── 278-285: x 6170706c653938 # data[0]: apple98 + │ ├── 285-292: x 6170706c653532 # data[1]: apple52 + │ ├── 292-299: x 6170706c653233 # data[2]: apple23 + │ ├── 299-306: x 6170706c653131 # data[3]: apple11 + │ ├── 306-314: x 62616e616e613934 # data[4]: banana94 + │ ├── 314-314: x # data[5]: + │ ├── 314-322: x 62616e616e613933 # data[6]: banana93 + │ ├── 322-330: x 62616e616e613732 # data[7]: banana72 + │ ├── 330-337: x 62616e616e6139 # data[8]: banana9 + │ ├── 337-344: x 62616e616e6131 # data[9]: banana1 + │ ├── 344-351: x 636f636f6e7574 # data[10]: coconut + │ ├── 351-360: x 636f636f6e75743932 # data[11]: coconut92 + │ ├── 360-369: x 636f636f6e75743335 # data[12]: coconut35 + │ ├── 369-378: x 636f636f6e75743232 # data[13]: coconut22 + │ ├── 378-387: x 636f636f6e75743231 # data[14]: coconut21 + │ ├── 387-395: x 636f636f6e757431 # data[15]: coconut1 + │ ├── 395-402: x 67756176613939 # data[16]: guava99 + │ ├── 402-408: x 6b6977693939 # data[17]: kiwi99 + │ ├── 408-414: x 6b6977693938 # data[18]: kiwi98 + │ └── 414-414: x # data[19]: + ├── data for column 5 (bool) + │ └── 414-415: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 415-416: x 01 # zero bitmap encoding + └── 416-417: x 00 # block padding byte # Scan across the block using next prefix. diff --git a/sstable/colblk/testdata/data_block/rewrite_suffixes b/sstable/colblk/testdata/data_block/rewrite_suffixes index 7b27e1f6d1..fb38d52000 100644 --- a/sstable/colblk/testdata/data_block/rewrite_suffixes +++ b/sstable/colblk/testdata/data_block/rewrite_suffixes @@ -25,73 +25,70 @@ size=110: finish ---- LastKey: yaya@5#0,SET -# data block header -000-004: x 06000000 # maximum key length: 6 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 02000000 # 2 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 3b000000 # col 1: page start 59 -021-022: b 00000010 # col 2: uint -022-026: x 44000000 # col 2: page start 68 -026-027: b 00000001 # col 3: bool -027-031: x 4d000000 # col 3: page start 77 -031-032: b 00000011 # col 4: bytes -032-036: x 60000000 # col 4: page start 96 -036-037: b 00000001 # col 5: bool -037-041: x 6b000000 # col 5: page start 107 -041-042: b 00000001 # col 6: bool -042-046: x 6c000000 # col 6: page start 108 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 00 # data[0] = 0 [52 overall] -049-050: x 00 # data[1] = 0 [52 overall] -050-051: x 03 # data[2] = 3 [55 overall] -051-052: x 07 # data[3] = 7 [59 overall] -# Data -052-052: x # data[00]: (block prefix) -052-052: x # data[01]: (bundle prefix) -052-055: x 706f69 # data[02]: poi -055-059: x 79617961 # data[03]: yaya -# data for column 1 -# rawbytes -# offsets table -059-060: x 01 # encoding: 1b -060-061: x 00 # data[0] = 0 [63 overall] -061-062: x 03 # data[1] = 3 [66 overall] -062-063: x 05 # data[2] = 5 [68 overall] -# data -063-066: x 403132 # data[0]: @12 -066-068: x 4035 # data[1]: @5 -# data for column 2 -068-069: x 80 # encoding: const -069-077: x 0100000000000000 # 64-bit constant: 1 -# data for column 3 -077-078: x 00 # bitmap encoding -078-080: x 0000 # padding to align to 64-bit boundary -080-088: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -088-096: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -096-097: x 01 # encoding: 1b -097-098: x 00 # data[0] = 0 [100 overall] -098-099: x 03 # data[1] = 3 [103 overall] -099-100: x 07 # data[2] = 7 [107 overall] -# data -100-103: x 626967 # data[0]: big -103-107: x 6d696e69 # data[1]: mini -# data for column 5 -107-108: x 01 # bitmap encoding -# data for column 6 -108-109: x 01 # bitmap encoding -109-110: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 06000000 # maximum key length: 6 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 02000000 # 2 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 3b000000 # col 1: page start 59 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 44000000 # col 2: page start 68 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 4d000000 # col 3: page start 77 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 60000000 # col 4: page start 96 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 6b000000 # col 5: page start 107 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 6c000000 # col 6: page start 108 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ ├── 050-051: x 03 # data[2] = 3 [55 overall] + │ │ └── 051-052: x 07 # data[3] = 7 [59 overall] + │ └── data + │ ├── 052-052: x # data[00]: (block prefix) + │ ├── 052-052: x # data[01]: (bundle prefix) + │ ├── 052-055: x 706f69 # data[02]: poi + │ └── 055-059: x 79617961 # data[03]: yaya + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 059-060: x 01 # encoding: 1b + │ │ ├── 060-061: x 00 # data[0] = 0 [63 overall] + │ │ ├── 061-062: x 03 # data[1] = 3 [66 overall] + │ │ └── 062-063: x 05 # data[2] = 5 [68 overall] + │ └── data + │ ├── 063-066: x 403132 # data[0]: @12 + │ └── 066-068: x 4035 # data[1]: @5 + ├── data for column 2 (uint) + │ ├── 068-069: x 80 # encoding: const + │ └── 069-077: x 0100000000000000 # 64-bit constant: 1 + ├── data for column 3 (bool) + │ ├── 077-078: x 00 # default bitmap encoding + │ ├── 078-080: x 0000 # padding to align to 64-bit boundary + │ ├── 080-088: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ └── 088-096: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 096-097: x 01 # encoding: 1b + │ │ ├── 097-098: x 00 # data[0] = 0 [100 overall] + │ │ ├── 098-099: x 03 # data[1] = 3 [103 overall] + │ │ └── 099-100: x 07 # data[2] = 7 [107 overall] + │ └── data + │ ├── 100-103: x 626967 # data[0]: big + │ └── 103-107: x 6d696e69 # data[1]: mini + ├── data for column 5 (bool) + │ └── 107-108: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 108-109: x 01 # zero bitmap encoding + └── 109-110: x 00 # block padding byte rewrite from=@12 to=@22 ---- @@ -125,154 +122,148 @@ size=121: finish ---- LastKey: yaya@6#0,SET -# data block header -000-004: x 08000000 # maximum key length: 8 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 03000000 # 3 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 42000000 # col 1: page start 66 -021-022: b 00000010 # col 2: uint -022-026: x 4d000000 # col 2: page start 77 -026-027: b 00000001 # col 3: bool -027-031: x 56000000 # col 3: page start 86 -031-032: b 00000011 # col 4: bytes -032-036: x 68000000 # col 4: page start 104 -036-037: b 00000001 # col 5: bool -037-041: x 76000000 # col 5: page start 118 -041-042: b 00000001 # col 6: bool -042-046: x 77000000 # col 6: page start 119 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 00 # data[0] = 0 [53 overall] -049-050: x 00 # data[1] = 0 [53 overall] -050-051: x 06 # data[2] = 6 [59 overall] -051-052: x 09 # data[3] = 9 [62 overall] -052-053: x 0d # data[4] = 13 [66 overall] -# Data -053-053: x # data[00]: (block prefix) -053-053: x # data[01]: (bundle prefix) -053-059: x 6d6172626c65 # data[02]: marble -059-062: x 706f69 # data[03]: poi -062-066: x 79617961 # data[04]: yaya -# data for column 1 -# rawbytes -# offsets table -066-067: x 01 # encoding: 1b -067-068: x 00 # data[0] = 0 [71 overall] -068-069: x 02 # data[1] = 2 [73 overall] -069-070: x 04 # data[2] = 4 [75 overall] -070-071: x 06 # data[3] = 6 [77 overall] -# data -071-073: x 4036 # data[0]: @6 -073-075: x 4036 # data[1]: @6 -075-077: x 4036 # data[2]: @6 -# data for column 2 -077-078: x 80 # encoding: const -078-086: x 0100000000000000 # 64-bit constant: 1 -# data for column 3 -086-087: x 00 # bitmap encoding -087-088: x 00 # padding to align to 64-bit boundary -088-096: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -104-105: x 01 # encoding: 1b -105-106: x 00 # data[0] = 0 [109 overall] -106-107: x 03 # data[1] = 3 [112 overall] -107-108: x 06 # data[2] = 6 [115 overall] -108-109: x 09 # data[3] = 9 [118 overall] -# data -109-112: x 666f6f # data[0]: foo -112-115: x 626172 # data[1]: bar -115-118: x 626178 # data[2]: bax -# data for column 5 -118-119: x 01 # bitmap encoding -# data for column 6 -119-120: x 01 # bitmap encoding -120-121: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 08000000 # maximum key length: 8 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 03000000 # 3 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 42000000 # col 1: page start 66 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 4d000000 # col 2: page start 77 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 56000000 # col 3: page start 86 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 68000000 # col 4: page start 104 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 76000000 # col 5: page start 118 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 77000000 # col 6: page start 119 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ ├── 050-051: x 06 # data[2] = 6 [59 overall] + │ │ ├── 051-052: x 09 # data[3] = 9 [62 overall] + │ │ └── 052-053: x 0d # data[4] = 13 [66 overall] + │ └── data + │ ├── 053-053: x # data[00]: (block prefix) + │ ├── 053-053: x # data[01]: (bundle prefix) + │ ├── 053-059: x 6d6172626c65 # data[02]: marble + │ ├── 059-062: x 706f69 # data[03]: poi + │ └── 062-066: x 79617961 # data[04]: yaya + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 066-067: x 01 # encoding: 1b + │ │ ├── 067-068: x 00 # data[0] = 0 [71 overall] + │ │ ├── 068-069: x 02 # data[1] = 2 [73 overall] + │ │ ├── 069-070: x 04 # data[2] = 4 [75 overall] + │ │ └── 070-071: x 06 # data[3] = 6 [77 overall] + │ └── data + │ ├── 071-073: x 4036 # data[0]: @6 + │ ├── 073-075: x 4036 # data[1]: @6 + │ └── 075-077: x 4036 # data[2]: @6 + ├── data for column 2 (uint) + │ ├── 077-078: x 80 # encoding: const + │ └── 078-086: x 0100000000000000 # 64-bit constant: 1 + ├── data for column 3 (bool) + │ ├── 086-087: x 00 # default bitmap encoding + │ ├── 087-088: x 00 # padding to align to 64-bit boundary + │ ├── 088-096: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ └── 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 104-105: x 01 # encoding: 1b + │ │ ├── 105-106: x 00 # data[0] = 0 [109 overall] + │ │ ├── 106-107: x 03 # data[1] = 3 [112 overall] + │ │ ├── 107-108: x 06 # data[2] = 6 [115 overall] + │ │ └── 108-109: x 09 # data[3] = 9 [118 overall] + │ └── data + │ ├── 109-112: x 666f6f # data[0]: foo + │ ├── 112-115: x 626172 # data[1]: bar + │ └── 115-118: x 626178 # data[2]: bax + ├── data for column 5 (bool) + │ └── 118-119: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 119-120: x 01 # zero bitmap encoding + └── 120-121: x 00 # block padding byte rewrite from=@6 to=@54 ---- Start: marble@54#0,SET End: yaya@54#0,SET -# data block header -000-004: x 09000000 # maximum key length: 9 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 03000000 # 3 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 42000000 # col 1: page start 66 -021-022: b 00000010 # col 2: uint -022-026: x 50000000 # col 2: page start 80 -026-027: b 00000001 # col 3: bool -027-031: x 59000000 # col 3: page start 89 -031-032: b 00000011 # col 4: bytes -032-036: x 70000000 # col 4: page start 112 -036-037: b 00000001 # col 5: bool -037-041: x 7e000000 # col 5: page start 126 -041-042: b 00000001 # col 6: bool -042-046: x 7f000000 # col 6: page start 127 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 00 # data[0] = 0 [53 overall] -049-050: x 00 # data[1] = 0 [53 overall] -050-051: x 06 # data[2] = 6 [59 overall] -051-052: x 09 # data[3] = 9 [62 overall] -052-053: x 0d # data[4] = 13 [66 overall] -# Data -053-053: x # data[00]: (block prefix) -053-053: x # data[01]: (bundle prefix) -053-059: x 6d6172626c65 # data[02]: marble -059-062: x 706f69 # data[03]: poi -062-066: x 79617961 # data[04]: yaya -# data for column 1 -# rawbytes -# offsets table -066-067: x 01 # encoding: 1b -067-068: x 00 # data[0] = 0 [71 overall] -068-069: x 03 # data[1] = 3 [74 overall] -069-070: x 06 # data[2] = 6 [77 overall] -070-071: x 09 # data[3] = 9 [80 overall] -# data -071-074: x 403534 # data[0]: @54 -074-077: x 403534 # data[1]: @54 -077-080: x 403534 # data[2]: @54 -# data for column 2 -080-081: x 80 # encoding: const -081-089: x 0100000000000000 # 64-bit constant: 1 -# data for column 3 -089-090: x 00 # bitmap encoding -090-096: x 000000000000 # padding to align to 64-bit boundary -096-104: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -112-113: x 01 # encoding: 1b -113-114: x 00 # data[0] = 0 [117 overall] -114-115: x 03 # data[1] = 3 [120 overall] -115-116: x 06 # data[2] = 6 [123 overall] -116-117: x 09 # data[3] = 9 [126 overall] -# data -117-120: x 666f6f # data[0]: foo -120-123: x 626172 # data[1]: bar -123-126: x 626178 # data[2]: bax -# data for column 5 -126-127: x 01 # bitmap encoding -# data for column 6 -127-128: x 01 # bitmap encoding -128-129: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 09000000 # maximum key length: 9 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 03000000 # 3 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 42000000 # col 1: page start 66 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 50000000 # col 2: page start 80 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 59000000 # col 3: page start 89 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 70000000 # col 4: page start 112 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 7e000000 # col 5: page start 126 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 7f000000 # col 6: page start 127 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ ├── 050-051: x 06 # data[2] = 6 [59 overall] + │ │ ├── 051-052: x 09 # data[3] = 9 [62 overall] + │ │ └── 052-053: x 0d # data[4] = 13 [66 overall] + │ └── data + │ ├── 053-053: x # data[00]: (block prefix) + │ ├── 053-053: x # data[01]: (bundle prefix) + │ ├── 053-059: x 6d6172626c65 # data[02]: marble + │ ├── 059-062: x 706f69 # data[03]: poi + │ └── 062-066: x 79617961 # data[04]: yaya + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 066-067: x 01 # encoding: 1b + │ │ ├── 067-068: x 00 # data[0] = 0 [71 overall] + │ │ ├── 068-069: x 03 # data[1] = 3 [74 overall] + │ │ ├── 069-070: x 06 # data[2] = 6 [77 overall] + │ │ └── 070-071: x 09 # data[3] = 9 [80 overall] + │ └── data + │ ├── 071-074: x 403534 # data[0]: @54 + │ ├── 074-077: x 403534 # data[1]: @54 + │ └── 077-080: x 403534 # data[2]: @54 + ├── data for column 2 (uint) + │ ├── 080-081: x 80 # encoding: const + │ └── 081-089: x 0100000000000000 # 64-bit constant: 1 + ├── data for column 3 (bool) + │ ├── 089-090: x 00 # default bitmap encoding + │ ├── 090-096: x 000000000000 # padding to align to 64-bit boundary + │ ├── 096-104: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ └── 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 112-113: x 01 # encoding: 1b + │ │ ├── 113-114: x 00 # data[0] = 0 [117 overall] + │ │ ├── 114-115: x 03 # data[1] = 3 [120 overall] + │ │ ├── 115-116: x 06 # data[2] = 6 [123 overall] + │ │ └── 116-117: x 09 # data[3] = 9 [126 overall] + │ └── data + │ ├── 117-120: x 666f6f # data[0]: foo + │ ├── 120-123: x 626172 # data[1]: bar + │ └── 123-126: x 626178 # data[2]: bax + ├── data for column 5 (bool) + │ └── 126-127: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 127-128: x 01 # zero bitmap encoding + └── 128-129: x 00 # block padding byte diff --git a/sstable/colblk/testdata/data_block/simple b/sstable/colblk/testdata/data_block/simple index 91472ab07d..cc49ee840b 100644 --- a/sstable/colblk/testdata/data_block/simple +++ b/sstable/colblk/testdata/data_block/simple @@ -41,112 +41,109 @@ size=193: finish ---- LastKey: d@11#0,DEL -# data block header -000-004: x 04000000 # maximum key length: 4 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 07000000 # 7 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x 3d000000 # col 1: page start 61 -021-022: b 00000010 # col 2: uint -022-026: x 56000000 # col 2: page start 86 -026-027: b 00000001 # col 3: bool -027-031: x 5e000000 # col 3: page start 94 -031-032: b 00000011 # col 4: bytes -032-036: x 70000000 # col 4: page start 112 -036-037: b 00000001 # col 5: bool -037-041: x a8000000 # col 5: page start 168 -041-042: b 00000001 # col 6: bool -042-046: x a9000000 # col 6: page start 169 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 00 # data[0] = 0 [57 overall] -049-050: x 00 # data[1] = 0 [57 overall] -050-051: x 01 # data[2] = 1 [58 overall] -051-052: x 02 # data[3] = 2 [59 overall] -052-053: x 02 # data[4] = 2 [59 overall] -053-054: x 03 # data[5] = 3 [60 overall] -054-055: x 03 # data[6] = 3 [60 overall] -055-056: x 03 # data[7] = 3 [60 overall] -056-057: x 04 # data[8] = 4 [61 overall] -# Data -057-057: x # data[00]: (block prefix) -057-057: x # data[01]: (bundle prefix) -057-058: x 61 # data[02]: a -058-059: x 62 # data[03]: b -059-059: x # data[04]: . -059-060: x 63 # data[05]: c -060-060: x # data[06]: . -060-060: x # data[07]: . -060-061: x 64 # data[08]: d -# data for column 1 -# rawbytes -# offsets table -061-062: x 01 # encoding: 1b -062-063: x 00 # data[0] = 0 [70 overall] -063-064: x 03 # data[1] = 3 [73 overall] -064-065: x 05 # data[2] = 5 [75 overall] -065-066: x 07 # data[3] = 7 [77 overall] -066-067: x 09 # data[4] = 9 [79 overall] -067-068: x 0b # data[5] = 11 [81 overall] -068-069: x 0d # data[6] = 13 [83 overall] -069-070: x 10 # data[7] = 16 [86 overall] -# data -070-073: x 403130 # data[0]: @10 -073-075: x 4035 # data[1]: @5 -075-077: x 4032 # data[2]: @2 -077-079: x 4039 # data[3]: @9 -079-081: x 4036 # data[4]: @6 -081-083: x 4031 # data[5]: @1 -083-086: x 403131 # data[6]: @11 -# data for column 2 -086-087: x 01 # encoding: 1b -087-088: x 01 # data[0] = 1 -088-089: x 01 # data[1] = 1 -089-090: x 12 # data[2] = 18 -090-091: x 12 # data[3] = 18 -091-092: x 01 # data[4] = 1 -092-093: x 01 # data[5] = 1 -093-094: x 00 # data[6] = 0 -# data for column 3 -094-095: x 00 # bitmap encoding -095-096: x 00 # padding to align to 64-bit boundary -096-104: b 0100101100000000000000000000000000000000000000000000000000000000 # bitmap word 0 -104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -112-113: x 01 # encoding: 1b -113-114: x 00 # data[0] = 0 [121 overall] -114-115: x 05 # data[1] = 5 [126 overall] -115-116: x 0b # data[2] = 11 [132 overall] -116-117: x 14 # data[3] = 20 [141 overall] -117-118: x 1b # data[4] = 27 [148 overall] -118-119: x 24 # data[5] = 36 [157 overall] -119-120: x 2e # data[6] = 46 [167 overall] -120-121: x 2f # data[7] = 47 [168 overall] -# data -121-126: x 6170706c65 # data[0]: apple -126-132: x 62616e616e61 # data[1]: banana -132-141: x 626c75656265727279 # data[2]: blueberry -141-148: x 636f636f6e7574 # data[3]: coconut -148-157: x 63616e74656c6f7065 # data[4]: cantelope -157-167: x 636c656d656e74696e65 # data[5]: clementine -167-168: x 20 # data[6]: -# data for column 5 -168-169: x 01 # bitmap encoding -# data for column 6 -169-170: x 00 # bitmap encoding -170-176: x 000000000000 # padding to align to 64-bit boundary -176-184: b 0100000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 -184-192: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -192-193: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 04000000 # maximum key length: 4 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 07000000 # 7 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x 3d000000 # col 1: page start 61 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 56000000 # col 2: page start 86 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 5e000000 # col 3: page start 94 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 70000000 # col 4: page start 112 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x a8000000 # col 5: page start 168 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x a9000000 # col 6: page start 169 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 00 # data[0] = 0 [57 overall] + │ │ ├── 049-050: x 00 # data[1] = 0 [57 overall] + │ │ ├── 050-051: x 01 # data[2] = 1 [58 overall] + │ │ ├── 051-052: x 02 # data[3] = 2 [59 overall] + │ │ ├── 052-053: x 02 # data[4] = 2 [59 overall] + │ │ ├── 053-054: x 03 # data[5] = 3 [60 overall] + │ │ ├── 054-055: x 03 # data[6] = 3 [60 overall] + │ │ ├── 055-056: x 03 # data[7] = 3 [60 overall] + │ │ └── 056-057: x 04 # data[8] = 4 [61 overall] + │ └── data + │ ├── 057-057: x # data[00]: (block prefix) + │ ├── 057-057: x # data[01]: (bundle prefix) + │ ├── 057-058: x 61 # data[02]: a + │ ├── 058-059: x 62 # data[03]: b + │ ├── 059-059: x # data[04]: . + │ ├── 059-060: x 63 # data[05]: c + │ ├── 060-060: x # data[06]: . + │ ├── 060-060: x # data[07]: . + │ └── 060-061: x 64 # data[08]: d + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 061-062: x 01 # encoding: 1b + │ │ ├── 062-063: x 00 # data[0] = 0 [70 overall] + │ │ ├── 063-064: x 03 # data[1] = 3 [73 overall] + │ │ ├── 064-065: x 05 # data[2] = 5 [75 overall] + │ │ ├── 065-066: x 07 # data[3] = 7 [77 overall] + │ │ ├── 066-067: x 09 # data[4] = 9 [79 overall] + │ │ ├── 067-068: x 0b # data[5] = 11 [81 overall] + │ │ ├── 068-069: x 0d # data[6] = 13 [83 overall] + │ │ └── 069-070: x 10 # data[7] = 16 [86 overall] + │ └── data + │ ├── 070-073: x 403130 # data[0]: @10 + │ ├── 073-075: x 4035 # data[1]: @5 + │ ├── 075-077: x 4032 # data[2]: @2 + │ ├── 077-079: x 4039 # data[3]: @9 + │ ├── 079-081: x 4036 # data[4]: @6 + │ ├── 081-083: x 4031 # data[5]: @1 + │ └── 083-086: x 403131 # data[6]: @11 + ├── data for column 2 (uint) + │ ├── 086-087: x 01 # encoding: 1b + │ ├── 087-088: x 01 # data[0] = 1 + │ ├── 088-089: x 01 # data[1] = 1 + │ ├── 089-090: x 12 # data[2] = 18 + │ ├── 090-091: x 12 # data[3] = 18 + │ ├── 091-092: x 01 # data[4] = 1 + │ ├── 092-093: x 01 # data[5] = 1 + │ └── 093-094: x 00 # data[6] = 0 + ├── data for column 3 (bool) + │ ├── 094-095: x 00 # default bitmap encoding + │ ├── 095-096: x 00 # padding to align to 64-bit boundary + │ ├── 096-104: b 0100101100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ └── 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 112-113: x 01 # encoding: 1b + │ │ ├── 113-114: x 00 # data[0] = 0 [121 overall] + │ │ ├── 114-115: x 05 # data[1] = 5 [126 overall] + │ │ ├── 115-116: x 0b # data[2] = 11 [132 overall] + │ │ ├── 116-117: x 14 # data[3] = 20 [141 overall] + │ │ ├── 117-118: x 1b # data[4] = 27 [148 overall] + │ │ ├── 118-119: x 24 # data[5] = 36 [157 overall] + │ │ ├── 119-120: x 2e # data[6] = 46 [167 overall] + │ │ └── 120-121: x 2f # data[7] = 47 [168 overall] + │ └── data + │ ├── 121-126: x 6170706c65 # data[0]: apple + │ ├── 126-132: x 62616e616e61 # data[1]: banana + │ ├── 132-141: x 626c75656265727279 # data[2]: blueberry + │ ├── 141-148: x 636f636f6e7574 # data[3]: coconut + │ ├── 148-157: x 63616e74656c6f7065 # data[4]: cantelope + │ ├── 157-167: x 636c656d656e74696e65 # data[5]: clementine + │ └── 167-168: x 20 # data[6]: + ├── data for column 5 (bool) + │ └── 168-169: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ ├── 169-170: x 00 # default bitmap encoding + │ ├── 170-176: x 000000000000 # padding to align to 64-bit boundary + │ ├── 176-184: b 0100000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ └── 184-192: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + └── 192-193: x 00 # block padding byte iter first @@ -359,165 +356,162 @@ size=335: finish ---- LastKey: aaaaaaaaaaaaaaarrived@10#0,SET -# data block header -000-004: x 1c000000 # maximum key length: 28 -# columnar block header -004-005: x 01 # version 1 -005-007: x 0700 # 7 columns -007-011: x 11000000 # 17 rows -011-012: b 00000100 # col 0: prefixbytes -012-016: x 2e000000 # col 0: page start 46 -016-017: b 00000011 # col 1: bytes -017-021: x c8000000 # col 1: page start 200 -021-022: b 00000010 # col 2: uint -022-026: x 0e010000 # col 2: page start 270 -026-027: b 00000001 # col 3: bool -027-031: x 17010000 # col 3: page start 279 -031-032: b 00000011 # col 4: bytes -032-036: x 28010000 # col 4: page start 296 -036-037: b 00000001 # col 5: bool -037-041: x 4c010000 # col 5: page start 332 -041-042: b 00000001 # col 6: bool -042-046: x 4d010000 # col 6: page start 333 -# data for column 0 -# PrefixBytes -046-047: x 04 # bundleSize: 16 -# Offsets table -047-048: x 01 # encoding: 1b -048-049: x 0f # data[0] = 15 [83 overall] -049-050: x 0f # data[1] = 15 [83 overall] -050-051: x 17 # data[2] = 23 [91 overall] -051-052: x 1d # data[3] = 29 [97 overall] -052-053: x 26 # data[4] = 38 [106 overall] -053-054: x 2e # data[5] = 46 [114 overall] -054-055: x 33 # data[6] = 51 [119 overall] -055-056: x 3b # data[7] = 59 [127 overall] -056-057: x 42 # data[8] = 66 [134 overall] -057-058: x 48 # data[9] = 72 [140 overall] -058-059: x 4c # data[10] = 76 [144 overall] -059-060: x 56 # data[11] = 86 [154 overall] -060-061: x 5c # data[12] = 92 [160 overall] -061-062: x 63 # data[13] = 99 [167 overall] -062-063: x 69 # data[14] = 105 [173 overall] -063-064: x 6f # data[15] = 111 [179 overall] -064-065: x 76 # data[16] = 118 [186 overall] -065-066: x 7e # data[17] = 126 [194 overall] -066-067: x 84 # data[18] = 132 [200 overall] -067-068: x 84 # data[19] = 132 [200 overall] -# Data -068-078: x 61616161616161616161 # data[00]: aaaaaaaaaaaaaaa (block prefix) -078-083: x 6161616161 # (continued...) -083-083: x # data[01]: ............... (bundle prefix) -083-091: x 7070616c6c696e67 # data[02]: ...............ppalling -091-097: x 70706172656c # data[03]: ...............pparel -097-106: x 707061726974696f6e # data[04]: ...............pparition -106-114: x 7070656172696e67 # data[05]: ...............ppearing -114-119: x 7070656e64 # data[06]: ...............ppend -119-127: x 7070656e64616765 # data[07]: ...............ppendage -127-134: x 7070656e646978 # data[08]: ...............ppendix -134-140: x 70706c617564 # data[09]: ...............pplaud -140-144: x 70706c65 # data[10]: ...............pple -144-154: x 70706c69636174696f6e # data[11]: ...............pplication -154-160: x 70706c696564 # data[12]: ...............pplied -160-167: x 70706c79696e67 # data[13]: ...............pplying -167-173: x 70706f696e74 # data[14]: ...............ppoint -173-179: x 70706f736573 # data[15]: ...............pposes -179-186: x 7070726f766573 # data[16]: ...............pproves -186-194: x 7272657374696e67 # data[17]: ...............rresting -194-200: x 727269766564 # data[18]: ...............rrived (bundle prefix) -200-200: x # data[19]: ..................... -# data for column 1 -# rawbytes -# offsets table -200-201: x 01 # encoding: 1b -201-202: x 00 # data[0] = 0 [219 overall] -202-203: x 03 # data[1] = 3 [222 overall] -203-204: x 06 # data[2] = 6 [225 overall] -204-205: x 09 # data[3] = 9 [228 overall] -205-206: x 0c # data[4] = 12 [231 overall] -206-207: x 0f # data[5] = 15 [234 overall] -207-208: x 12 # data[6] = 18 [237 overall] -208-209: x 15 # data[7] = 21 [240 overall] -209-210: x 18 # data[8] = 24 [243 overall] -210-211: x 1b # data[9] = 27 [246 overall] -211-212: x 1e # data[10] = 30 [249 overall] -212-213: x 21 # data[11] = 33 [252 overall] -213-214: x 24 # data[12] = 36 [255 overall] -214-215: x 27 # data[13] = 39 [258 overall] -215-216: x 2a # data[14] = 42 [261 overall] -216-217: x 2d # data[15] = 45 [264 overall] -217-218: x 30 # data[16] = 48 [267 overall] -218-219: x 33 # data[17] = 51 [270 overall] -# data -219-222: x 403130 # data[0]: @10 -222-225: x 403130 # data[1]: @10 -225-228: x 403130 # data[2]: @10 -228-231: x 403130 # data[3]: @10 -231-234: x 403130 # data[4]: @10 -234-237: x 403130 # data[5]: @10 -237-240: x 403130 # data[6]: @10 -240-243: x 403130 # data[7]: @10 -243-246: x 403130 # data[8]: @10 -246-249: x 403130 # data[9]: @10 -249-252: x 403130 # data[10]: @10 -252-255: x 403130 # data[11]: @10 -255-258: x 403130 # data[12]: @10 -258-261: x 403130 # data[13]: @10 -261-264: x 403130 # data[14]: @10 -264-267: x 403130 # data[15]: @10 -267-270: x 403130 # data[16]: @10 -# data for column 2 -270-271: x 80 # encoding: const -271-279: x 0100000000000000 # 64-bit constant: 1 -# data for column 3 -279-280: x 00 # bitmap encoding -280-288: b 1111111111111111000000010000000000000000000000000000000000000000 # bitmap word 0 -288-296: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 -# data for column 4 -# rawbytes -# offsets table -296-297: x 01 # encoding: 1b -297-298: x 00 # data[0] = 0 [315 overall] -298-299: x 01 # data[1] = 1 [316 overall] -299-300: x 02 # data[2] = 2 [317 overall] -300-301: x 03 # data[3] = 3 [318 overall] -301-302: x 04 # data[4] = 4 [319 overall] -302-303: x 05 # data[5] = 5 [320 overall] -303-304: x 06 # data[6] = 6 [321 overall] -304-305: x 07 # data[7] = 7 [322 overall] -305-306: x 08 # data[8] = 8 [323 overall] -306-307: x 09 # data[9] = 9 [324 overall] -307-308: x 0a # data[10] = 10 [325 overall] -308-309: x 0b # data[11] = 11 [326 overall] -309-310: x 0c # data[12] = 12 [327 overall] -310-311: x 0d # data[13] = 13 [328 overall] -311-312: x 0e # data[14] = 14 [329 overall] -312-313: x 0f # data[15] = 15 [330 overall] -313-314: x 10 # data[16] = 16 [331 overall] -314-315: x 11 # data[17] = 17 [332 overall] -# data -315-316: x 61 # data[0]: a -316-317: x 61 # data[1]: a -317-318: x 61 # data[2]: a -318-319: x 61 # data[3]: a -319-320: x 61 # data[4]: a -320-321: x 61 # data[5]: a -321-322: x 61 # data[6]: a -322-323: x 61 # data[7]: a -323-324: x 61 # data[8]: a -324-325: x 61 # data[9]: a -325-326: x 61 # data[10]: a -326-327: x 61 # data[11]: a -327-328: x 61 # data[12]: a -328-329: x 61 # data[13]: a -329-330: x 61 # data[14]: a -330-331: x 61 # data[15]: a -331-332: x 61 # data[16]: a -# data for column 5 -332-333: x 01 # bitmap encoding -# data for column 6 -333-334: x 01 # bitmap encoding -334-335: x 00 # block padding byte +data block header + ├── columnar block header + │ ├── 000-004: x 1c000000 # maximum key length: 28 + │ ├── 004-005: x 01 # version 1 + │ ├── 005-007: x 0700 # 7 columns + │ ├── 007-011: x 11000000 # 17 rows + │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ ├── 016-017: b 00000011 # col 1: bytes + │ ├── 017-021: x c8000000 # col 1: page start 200 + │ ├── 021-022: b 00000010 # col 2: uint + │ ├── 022-026: x 0e010000 # col 2: page start 270 + │ ├── 026-027: b 00000001 # col 3: bool + │ ├── 027-031: x 17010000 # col 3: page start 279 + │ ├── 031-032: b 00000011 # col 4: bytes + │ ├── 032-036: x 28010000 # col 4: page start 296 + │ ├── 036-037: b 00000001 # col 5: bool + │ ├── 037-041: x 4c010000 # col 5: page start 332 + │ ├── 041-042: b 00000001 # col 6: bool + │ └── 042-046: x 4d010000 # col 6: page start 333 + ├── data for column 0 (prefixbytes) + │ ├── 046-047: x 04 # bundle size: 16 + │ ├── offsets table + │ │ ├── 047-048: x 01 # encoding: 1b + │ │ ├── 048-049: x 0f # data[0] = 15 [83 overall] + │ │ ├── 049-050: x 0f # data[1] = 15 [83 overall] + │ │ ├── 050-051: x 17 # data[2] = 23 [91 overall] + │ │ ├── 051-052: x 1d # data[3] = 29 [97 overall] + │ │ ├── 052-053: x 26 # data[4] = 38 [106 overall] + │ │ ├── 053-054: x 2e # data[5] = 46 [114 overall] + │ │ ├── 054-055: x 33 # data[6] = 51 [119 overall] + │ │ ├── 055-056: x 3b # data[7] = 59 [127 overall] + │ │ ├── 056-057: x 42 # data[8] = 66 [134 overall] + │ │ ├── 057-058: x 48 # data[9] = 72 [140 overall] + │ │ ├── 058-059: x 4c # data[10] = 76 [144 overall] + │ │ ├── 059-060: x 56 # data[11] = 86 [154 overall] + │ │ ├── 060-061: x 5c # data[12] = 92 [160 overall] + │ │ ├── 061-062: x 63 # data[13] = 99 [167 overall] + │ │ ├── 062-063: x 69 # data[14] = 105 [173 overall] + │ │ ├── 063-064: x 6f # data[15] = 111 [179 overall] + │ │ ├── 064-065: x 76 # data[16] = 118 [186 overall] + │ │ ├── 065-066: x 7e # data[17] = 126 [194 overall] + │ │ ├── 066-067: x 84 # data[18] = 132 [200 overall] + │ │ └── 067-068: x 84 # data[19] = 132 [200 overall] + │ └── data + │ ├── 068-078: x 61616161616161616161 # data[00]: aaaaaaaaaaaaaaa (block prefix) + │ ├── 078-083: x 6161616161 # (continued...) + │ ├── 083-083: x # data[01]: ............... (bundle prefix) + │ ├── 083-091: x 7070616c6c696e67 # data[02]: ...............ppalling + │ ├── 091-097: x 70706172656c # data[03]: ...............pparel + │ ├── 097-106: x 707061726974696f6e # data[04]: ...............pparition + │ ├── 106-114: x 7070656172696e67 # data[05]: ...............ppearing + │ ├── 114-119: x 7070656e64 # data[06]: ...............ppend + │ ├── 119-127: x 7070656e64616765 # data[07]: ...............ppendage + │ ├── 127-134: x 7070656e646978 # data[08]: ...............ppendix + │ ├── 134-140: x 70706c617564 # data[09]: ...............pplaud + │ ├── 140-144: x 70706c65 # data[10]: ...............pple + │ ├── 144-154: x 70706c69636174696f6e # data[11]: ...............pplication + │ ├── 154-160: x 70706c696564 # data[12]: ...............pplied + │ ├── 160-167: x 70706c79696e67 # data[13]: ...............pplying + │ ├── 167-173: x 70706f696e74 # data[14]: ...............ppoint + │ ├── 173-179: x 70706f736573 # data[15]: ...............pposes + │ ├── 179-186: x 7070726f766573 # data[16]: ...............pproves + │ ├── 186-194: x 7272657374696e67 # data[17]: ...............rresting + │ ├── 194-200: x 727269766564 # data[18]: ...............rrived (bundle prefix) + │ └── 200-200: x # data[19]: ..................... + ├── data for column 1 (bytes) + │ ├── offsets table + │ │ ├── 200-201: x 01 # encoding: 1b + │ │ ├── 201-202: x 00 # data[0] = 0 [219 overall] + │ │ ├── 202-203: x 03 # data[1] = 3 [222 overall] + │ │ ├── 203-204: x 06 # data[2] = 6 [225 overall] + │ │ ├── 204-205: x 09 # data[3] = 9 [228 overall] + │ │ ├── 205-206: x 0c # data[4] = 12 [231 overall] + │ │ ├── 206-207: x 0f # data[5] = 15 [234 overall] + │ │ ├── 207-208: x 12 # data[6] = 18 [237 overall] + │ │ ├── 208-209: x 15 # data[7] = 21 [240 overall] + │ │ ├── 209-210: x 18 # data[8] = 24 [243 overall] + │ │ ├── 210-211: x 1b # data[9] = 27 [246 overall] + │ │ ├── 211-212: x 1e # data[10] = 30 [249 overall] + │ │ ├── 212-213: x 21 # data[11] = 33 [252 overall] + │ │ ├── 213-214: x 24 # data[12] = 36 [255 overall] + │ │ ├── 214-215: x 27 # data[13] = 39 [258 overall] + │ │ ├── 215-216: x 2a # data[14] = 42 [261 overall] + │ │ ├── 216-217: x 2d # data[15] = 45 [264 overall] + │ │ ├── 217-218: x 30 # data[16] = 48 [267 overall] + │ │ └── 218-219: x 33 # data[17] = 51 [270 overall] + │ └── data + │ ├── 219-222: x 403130 # data[0]: @10 + │ ├── 222-225: x 403130 # data[1]: @10 + │ ├── 225-228: x 403130 # data[2]: @10 + │ ├── 228-231: x 403130 # data[3]: @10 + │ ├── 231-234: x 403130 # data[4]: @10 + │ ├── 234-237: x 403130 # data[5]: @10 + │ ├── 237-240: x 403130 # data[6]: @10 + │ ├── 240-243: x 403130 # data[7]: @10 + │ ├── 243-246: x 403130 # data[8]: @10 + │ ├── 246-249: x 403130 # data[9]: @10 + │ ├── 249-252: x 403130 # data[10]: @10 + │ ├── 252-255: x 403130 # data[11]: @10 + │ ├── 255-258: x 403130 # data[12]: @10 + │ ├── 258-261: x 403130 # data[13]: @10 + │ ├── 261-264: x 403130 # data[14]: @10 + │ ├── 264-267: x 403130 # data[15]: @10 + │ └── 267-270: x 403130 # data[16]: @10 + ├── data for column 2 (uint) + │ ├── 270-271: x 80 # encoding: const + │ └── 271-279: x 0100000000000000 # 64-bit constant: 1 + ├── data for column 3 (bool) + │ ├── 279-280: x 00 # default bitmap encoding + │ ├── 280-288: b 1111111111111111000000010000000000000000000000000000000000000000 # bitmap word 0 + │ └── 288-296: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 296-297: x 01 # encoding: 1b + │ │ ├── 297-298: x 00 # data[0] = 0 [315 overall] + │ │ ├── 298-299: x 01 # data[1] = 1 [316 overall] + │ │ ├── 299-300: x 02 # data[2] = 2 [317 overall] + │ │ ├── 300-301: x 03 # data[3] = 3 [318 overall] + │ │ ├── 301-302: x 04 # data[4] = 4 [319 overall] + │ │ ├── 302-303: x 05 # data[5] = 5 [320 overall] + │ │ ├── 303-304: x 06 # data[6] = 6 [321 overall] + │ │ ├── 304-305: x 07 # data[7] = 7 [322 overall] + │ │ ├── 305-306: x 08 # data[8] = 8 [323 overall] + │ │ ├── 306-307: x 09 # data[9] = 9 [324 overall] + │ │ ├── 307-308: x 0a # data[10] = 10 [325 overall] + │ │ ├── 308-309: x 0b # data[11] = 11 [326 overall] + │ │ ├── 309-310: x 0c # data[12] = 12 [327 overall] + │ │ ├── 310-311: x 0d # data[13] = 13 [328 overall] + │ │ ├── 311-312: x 0e # data[14] = 14 [329 overall] + │ │ ├── 312-313: x 0f # data[15] = 15 [330 overall] + │ │ ├── 313-314: x 10 # data[16] = 16 [331 overall] + │ │ └── 314-315: x 11 # data[17] = 17 [332 overall] + │ └── data + │ ├── 315-316: x 61 # data[0]: a + │ ├── 316-317: x 61 # data[1]: a + │ ├── 317-318: x 61 # data[2]: a + │ ├── 318-319: x 61 # data[3]: a + │ ├── 319-320: x 61 # data[4]: a + │ ├── 320-321: x 61 # data[5]: a + │ ├── 321-322: x 61 # data[6]: a + │ ├── 322-323: x 61 # data[7]: a + │ ├── 323-324: x 61 # data[8]: a + │ ├── 324-325: x 61 # data[9]: a + │ ├── 325-326: x 61 # data[10]: a + │ ├── 326-327: x 61 # data[11]: a + │ ├── 327-328: x 61 # data[12]: a + │ ├── 328-329: x 61 # data[13]: a + │ ├── 329-330: x 61 # data[14]: a + │ ├── 330-331: x 61 # data[15]: a + │ └── 331-332: x 61 # data[16]: a + ├── data for column 5 (bool) + │ └── 332-333: x 01 # zero bitmap encoding + ├── data for column 6 (bool) + │ └── 333-334: x 01 # zero bitmap encoding + └── 334-335: x 00 # block padding byte iter seek-ge aaa diff --git a/sstable/colblk/testdata/index_block b/sstable/colblk/testdata/index_block index 98c4c668d9..e6633d68f2 100644 --- a/sstable/colblk/testdata/index_block +++ b/sstable/colblk/testdata/index_block @@ -7,74 +7,73 @@ banana 632 215 bp5 bonifide 963 326 bp6 ---- UnsafeSeparator(5) = "bonifide" -# index block header -# columnar block header -000-001: x 01 # version 1 -001-003: x 0400 # 4 columns -003-007: x 06000000 # 6 rows -007-008: b 00000011 # col 0: bytes -008-012: x 1b000000 # col 0: page start 27 -012-013: b 00000010 # col 1: uint -013-017: x 4c000000 # col 1: page start 76 -017-018: b 00000010 # col 2: uint -018-022: x 5a000000 # col 2: page start 90 -022-023: b 00000011 # col 3: bytes -023-027: x 68000000 # col 3: page start 104 -# data for column 0 -# rawbytes -# offsets table -027-028: x 01 # encoding: 1b -028-029: x 00 # data[0] = 0 [35 overall] -029-030: x 05 # data[1] = 5 [40 overall] -030-031: x 0c # data[2] = 12 [47 overall] -031-032: x 11 # data[3] = 17 [52 overall] -032-033: x 1b # data[4] = 27 [62 overall] -033-034: x 21 # data[5] = 33 [68 overall] -034-035: x 29 # data[6] = 41 [76 overall] -# data -035-040: x 6170706c65 # data[0]: apple -040-047: x 6170706c696564 # data[1]: applied -047-052: x 61746f6e65 # data[2]: atone -052-062: x 6261636974726163696e # data[3]: bacitracin -062-068: x 62616e616e61 # data[4]: banana -068-076: x 626f6e6966696465 # data[5]: bonifide -# data for column 1 -076-077: x 02 # encoding: 2b -077-078: x 00 # padding (aligning to 16-bit boundary) -078-080: x 1800 # data[0] = 24 -080-082: x 8d00 # data[1] = 141 -082-084: x c300 # data[2] = 195 -084-086: x 9c01 # data[3] = 412 -086-088: x 7802 # data[4] = 632 -088-090: x c303 # data[5] = 963 -# data for column 2 -090-091: x 02 # encoding: 2b -091-092: x 00 # padding (aligning to 16-bit boundary) -092-094: x 1800 # data[0] = 24 -094-096: x 7000 # data[1] = 112 -096-098: x 3100 # data[2] = 49 -098-100: x d400 # data[3] = 212 -100-102: x d700 # data[4] = 215 -102-104: x 4601 # data[5] = 326 -# data for column 3 -# rawbytes -# offsets table -104-105: x 01 # encoding: 1b -105-106: x 00 # data[0] = 0 [112 overall] -106-107: x 03 # data[1] = 3 [115 overall] -107-108: x 06 # data[2] = 6 [118 overall] -108-109: x 09 # data[3] = 9 [121 overall] -109-110: x 09 # data[4] = 9 [121 overall] -110-111: x 0c # data[5] = 12 [124 overall] -111-112: x 0f # data[6] = 15 [127 overall] -# data -112-115: x 627031 # data[0]: bp1 -115-118: x 627032 # data[1]: bp2 -118-121: x 627033 # data[2]: bp3 -121-121: x # data[3]: -121-124: x 627035 # data[4]: bp5 -124-127: x 627036 # data[5]: bp6 -127-128: x 00 # block padding byte +index-block-decoder + └── index block header + ├── columnar block header + │ ├── 000-001: x 01 # version 1 + │ ├── 001-003: x 0400 # 4 columns + │ ├── 003-007: x 06000000 # 6 rows + │ ├── 007-008: b 00000011 # col 0: bytes + │ ├── 008-012: x 1b000000 # col 0: page start 27 + │ ├── 012-013: b 00000010 # col 1: uint + │ ├── 013-017: x 4c000000 # col 1: page start 76 + │ ├── 017-018: b 00000010 # col 2: uint + │ ├── 018-022: x 5a000000 # col 2: page start 90 + │ ├── 022-023: b 00000011 # col 3: bytes + │ └── 023-027: x 68000000 # col 3: page start 104 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 027-028: x 01 # encoding: 1b + │ │ ├── 028-029: x 00 # data[0] = 0 [35 overall] + │ │ ├── 029-030: x 05 # data[1] = 5 [40 overall] + │ │ ├── 030-031: x 0c # data[2] = 12 [47 overall] + │ │ ├── 031-032: x 11 # data[3] = 17 [52 overall] + │ │ ├── 032-033: x 1b # data[4] = 27 [62 overall] + │ │ ├── 033-034: x 21 # data[5] = 33 [68 overall] + │ │ └── 034-035: x 29 # data[6] = 41 [76 overall] + │ └── data + │ ├── 035-040: x 6170706c65 # data[0]: apple + │ ├── 040-047: x 6170706c696564 # data[1]: applied + │ ├── 047-052: x 61746f6e65 # data[2]: atone + │ ├── 052-062: x 6261636974726163696e # data[3]: bacitracin + │ ├── 062-068: x 62616e616e61 # data[4]: banana + │ └── 068-076: x 626f6e6966696465 # data[5]: bonifide + ├── data for column 1 (uint) + │ ├── 076-077: x 02 # encoding: 2b + │ ├── 077-078: x 00 # padding (aligning to 16-bit boundary) + │ ├── 078-080: x 1800 # data[0] = 24 + │ ├── 080-082: x 8d00 # data[1] = 141 + │ ├── 082-084: x c300 # data[2] = 195 + │ ├── 084-086: x 9c01 # data[3] = 412 + │ ├── 086-088: x 7802 # data[4] = 632 + │ └── 088-090: x c303 # data[5] = 963 + ├── data for column 2 (uint) + │ ├── 090-091: x 02 # encoding: 2b + │ ├── 091-092: x 00 # padding (aligning to 16-bit boundary) + │ ├── 092-094: x 1800 # data[0] = 24 + │ ├── 094-096: x 7000 # data[1] = 112 + │ ├── 096-098: x 3100 # data[2] = 49 + │ ├── 098-100: x d400 # data[3] = 212 + │ ├── 100-102: x d700 # data[4] = 215 + │ └── 102-104: x 4601 # data[5] = 326 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 104-105: x 01 # encoding: 1b + │ │ ├── 105-106: x 00 # data[0] = 0 [112 overall] + │ │ ├── 106-107: x 03 # data[1] = 3 [115 overall] + │ │ ├── 107-108: x 06 # data[2] = 6 [118 overall] + │ │ ├── 108-109: x 09 # data[3] = 9 [121 overall] + │ │ ├── 109-110: x 09 # data[4] = 9 [121 overall] + │ │ ├── 110-111: x 0c # data[5] = 12 [124 overall] + │ │ └── 111-112: x 0f # data[6] = 15 [127 overall] + │ └── data + │ ├── 112-115: x 627031 # data[0]: bp1 + │ ├── 115-118: x 627032 # data[1]: bp2 + │ ├── 118-121: x 627033 # data[2]: bp3 + │ ├── 121-121: x # data[3]: + │ ├── 121-124: x 627035 # data[4]: bp5 + │ └── 124-127: x 627036 # data[5]: bp6 + └── 127-128: x 00 # block padding byte iter seek-ge zoo @@ -190,66 +189,65 @@ banana 632 215 bp5 bonifide 963 326 bp6 ---- UnsafeSeparator(4) = "banana" -# index block header -# columnar block header -000-001: x 01 # version 1 -001-003: x 0400 # 4 columns -003-007: x 05000000 # 5 rows -007-008: b 00000011 # col 0: bytes -008-012: x 1b000000 # col 0: page start 27 -012-013: b 00000010 # col 1: uint -013-017: x 43000000 # col 1: page start 67 -017-018: b 00000010 # col 2: uint -018-022: x 4e000000 # col 2: page start 78 -022-023: b 00000011 # col 3: bytes -023-027: x 54000000 # col 3: page start 84 -# data for column 0 -# rawbytes -# offsets table -027-028: x 01 # encoding: 1b -028-029: x 00 # data[0] = 0 [34 overall] -029-030: x 05 # data[1] = 5 [39 overall] -030-031: x 0c # data[2] = 12 [46 overall] -031-032: x 11 # data[3] = 17 [51 overall] -032-033: x 1b # data[4] = 27 [61 overall] -033-034: x 21 # data[5] = 33 [67 overall] -# data -034-039: x 6170706c65 # data[0]: apple -039-046: x 6170706c696564 # data[1]: applied -046-051: x 61746f6e65 # data[2]: atone -051-061: x 6261636974726163696e # data[3]: bacitracin -061-067: x 62616e616e61 # data[4]: banana -# data for column 1 -067-068: x 02 # encoding: 2b -068-070: x 1800 # data[0] = 24 -070-072: x 8d00 # data[1] = 141 -072-074: x c300 # data[2] = 195 -074-076: x 9c01 # data[3] = 412 -076-078: x 7802 # data[4] = 632 -# data for column 2 -078-079: x 01 # encoding: 1b -079-080: x 18 # data[0] = 24 -080-081: x 70 # data[1] = 112 -081-082: x 31 # data[2] = 49 -082-083: x d4 # data[3] = 212 -083-084: x d7 # data[4] = 215 -# data for column 3 -# rawbytes -# offsets table -084-085: x 01 # encoding: 1b -085-086: x 00 # data[0] = 0 [91 overall] -086-087: x 03 # data[1] = 3 [94 overall] -087-088: x 06 # data[2] = 6 [97 overall] -088-089: x 09 # data[3] = 9 [100 overall] -089-090: x 09 # data[4] = 9 [100 overall] -090-091: x 0c # data[5] = 12 [103 overall] -# data -091-094: x 627031 # data[0]: bp1 -094-097: x 627032 # data[1]: bp2 -097-100: x 627033 # data[2]: bp3 -100-100: x # data[3]: -100-103: x 627035 # data[4]: bp5 -103-104: x 00 # block padding byte +index-block-decoder + └── index block header + ├── columnar block header + │ ├── 000-001: x 01 # version 1 + │ ├── 001-003: x 0400 # 4 columns + │ ├── 003-007: x 05000000 # 5 rows + │ ├── 007-008: b 00000011 # col 0: bytes + │ ├── 008-012: x 1b000000 # col 0: page start 27 + │ ├── 012-013: b 00000010 # col 1: uint + │ ├── 013-017: x 43000000 # col 1: page start 67 + │ ├── 017-018: b 00000010 # col 2: uint + │ ├── 018-022: x 4e000000 # col 2: page start 78 + │ ├── 022-023: b 00000011 # col 3: bytes + │ └── 023-027: x 54000000 # col 3: page start 84 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 027-028: x 01 # encoding: 1b + │ │ ├── 028-029: x 00 # data[0] = 0 [34 overall] + │ │ ├── 029-030: x 05 # data[1] = 5 [39 overall] + │ │ ├── 030-031: x 0c # data[2] = 12 [46 overall] + │ │ ├── 031-032: x 11 # data[3] = 17 [51 overall] + │ │ ├── 032-033: x 1b # data[4] = 27 [61 overall] + │ │ └── 033-034: x 21 # data[5] = 33 [67 overall] + │ └── data + │ ├── 034-039: x 6170706c65 # data[0]: apple + │ ├── 039-046: x 6170706c696564 # data[1]: applied + │ ├── 046-051: x 61746f6e65 # data[2]: atone + │ ├── 051-061: x 6261636974726163696e # data[3]: bacitracin + │ └── 061-067: x 62616e616e61 # data[4]: banana + ├── data for column 1 (uint) + │ ├── 067-068: x 02 # encoding: 2b + │ ├── 068-070: x 1800 # data[0] = 24 + │ ├── 070-072: x 8d00 # data[1] = 141 + │ ├── 072-074: x c300 # data[2] = 195 + │ ├── 074-076: x 9c01 # data[3] = 412 + │ └── 076-078: x 7802 # data[4] = 632 + ├── data for column 2 (uint) + │ ├── 078-079: x 01 # encoding: 1b + │ ├── 079-080: x 18 # data[0] = 24 + │ ├── 080-081: x 70 # data[1] = 112 + │ ├── 081-082: x 31 # data[2] = 49 + │ ├── 082-083: x d4 # data[3] = 212 + │ └── 083-084: x d7 # data[4] = 215 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 084-085: x 01 # encoding: 1b + │ │ ├── 085-086: x 00 # data[0] = 0 [91 overall] + │ │ ├── 086-087: x 03 # data[1] = 3 [94 overall] + │ │ ├── 087-088: x 06 # data[2] = 6 [97 overall] + │ │ ├── 088-089: x 09 # data[3] = 9 [100 overall] + │ │ ├── 089-090: x 09 # data[4] = 9 [100 overall] + │ │ └── 090-091: x 0c # data[5] = 12 [103 overall] + │ └── data + │ ├── 091-094: x 627031 # data[0]: bp1 + │ ├── 094-097: x 627032 # data[1]: bp2 + │ ├── 097-100: x 627033 # data[2]: bp3 + │ ├── 100-100: x # data[3]: + │ └── 100-103: x 627035 # data[4]: bp5 + └── 103-104: x 00 # block padding byte build cat 3021 2052 bp1 @@ -259,68 +257,67 @@ cephalopod 122864 9104 bp4 coat 293128 32104 ---- UnsafeSeparator(4) = "coat" -# index block header -# columnar block header -000-001: x 01 # version 1 -001-003: x 0400 # 4 columns -003-007: x 05000000 # 5 rows -007-008: b 00000011 # col 0: bytes -008-012: x 1b000000 # col 0: page start 27 -012-013: b 00000010 # col 1: uint -013-017: x 47000000 # col 1: page start 71 -017-018: b 00000010 # col 2: uint -018-022: x 5c000000 # col 2: page start 92 -022-023: b 00000011 # col 3: bytes -023-027: x 68000000 # col 3: page start 104 -# data for column 0 -# rawbytes -# offsets table -027-028: x 01 # encoding: 1b -028-029: x 00 # data[0] = 0 [34 overall] -029-030: x 03 # data[1] = 3 [37 overall] -030-031: x 0e # data[2] = 14 [48 overall] -031-032: x 17 # data[3] = 23 [57 overall] -032-033: x 21 # data[4] = 33 [67 overall] -033-034: x 25 # data[5] = 37 [71 overall] -# data -034-037: x 636174 # data[0]: cat -037-047: x 636174617374726f7068 # data[1]: catastrophe -047-048: x 65 # (continued...) -048-057: x 63617461746f6e6963 # data[2]: catatonic -057-067: x 63657068616c6f706f64 # data[3]: cephalopod -067-071: x 636f6174 # data[4]: coat -# data for column 1 -071-072: x 04 # encoding: 4b -072-076: x cd0b0000 # data[0] = 3021 -076-080: x 73640100 # data[1] = 91251 -080-084: x 16900100 # data[2] = 102422 -084-088: x f0df0100 # data[3] = 122864 -088-092: x 08790400 # data[4] = 293128 -# data for column 2 -092-093: x 02 # encoding: 2b -093-094: x 00 # padding (aligning to 16-bit boundary) -094-096: x 0408 # data[0] = 2052 -096-098: x 6b07 # data[1] = 1899 -098-100: x da4f # data[2] = 20442 -100-102: x 9023 # data[3] = 9104 -102-104: x 687d # data[4] = 32104 -# data for column 3 -# rawbytes -# offsets table -104-105: x 01 # encoding: 1b -105-106: x 00 # data[0] = 0 [111 overall] -106-107: x 03 # data[1] = 3 [114 overall] -107-108: x 03 # data[2] = 3 [114 overall] -108-109: x 03 # data[3] = 3 [114 overall] -109-110: x 06 # data[4] = 6 [117 overall] -110-111: x 06 # data[5] = 6 [117 overall] -# data -111-114: x 627031 # data[0]: bp1 -114-114: x # data[1]: -114-114: x # data[2]: -114-117: x 627034 # data[3]: bp4 -117-117: x # data[4]: -117-118: x 00 # block padding byte +index-block-decoder + └── index block header + ├── columnar block header + │ ├── 000-001: x 01 # version 1 + │ ├── 001-003: x 0400 # 4 columns + │ ├── 003-007: x 05000000 # 5 rows + │ ├── 007-008: b 00000011 # col 0: bytes + │ ├── 008-012: x 1b000000 # col 0: page start 27 + │ ├── 012-013: b 00000010 # col 1: uint + │ ├── 013-017: x 47000000 # col 1: page start 71 + │ ├── 017-018: b 00000010 # col 2: uint + │ ├── 018-022: x 5c000000 # col 2: page start 92 + │ ├── 022-023: b 00000011 # col 3: bytes + │ └── 023-027: x 68000000 # col 3: page start 104 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 027-028: x 01 # encoding: 1b + │ │ ├── 028-029: x 00 # data[0] = 0 [34 overall] + │ │ ├── 029-030: x 03 # data[1] = 3 [37 overall] + │ │ ├── 030-031: x 0e # data[2] = 14 [48 overall] + │ │ ├── 031-032: x 17 # data[3] = 23 [57 overall] + │ │ ├── 032-033: x 21 # data[4] = 33 [67 overall] + │ │ └── 033-034: x 25 # data[5] = 37 [71 overall] + │ └── data + │ ├── 034-037: x 636174 # data[0]: cat + │ ├── 037-047: x 636174617374726f7068 # data[1]: catastrophe + │ ├── 047-048: x 65 # (continued...) + │ ├── 048-057: x 63617461746f6e6963 # data[2]: catatonic + │ ├── 057-067: x 63657068616c6f706f64 # data[3]: cephalopod + │ └── 067-071: x 636f6174 # data[4]: coat + ├── data for column 1 (uint) + │ ├── 071-072: x 04 # encoding: 4b + │ ├── 072-076: x cd0b0000 # data[0] = 3021 + │ ├── 076-080: x 73640100 # data[1] = 91251 + │ ├── 080-084: x 16900100 # data[2] = 102422 + │ ├── 084-088: x f0df0100 # data[3] = 122864 + │ └── 088-092: x 08790400 # data[4] = 293128 + ├── data for column 2 (uint) + │ ├── 092-093: x 02 # encoding: 2b + │ ├── 093-094: x 00 # padding (aligning to 16-bit boundary) + │ ├── 094-096: x 0408 # data[0] = 2052 + │ ├── 096-098: x 6b07 # data[1] = 1899 + │ ├── 098-100: x da4f # data[2] = 20442 + │ ├── 100-102: x 9023 # data[3] = 9104 + │ └── 102-104: x 687d # data[4] = 32104 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 104-105: x 01 # encoding: 1b + │ │ ├── 105-106: x 00 # data[0] = 0 [111 overall] + │ │ ├── 106-107: x 03 # data[1] = 3 [114 overall] + │ │ ├── 107-108: x 03 # data[2] = 3 [114 overall] + │ │ ├── 108-109: x 03 # data[3] = 3 [114 overall] + │ │ ├── 109-110: x 06 # data[4] = 6 [117 overall] + │ │ └── 110-111: x 06 # data[5] = 6 [117 overall] + │ └── data + │ ├── 111-114: x 627031 # data[0]: bp1 + │ ├── 114-114: x # data[1]: + │ ├── 114-114: x # data[2]: + │ ├── 114-117: x 627034 # data[3]: bp4 + │ └── 117-117: x # data[4]: + └── 117-118: x 00 # block padding byte iter first @@ -362,63 +359,62 @@ cephalopod 122864 9104 bp4 coat 293128 32104 ---- UnsafeSeparator(3) = "cephalopod" -# index block header -# columnar block header -000-001: x 01 # version 1 -001-003: x 0400 # 4 columns -003-007: x 04000000 # 4 rows -007-008: b 00000011 # col 0: bytes -008-012: x 1b000000 # col 0: page start 27 -012-013: b 00000010 # col 1: uint -013-017: x 42000000 # col 1: page start 66 -017-018: b 00000010 # col 2: uint -018-022: x 54000000 # col 2: page start 84 -022-023: b 00000011 # col 3: bytes -023-027: x 5e000000 # col 3: page start 94 -# data for column 0 -# rawbytes -# offsets table -027-028: x 01 # encoding: 1b -028-029: x 00 # data[0] = 0 [33 overall] -029-030: x 03 # data[1] = 3 [36 overall] -030-031: x 0e # data[2] = 14 [47 overall] -031-032: x 17 # data[3] = 23 [56 overall] -032-033: x 21 # data[4] = 33 [66 overall] -# data -033-036: x 636174 # data[0]: cat -036-046: x 636174617374726f7068 # data[1]: catastrophe -046-047: x 65 # (continued...) -047-056: x 63617461746f6e6963 # data[2]: catatonic -056-066: x 63657068616c6f706f64 # data[3]: cephalopod -# data for column 1 -066-067: x 04 # encoding: 4b -067-068: x 00 # padding (aligning to 32-bit boundary) -068-072: x cd0b0000 # data[0] = 3021 -072-076: x 73640100 # data[1] = 91251 -076-080: x 16900100 # data[2] = 102422 -080-084: x f0df0100 # data[3] = 122864 -# data for column 2 -084-085: x 02 # encoding: 2b -085-086: x 00 # padding (aligning to 16-bit boundary) -086-088: x 0408 # data[0] = 2052 -088-090: x 6b07 # data[1] = 1899 -090-092: x da4f # data[2] = 20442 -092-094: x 9023 # data[3] = 9104 -# data for column 3 -# rawbytes -# offsets table -094-095: x 01 # encoding: 1b -095-096: x 00 # data[0] = 0 [100 overall] -096-097: x 03 # data[1] = 3 [103 overall] -097-098: x 03 # data[2] = 3 [103 overall] -098-099: x 03 # data[3] = 3 [103 overall] -099-100: x 06 # data[4] = 6 [106 overall] -# data -100-103: x 627031 # data[0]: bp1 -103-103: x # data[1]: -103-103: x # data[2]: -103-106: x 627034 # data[3]: bp4 -106-107: x 00 # block padding byte +index-block-decoder + └── index block header + ├── columnar block header + │ ├── 000-001: x 01 # version 1 + │ ├── 001-003: x 0400 # 4 columns + │ ├── 003-007: x 04000000 # 4 rows + │ ├── 007-008: b 00000011 # col 0: bytes + │ ├── 008-012: x 1b000000 # col 0: page start 27 + │ ├── 012-013: b 00000010 # col 1: uint + │ ├── 013-017: x 42000000 # col 1: page start 66 + │ ├── 017-018: b 00000010 # col 2: uint + │ ├── 018-022: x 54000000 # col 2: page start 84 + │ ├── 022-023: b 00000011 # col 3: bytes + │ └── 023-027: x 5e000000 # col 3: page start 94 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 027-028: x 01 # encoding: 1b + │ │ ├── 028-029: x 00 # data[0] = 0 [33 overall] + │ │ ├── 029-030: x 03 # data[1] = 3 [36 overall] + │ │ ├── 030-031: x 0e # data[2] = 14 [47 overall] + │ │ ├── 031-032: x 17 # data[3] = 23 [56 overall] + │ │ └── 032-033: x 21 # data[4] = 33 [66 overall] + │ └── data + │ ├── 033-036: x 636174 # data[0]: cat + │ ├── 036-046: x 636174617374726f7068 # data[1]: catastrophe + │ ├── 046-047: x 65 # (continued...) + │ ├── 047-056: x 63617461746f6e6963 # data[2]: catatonic + │ └── 056-066: x 63657068616c6f706f64 # data[3]: cephalopod + ├── data for column 1 (uint) + │ ├── 066-067: x 04 # encoding: 4b + │ ├── 067-068: x 00 # padding (aligning to 32-bit boundary) + │ ├── 068-072: x cd0b0000 # data[0] = 3021 + │ ├── 072-076: x 73640100 # data[1] = 91251 + │ ├── 076-080: x 16900100 # data[2] = 102422 + │ └── 080-084: x f0df0100 # data[3] = 122864 + ├── data for column 2 (uint) + │ ├── 084-085: x 02 # encoding: 2b + │ ├── 085-086: x 00 # padding (aligning to 16-bit boundary) + │ ├── 086-088: x 0408 # data[0] = 2052 + │ ├── 088-090: x 6b07 # data[1] = 1899 + │ ├── 090-092: x da4f # data[2] = 20442 + │ └── 092-094: x 9023 # data[3] = 9104 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 094-095: x 01 # encoding: 1b + │ │ ├── 095-096: x 00 # data[0] = 0 [100 overall] + │ │ ├── 096-097: x 03 # data[1] = 3 [103 overall] + │ │ ├── 097-098: x 03 # data[2] = 3 [103 overall] + │ │ ├── 098-099: x 03 # data[3] = 3 [103 overall] + │ │ └── 099-100: x 06 # data[4] = 6 [106 overall] + │ └── data + │ ├── 100-103: x 627031 # data[0]: bp1 + │ ├── 103-103: x # data[1]: + │ ├── 103-103: x # data[2]: + │ └── 103-106: x 627034 # data[3]: bp4 + └── 106-107: x 00 # block padding byte build cat@20 3021 2052 bp1 @@ -426,56 +422,55 @@ cat@10 91251 1899 cat@5 91251 1899 ---- UnsafeSeparator(2) = "cat@5" -# index block header -# columnar block header -00-01: x 01 # version 1 -01-03: x 0400 # 4 columns -03-07: x 03000000 # 3 rows -07-08: b 00000011 # col 0: bytes -08-12: x 1b000000 # col 0: page start 27 -12-13: b 00000010 # col 1: uint -13-17: x 31000000 # col 1: page start 49 -17-18: b 00000010 # col 2: uint -18-22: x 40000000 # col 2: page start 64 -22-23: b 00000011 # col 3: bytes -23-27: x 48000000 # col 3: page start 72 -# data for column 0 -# rawbytes -# offsets table -27-28: x 01 # encoding: 1b -28-29: x 00 # data[0] = 0 [32 overall] -29-30: x 06 # data[1] = 6 [38 overall] -30-31: x 0c # data[2] = 12 [44 overall] -31-32: x 11 # data[3] = 17 [49 overall] -# data -32-38: x 636174403230 # data[0]: cat@20 -38-44: x 636174403130 # data[1]: cat@10 -44-49: x 6361744035 # data[2]: cat@5 -# data for column 1 -49-50: x 04 # encoding: 4b -50-52: x 0000 # padding (aligning to 32-bit boundary) -52-56: x cd0b0000 # data[0] = 3021 -56-60: x 73640100 # data[1] = 91251 -60-64: x 73640100 # data[2] = 91251 -# data for column 2 -64-65: x 02 # encoding: 2b -65-66: x 00 # padding (aligning to 16-bit boundary) -66-68: x 0408 # data[0] = 2052 -68-70: x 6b07 # data[1] = 1899 -70-72: x 6b07 # data[2] = 1899 -# data for column 3 -# rawbytes -# offsets table -72-73: x 01 # encoding: 1b -73-74: x 00 # data[0] = 0 [77 overall] -74-75: x 03 # data[1] = 3 [80 overall] -75-76: x 03 # data[2] = 3 [80 overall] -76-77: x 03 # data[3] = 3 [80 overall] -# data -77-80: x 627031 # data[0]: bp1 -80-80: x # data[1]: -80-80: x # data[2]: -80-81: x 00 # block padding byte +index-block-decoder + └── index block header + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0400 # 4 columns + │ ├── 03-07: x 03000000 # 3 rows + │ ├── 07-08: b 00000011 # col 0: bytes + │ ├── 08-12: x 1b000000 # col 0: page start 27 + │ ├── 12-13: b 00000010 # col 1: uint + │ ├── 13-17: x 31000000 # col 1: page start 49 + │ ├── 17-18: b 00000010 # col 2: uint + │ ├── 18-22: x 40000000 # col 2: page start 64 + │ ├── 22-23: b 00000011 # col 3: bytes + │ └── 23-27: x 48000000 # col 3: page start 72 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 27-28: x 01 # encoding: 1b + │ │ ├── 28-29: x 00 # data[0] = 0 [32 overall] + │ │ ├── 29-30: x 06 # data[1] = 6 [38 overall] + │ │ ├── 30-31: x 0c # data[2] = 12 [44 overall] + │ │ └── 31-32: x 11 # data[3] = 17 [49 overall] + │ └── data + │ ├── 32-38: x 636174403230 # data[0]: cat@20 + │ ├── 38-44: x 636174403130 # data[1]: cat@10 + │ └── 44-49: x 6361744035 # data[2]: cat@5 + ├── data for column 1 (uint) + │ ├── 49-50: x 04 # encoding: 4b + │ ├── 50-52: x 0000 # padding (aligning to 32-bit boundary) + │ ├── 52-56: x cd0b0000 # data[0] = 3021 + │ ├── 56-60: x 73640100 # data[1] = 91251 + │ └── 60-64: x 73640100 # data[2] = 91251 + ├── data for column 2 (uint) + │ ├── 64-65: x 02 # encoding: 2b + │ ├── 65-66: x 00 # padding (aligning to 16-bit boundary) + │ ├── 66-68: x 0408 # data[0] = 2052 + │ ├── 68-70: x 6b07 # data[1] = 1899 + │ └── 70-72: x 6b07 # data[2] = 1899 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 72-73: x 01 # encoding: 1b + │ │ ├── 73-74: x 00 # data[0] = 0 [77 overall] + │ │ ├── 74-75: x 03 # data[1] = 3 [80 overall] + │ │ ├── 75-76: x 03 # data[2] = 3 [80 overall] + │ │ └── 76-77: x 03 # data[3] = 3 [80 overall] + │ └── data + │ ├── 77-80: x 627031 # data[0]: bp1 + │ ├── 80-80: x # data[1]: + │ └── 80-80: x # data[2]: + └── 80-81: x 00 # block padding byte iter seek-ge cat @@ -503,60 +498,59 @@ abc 3 1 bp3 ad@5 4 1 bp4 ---- UnsafeSeparator(3) = "ad@5" -# index block header -# columnar block header -00-01: x 01 # version 1 -01-03: x 0400 # 4 columns -03-07: x 04000000 # 4 rows -07-08: b 00000011 # col 0: bytes -08-12: x 1b000000 # col 0: page start 27 -12-13: b 00000010 # col 1: uint -13-17: x 2f000000 # col 1: page start 47 -17-18: b 00000010 # col 2: uint -18-22: x 34000000 # col 2: page start 52 -22-23: b 00000011 # col 3: bytes -23-27: x 39000000 # col 3: page start 57 -# data for column 0 -# rawbytes -# offsets table -27-28: x 01 # encoding: 1b -28-29: x 00 # data[0] = 0 [33 overall] -29-30: x 02 # data[1] = 2 [35 overall] -30-31: x 07 # data[2] = 7 [40 overall] -31-32: x 0a # data[3] = 10 [43 overall] -32-33: x 0e # data[4] = 14 [47 overall] -# data -33-35: x 6161 # data[0]: aa -35-40: x 6162403130 # data[1]: ab@10 -40-43: x 616263 # data[2]: abc -43-47: x 61644035 # data[3]: ad@5 -# data for column 1 -47-48: x 01 # encoding: 1b -48-49: x 01 # data[0] = 1 -49-50: x 02 # data[1] = 2 -50-51: x 03 # data[2] = 3 -51-52: x 04 # data[3] = 4 -# data for column 2 -52-53: x 01 # encoding: 1b -53-54: x 01 # data[0] = 1 -54-55: x 01 # data[1] = 1 -55-56: x 01 # data[2] = 1 -56-57: x 01 # data[3] = 1 -# data for column 3 -# rawbytes -# offsets table -57-58: x 01 # encoding: 1b -58-59: x 00 # data[0] = 0 [63 overall] -59-60: x 03 # data[1] = 3 [66 overall] -60-61: x 06 # data[2] = 6 [69 overall] -61-62: x 09 # data[3] = 9 [72 overall] -62-63: x 0c # data[4] = 12 [75 overall] -# data -63-66: x 627031 # data[0]: bp1 -66-69: x 627032 # data[1]: bp2 -69-72: x 627033 # data[2]: bp3 -72-75: x 627034 # data[3]: bp4 -75-76: x 00 # block padding byte +index-block-decoder + └── index block header + ├── columnar block header + │ ├── 00-01: x 01 # version 1 + │ ├── 01-03: x 0400 # 4 columns + │ ├── 03-07: x 04000000 # 4 rows + │ ├── 07-08: b 00000011 # col 0: bytes + │ ├── 08-12: x 1b000000 # col 0: page start 27 + │ ├── 12-13: b 00000010 # col 1: uint + │ ├── 13-17: x 2f000000 # col 1: page start 47 + │ ├── 17-18: b 00000010 # col 2: uint + │ ├── 18-22: x 34000000 # col 2: page start 52 + │ ├── 22-23: b 00000011 # col 3: bytes + │ └── 23-27: x 39000000 # col 3: page start 57 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 27-28: x 01 # encoding: 1b + │ │ ├── 28-29: x 00 # data[0] = 0 [33 overall] + │ │ ├── 29-30: x 02 # data[1] = 2 [35 overall] + │ │ ├── 30-31: x 07 # data[2] = 7 [40 overall] + │ │ ├── 31-32: x 0a # data[3] = 10 [43 overall] + │ │ └── 32-33: x 0e # data[4] = 14 [47 overall] + │ └── data + │ ├── 33-35: x 6161 # data[0]: aa + │ ├── 35-40: x 6162403130 # data[1]: ab@10 + │ ├── 40-43: x 616263 # data[2]: abc + │ └── 43-47: x 61644035 # data[3]: ad@5 + ├── data for column 1 (uint) + │ ├── 47-48: x 01 # encoding: 1b + │ ├── 48-49: x 01 # data[0] = 1 + │ ├── 49-50: x 02 # data[1] = 2 + │ ├── 50-51: x 03 # data[2] = 3 + │ └── 51-52: x 04 # data[3] = 4 + ├── data for column 2 (uint) + │ ├── 52-53: x 01 # encoding: 1b + │ ├── 53-54: x 01 # data[0] = 1 + │ ├── 54-55: x 01 # data[1] = 1 + │ ├── 55-56: x 01 # data[2] = 1 + │ └── 56-57: x 01 # data[3] = 1 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 57-58: x 01 # encoding: 1b + │ │ ├── 58-59: x 00 # data[0] = 0 [63 overall] + │ │ ├── 59-60: x 03 # data[1] = 3 [66 overall] + │ │ ├── 60-61: x 06 # data[2] = 6 [69 overall] + │ │ ├── 61-62: x 09 # data[3] = 9 [72 overall] + │ │ └── 62-63: x 0c # data[4] = 12 [75 overall] + │ └── data + │ ├── 63-66: x 627031 # data[0]: bp1 + │ ├── 66-69: x 627032 # data[1]: bp2 + │ ├── 69-72: x 627033 # data[2]: bp3 + │ └── 72-75: x 627034 # data[3]: bp4 + └── 75-76: x 00 # block padding byte iter synthetic-prefix=foo- first diff --git a/sstable/colblk/testdata/keyspan_block b/sstable/colblk/testdata/keyspan_block index 0434fd6d8e..cd361d0d2e 100644 --- a/sstable/colblk/testdata/keyspan_block +++ b/sstable/colblk/testdata/keyspan_block @@ -50,80 +50,78 @@ size=73: finish ---- Boundaries: a#0,RANGEDEL — e#inf,RANGEDEL -# keyspan block header -00-04: x 05000000 # user key count: 5 -# columnar block header -04-05: x 01 # version 1 -05-07: x 0500 # 5 columns -07-11: x 07000000 # 7 rows -11-12: b 00000011 # col 0: bytes -12-16: x 24000000 # col 0: page start 36 -16-17: b 00000010 # col 1: uint -17-21: x 30000000 # col 1: page start 48 -21-22: b 00000010 # col 2: uint -22-26: x 36000000 # col 2: page start 54 -26-27: b 00000011 # col 3: bytes -27-31: x 46000000 # col 3: page start 70 -31-32: b 00000011 # col 4: bytes -32-36: x 47000000 # col 4: page start 71 -# data for column 0 -# rawbytes -# offsets table -36-37: x 01 # encoding: 1b -37-38: x 00 # data[0] = 0 [43 overall] -38-39: x 01 # data[1] = 1 [44 overall] -39-40: x 02 # data[2] = 2 [45 overall] -40-41: x 03 # data[3] = 3 [46 overall] -41-42: x 04 # data[4] = 4 [47 overall] -42-43: x 05 # data[5] = 5 [48 overall] -# data -43-44: x 61 # data[0]: a -44-45: x 62 # data[1]: b -45-46: x 63 # data[2]: c -46-47: x 64 # data[3]: d -47-48: x 65 # data[4]: e -# data for column 1 -48-49: x 01 # encoding: 1b -49-50: x 00 # data[0] = 0 -50-51: x 01 # data[1] = 1 -51-52: x 04 # data[2] = 4 -52-53: x 06 # data[3] = 6 -53-54: x 07 # data[4] = 7 -# data for column 2 -54-55: x 02 # encoding: 2b -55-56: x 00 # padding (aligning to 16-bit boundary) -56-58: x 0f00 # data[0] = 15 -58-60: x 0f64 # data[1] = 25615 -60-62: x 0f14 # data[2] = 5135 -62-64: x 0f00 # data[3] = 15 -64-66: x 0f64 # data[4] = 25615 -66-68: x 0f00 # data[5] = 15 -68-70: x 0f00 # data[6] = 15 -# data for column 3 -# rawbytes -# offsets table -70-71: x 00 # encoding: zero -# data -71-71: x # data[0]: -71-71: x # data[1]: -71-71: x # data[2]: -71-71: x # data[3]: -71-71: x # data[4]: -71-71: x # data[5]: -71-71: x # data[6]: -# data for column 4 -# rawbytes -# offsets table -71-72: x 00 # encoding: zero -# data -72-72: x # data[0]: -72-72: x # data[1]: -72-72: x # data[2]: -72-72: x # data[3]: -72-72: x # data[4]: -72-72: x # data[5]: -72-72: x # data[6]: -72-73: x 00 # block padding byte +keyspan-decoder + └── keyspan block header + ├── 00-04: x 05000000 # user key count: 5 + ├── columnar block header + │ ├── 04-05: x 01 # version 1 + │ ├── 05-07: x 0500 # 5 columns + │ ├── 07-11: x 07000000 # 7 rows + │ ├── 11-12: b 00000011 # col 0: bytes + │ ├── 12-16: x 24000000 # col 0: page start 36 + │ ├── 16-17: b 00000010 # col 1: uint + │ ├── 17-21: x 30000000 # col 1: page start 48 + │ ├── 21-22: b 00000010 # col 2: uint + │ ├── 22-26: x 36000000 # col 2: page start 54 + │ ├── 26-27: b 00000011 # col 3: bytes + │ ├── 27-31: x 46000000 # col 3: page start 70 + │ ├── 31-32: b 00000011 # col 4: bytes + │ └── 32-36: x 47000000 # col 4: page start 71 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 36-37: x 01 # encoding: 1b + │ │ ├── 37-38: x 00 # data[0] = 0 [43 overall] + │ │ ├── 38-39: x 01 # data[1] = 1 [44 overall] + │ │ ├── 39-40: x 02 # data[2] = 2 [45 overall] + │ │ ├── 40-41: x 03 # data[3] = 3 [46 overall] + │ │ ├── 41-42: x 04 # data[4] = 4 [47 overall] + │ │ └── 42-43: x 05 # data[5] = 5 [48 overall] + │ └── data + │ ├── 43-44: x 61 # data[0]: a + │ ├── 44-45: x 62 # data[1]: b + │ ├── 45-46: x 63 # data[2]: c + │ ├── 46-47: x 64 # data[3]: d + │ └── 47-48: x 65 # data[4]: e + ├── data for column 1 (uint) + │ ├── 48-49: x 01 # encoding: 1b + │ ├── 49-50: x 00 # data[0] = 0 + │ ├── 50-51: x 01 # data[1] = 1 + │ ├── 51-52: x 04 # data[2] = 4 + │ ├── 52-53: x 06 # data[3] = 6 + │ └── 53-54: x 07 # data[4] = 7 + ├── data for column 2 (uint) + │ ├── 54-55: x 02 # encoding: 2b + │ ├── 55-56: x 00 # padding (aligning to 16-bit boundary) + │ ├── 56-58: x 0f00 # data[0] = 15 + │ ├── 58-60: x 0f64 # data[1] = 25615 + │ ├── 60-62: x 0f14 # data[2] = 5135 + │ ├── 62-64: x 0f00 # data[3] = 15 + │ ├── 64-66: x 0f64 # data[4] = 25615 + │ ├── 66-68: x 0f00 # data[5] = 15 + │ └── 68-70: x 0f00 # data[6] = 15 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ └── 70-71: x 00 # encoding: zero + │ └── data + │ ├── 71-71: x # data[0]: + │ ├── 71-71: x # data[1]: + │ ├── 71-71: x # data[2]: + │ ├── 71-71: x # data[3]: + │ ├── 71-71: x # data[4]: + │ ├── 71-71: x # data[5]: + │ └── 71-71: x # data[6]: + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ └── 71-72: x 00 # encoding: zero + │ └── data + │ ├── 72-72: x # data[0]: + │ ├── 72-72: x # data[1]: + │ ├── 72-72: x # data[2]: + │ ├── 72-72: x # data[3]: + │ ├── 72-72: x # data[4]: + │ ├── 72-72: x # data[5]: + │ └── 72-72: x # data[6]: + └── 72-73: x 00 # block padding byte # Test iterating over the block's spans. @@ -244,56 +242,54 @@ size=70: finish ---- Boundaries: b#4,RANGEKEYSET — d#inf,RANGEKEYSET -# keyspan block header -00-04: x 02000000 # user key count: 2 -# columnar block header -04-05: x 01 # version 1 -05-07: x 0500 # 5 columns -07-11: x 01000000 # 1 rows -11-12: b 00000011 # col 0: bytes -12-16: x 24000000 # col 0: page start 36 -16-17: b 00000010 # col 1: uint -17-21: x 2a000000 # col 1: page start 42 -21-22: b 00000010 # col 2: uint -22-26: x 2d000000 # col 2: page start 45 -26-27: b 00000011 # col 3: bytes -27-31: x 36000000 # col 3: page start 54 -31-32: b 00000011 # col 4: bytes -32-36: x 3b000000 # col 4: page start 59 -# data for column 0 -# rawbytes -# offsets table -36-37: x 01 # encoding: 1b -37-38: x 00 # data[0] = 0 [40 overall] -38-39: x 01 # data[1] = 1 [41 overall] -39-40: x 02 # data[2] = 2 [42 overall] -# data -40-41: x 62 # data[0]: b -41-42: x 64 # data[1]: d -# data for column 1 -42-43: x 01 # encoding: 1b -43-44: x 00 # data[0] = 0 -44-45: x 01 # data[1] = 1 -# data for column 2 -45-46: x 80 # encoding: const -46-54: x 1504000000000000 # 64-bit constant: 1045 -# data for column 3 -# rawbytes -# offsets table -54-55: x 01 # encoding: 1b -55-56: x 00 # data[0] = 0 [57 overall] -56-57: x 02 # data[1] = 2 [59 overall] -# data -57-59: x 4033 # data[0]: @3 -# data for column 4 -# rawbytes -# offsets table -59-60: x 01 # encoding: 1b -60-61: x 00 # data[0] = 0 [62 overall] -61-62: x 07 # data[1] = 7 [69 overall] -# data -62-69: x 636f636f6e7574 # data[0]: coconut -69-70: x 00 # block padding byte +keyspan-decoder + └── keyspan block header + ├── 00-04: x 02000000 # user key count: 2 + ├── columnar block header + │ ├── 04-05: x 01 # version 1 + │ ├── 05-07: x 0500 # 5 columns + │ ├── 07-11: x 01000000 # 1 rows + │ ├── 11-12: b 00000011 # col 0: bytes + │ ├── 12-16: x 24000000 # col 0: page start 36 + │ ├── 16-17: b 00000010 # col 1: uint + │ ├── 17-21: x 2a000000 # col 1: page start 42 + │ ├── 21-22: b 00000010 # col 2: uint + │ ├── 22-26: x 2d000000 # col 2: page start 45 + │ ├── 26-27: b 00000011 # col 3: bytes + │ ├── 27-31: x 36000000 # col 3: page start 54 + │ ├── 31-32: b 00000011 # col 4: bytes + │ └── 32-36: x 3b000000 # col 4: page start 59 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 36-37: x 01 # encoding: 1b + │ │ ├── 37-38: x 00 # data[0] = 0 [40 overall] + │ │ ├── 38-39: x 01 # data[1] = 1 [41 overall] + │ │ └── 39-40: x 02 # data[2] = 2 [42 overall] + │ └── data + │ ├── 40-41: x 62 # data[0]: b + │ └── 41-42: x 64 # data[1]: d + ├── data for column 1 (uint) + │ ├── 42-43: x 01 # encoding: 1b + │ ├── 43-44: x 00 # data[0] = 0 + │ └── 44-45: x 01 # data[1] = 1 + ├── data for column 2 (uint) + │ ├── 45-46: x 80 # encoding: const + │ └── 46-54: x 1504000000000000 # 64-bit constant: 1045 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 54-55: x 01 # encoding: 1b + │ │ ├── 55-56: x 00 # data[0] = 0 [57 overall] + │ │ └── 56-57: x 02 # data[1] = 2 [59 overall] + │ └── data + │ └── 57-59: x 4033 # data[0]: @3 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 59-60: x 01 # encoding: 1b + │ │ ├── 60-61: x 00 # data[0] = 0 [62 overall] + │ │ └── 61-62: x 07 # data[1] = 7 [69 overall] + │ └── data + │ └── 62-69: x 636f636f6e7574 # data[0]: coconut + └── 69-70: x 00 # block padding byte iter seek-ge a @@ -331,67 +327,65 @@ size=80: finish ---- Boundaries: b#4,RANGEKEYSET — g#inf,RANGEKEYSET -# keyspan block header -00-04: x 04000000 # user key count: 4 -# columnar block header -04-05: x 01 # version 1 -05-07: x 0500 # 5 columns -07-11: x 02000000 # 2 rows -11-12: b 00000011 # col 0: bytes -12-16: x 24000000 # col 0: page start 36 -16-17: b 00000010 # col 1: uint -17-21: x 2e000000 # col 1: page start 46 -21-22: b 00000010 # col 2: uint -22-26: x 33000000 # col 2: page start 51 -26-27: b 00000011 # col 3: bytes -27-31: x 38000000 # col 3: page start 56 -31-32: b 00000011 # col 4: bytes -32-36: x 40000000 # col 4: page start 64 -# data for column 0 -# rawbytes -# offsets table -36-37: x 01 # encoding: 1b -37-38: x 00 # data[0] = 0 [42 overall] -38-39: x 01 # data[1] = 1 [43 overall] -39-40: x 02 # data[2] = 2 [44 overall] -40-41: x 03 # data[3] = 3 [45 overall] -41-42: x 04 # data[4] = 4 [46 overall] -# data -42-43: x 62 # data[0]: b -43-44: x 64 # data[1]: d -44-45: x 65 # data[2]: e -45-46: x 67 # data[3]: g -# data for column 1 -46-47: x 01 # encoding: 1b -47-48: x 00 # data[0] = 0 -48-49: x 01 # data[1] = 1 -49-50: x 01 # data[2] = 1 -50-51: x 02 # data[3] = 2 -# data for column 2 -51-52: x 02 # encoding: 2b -52-54: x 1504 # data[0] = 1045 -54-56: x 1505 # data[1] = 1301 -# data for column 3 -# rawbytes -# offsets table -56-57: x 01 # encoding: 1b -57-58: x 00 # data[0] = 0 [60 overall] -58-59: x 02 # data[1] = 2 [62 overall] -59-60: x 04 # data[2] = 4 [64 overall] -# data -60-62: x 4033 # data[0]: @3 -62-64: x 4031 # data[1]: @1 -# data for column 4 -# rawbytes -# offsets table -64-65: x 01 # encoding: 1b -65-66: x 00 # data[0] = 0 [68 overall] -66-67: x 07 # data[1] = 7 [75 overall] -67-68: x 0b # data[2] = 11 [79 overall] -# data -68-75: x 636f636f6e7574 # data[0]: coconut -75-79: x 74726565 # data[1]: tree -79-80: x 00 # block padding byte +keyspan-decoder + └── keyspan block header + ├── 00-04: x 04000000 # user key count: 4 + ├── columnar block header + │ ├── 04-05: x 01 # version 1 + │ ├── 05-07: x 0500 # 5 columns + │ ├── 07-11: x 02000000 # 2 rows + │ ├── 11-12: b 00000011 # col 0: bytes + │ ├── 12-16: x 24000000 # col 0: page start 36 + │ ├── 16-17: b 00000010 # col 1: uint + │ ├── 17-21: x 2e000000 # col 1: page start 46 + │ ├── 21-22: b 00000010 # col 2: uint + │ ├── 22-26: x 33000000 # col 2: page start 51 + │ ├── 26-27: b 00000011 # col 3: bytes + │ ├── 27-31: x 38000000 # col 3: page start 56 + │ ├── 31-32: b 00000011 # col 4: bytes + │ └── 32-36: x 40000000 # col 4: page start 64 + ├── data for column 0 (bytes) + │ ├── offsets table + │ │ ├── 36-37: x 01 # encoding: 1b + │ │ ├── 37-38: x 00 # data[0] = 0 [42 overall] + │ │ ├── 38-39: x 01 # data[1] = 1 [43 overall] + │ │ ├── 39-40: x 02 # data[2] = 2 [44 overall] + │ │ ├── 40-41: x 03 # data[3] = 3 [45 overall] + │ │ └── 41-42: x 04 # data[4] = 4 [46 overall] + │ └── data + │ ├── 42-43: x 62 # data[0]: b + │ ├── 43-44: x 64 # data[1]: d + │ ├── 44-45: x 65 # data[2]: e + │ └── 45-46: x 67 # data[3]: g + ├── data for column 1 (uint) + │ ├── 46-47: x 01 # encoding: 1b + │ ├── 47-48: x 00 # data[0] = 0 + │ ├── 48-49: x 01 # data[1] = 1 + │ ├── 49-50: x 01 # data[2] = 1 + │ └── 50-51: x 02 # data[3] = 2 + ├── data for column 2 (uint) + │ ├── 51-52: x 02 # encoding: 2b + │ ├── 52-54: x 1504 # data[0] = 1045 + │ └── 54-56: x 1505 # data[1] = 1301 + ├── data for column 3 (bytes) + │ ├── offsets table + │ │ ├── 56-57: x 01 # encoding: 1b + │ │ ├── 57-58: x 00 # data[0] = 0 [60 overall] + │ │ ├── 58-59: x 02 # data[1] = 2 [62 overall] + │ │ └── 59-60: x 04 # data[2] = 4 [64 overall] + │ └── data + │ ├── 60-62: x 4033 # data[0]: @3 + │ └── 62-64: x 4031 # data[1]: @1 + ├── data for column 4 (bytes) + │ ├── offsets table + │ │ ├── 64-65: x 01 # encoding: 1b + │ │ ├── 65-66: x 00 # data[0] = 0 [68 overall] + │ │ ├── 66-67: x 07 # data[1] = 7 [75 overall] + │ │ └── 67-68: x 0b # data[2] = 11 [79 overall] + │ └── data + │ ├── 68-75: x 636f636f6e7574 # data[0]: coconut + │ └── 75-79: x 74726565 # data[1]: tree + └── 79-80: x 00 # block padding byte iter seek-ge dog diff --git a/sstable/colblk/testdata/prefix_bytes b/sstable/colblk/testdata/prefix_bytes index b437b6dea2..9046b0d721 100644 --- a/sstable/colblk/testdata/prefix_bytes +++ b/sstable/colblk/testdata/prefix_bytes @@ -19,17 +19,17 @@ UnsafeGet(0) = abc finish rows=1 ---- -# PrefixBytes -0-1: x 02 # bundleSize: 4 -# Offsets table -1-2: x 01 # encoding: 1b -2-3: x 03 # data[0] = 3 [8 overall] -3-4: x 03 # data[1] = 3 [8 overall] -4-5: x 03 # data[2] = 3 [8 overall] -# Data -5-8: x 616263 # data[00]: abc (block prefix) -8-8: x # data[01]: ... (bundle prefix) -8-8: x # data[02]: ... +prefix-bytes + ├── 0-1: x 02 # bundle size: 4 + ├── offsets table + │ ├── 1-2: x 01 # encoding: 1b + │ ├── 2-3: x 03 # data[0] = 3 [8 overall] + │ ├── 3-4: x 03 # data[1] = 3 [8 overall] + │ └── 4-5: x 03 # data[2] = 3 [8 overall] + └── data + ├── 5-8: x 616263 # data[00]: abc (block prefix) + ├── 8-8: x # data[01]: ... (bundle prefix) + └── 8-8: x # data[02]: ... init bundle-size=4 ---- @@ -118,49 +118,49 @@ UnsafeGet(4) = abde finish rows=4 ---- -# PrefixBytes -00-01: x 02 # bundleSize: 4 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 02 # data[0] = 2 [10 overall] -03-04: x 02 # data[1] = 2 [10 overall] -04-05: x 03 # data[2] = 3 [11 overall] -05-06: x 05 # data[3] = 5 [13 overall] -06-07: x 07 # data[4] = 7 [15 overall] -07-08: x 09 # data[5] = 9 [17 overall] -# Data -08-10: x 6162 # data[00]: ab (block prefix) -10-10: x # data[01]: .. (bundle prefix) -10-11: x 63 # data[02]: ..c -11-13: x 6364 # data[03]: ..cd -13-15: x 6365 # data[04]: ..ce -15-17: x 6464 # data[05]: ..dd +prefix-bytes + ├── 00-01: x 02 # bundle size: 4 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 02 # data[0] = 2 [10 overall] + │ ├── 03-04: x 02 # data[1] = 2 [10 overall] + │ ├── 04-05: x 03 # data[2] = 3 [11 overall] + │ ├── 05-06: x 05 # data[3] = 5 [13 overall] + │ ├── 06-07: x 07 # data[4] = 7 [15 overall] + │ └── 07-08: x 09 # data[5] = 9 [17 overall] + └── data + ├── 08-10: x 6162 # data[00]: ab (block prefix) + ├── 10-10: x # data[01]: .. (bundle prefix) + ├── 10-11: x 63 # data[02]: ..c + ├── 11-13: x 6364 # data[03]: ..cd + ├── 13-15: x 6365 # data[04]: ..ce + └── 15-17: x 6464 # data[05]: ..dd # Finish the entirety of all put rows. finish rows=5 ---- -# PrefixBytes -00-01: x 02 # bundleSize: 4 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 02 # data[0] = 2 [12 overall] -03-04: x 02 # data[1] = 2 [12 overall] -04-05: x 03 # data[2] = 3 [13 overall] -05-06: x 05 # data[3] = 5 [15 overall] -06-07: x 07 # data[4] = 7 [17 overall] -07-08: x 09 # data[5] = 9 [19 overall] -08-09: x 0b # data[6] = 11 [21 overall] -09-10: x 0b # data[7] = 11 [21 overall] -# Data -10-12: x 6162 # data[00]: ab (block prefix) -12-12: x # data[01]: .. (bundle prefix) -12-13: x 63 # data[02]: ..c -13-15: x 6364 # data[03]: ..cd -15-17: x 6365 # data[04]: ..ce -17-19: x 6464 # data[05]: ..dd -19-21: x 6465 # data[06]: ..de (bundle prefix) -21-21: x # data[07]: .... +prefix-bytes + ├── 00-01: x 02 # bundle size: 4 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 02 # data[0] = 2 [12 overall] + │ ├── 03-04: x 02 # data[1] = 2 [12 overall] + │ ├── 04-05: x 03 # data[2] = 3 [13 overall] + │ ├── 05-06: x 05 # data[3] = 5 [15 overall] + │ ├── 06-07: x 07 # data[4] = 7 [17 overall] + │ ├── 07-08: x 09 # data[5] = 9 [19 overall] + │ ├── 08-09: x 0b # data[6] = 11 [21 overall] + │ └── 09-10: x 0b # data[7] = 11 [21 overall] + └── data + ├── 10-12: x 6162 # data[00]: ab (block prefix) + ├── 12-12: x # data[01]: .. (bundle prefix) + ├── 12-13: x 63 # data[02]: ..c + ├── 13-15: x 6364 # data[03]: ..cd + ├── 15-17: x 6365 # data[04]: ..ce + ├── 17-19: x 6464 # data[05]: ..dd + ├── 19-21: x 6465 # data[06]: ..de (bundle prefix) + └── 21-21: x # data[07]: .... get indices=(0, 1, 2, 3, 4) ---- @@ -408,49 +408,49 @@ ggggggggggggggggggggggggggggggggggggggggg finish rows=14 ---- -# PrefixBytes -00-01: x 02 # bundleSize: 4 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 02 # data[0] = 2 [23 overall] -03-04: x 07 # data[1] = 7 [28 overall] -04-05: x 07 # data[2] = 7 [28 overall] -05-06: x 08 # data[3] = 8 [29 overall] -06-07: x 0a # data[4] = 10 [31 overall] -07-08: x 0b # data[5] = 11 [32 overall] -08-09: x 0f # data[6] = 15 [36 overall] -09-10: x 13 # data[7] = 19 [40 overall] -10-11: x 13 # data[8] = 19 [40 overall] -11-12: x 13 # data[9] = 19 [40 overall] -12-13: x 16 # data[10] = 22 [43 overall] -13-14: x 18 # data[11] = 24 [45 overall] -14-15: x 1a # data[12] = 26 [47 overall] -15-16: x 1f # data[13] = 31 [52 overall] -16-17: x 1f # data[14] = 31 [52 overall] -17-18: x 20 # data[15] = 32 [53 overall] -18-19: x 27 # data[16] = 39 [60 overall] -19-20: x 27 # data[17] = 39 [60 overall] -20-21: x 27 # data[18] = 39 [60 overall] -# Data -21-23: x 6161 # data[00]: aa (block prefix) -23-28: x 6162626263 # data[01]: ..abbbc (bundle prefix) -28-28: x # data[02]: ....... -28-29: x 63 # data[03]: .......c -29-31: x 6465 # data[04]: .......de -31-32: x 65 # data[05]: .......e -32-36: x 61626262 # data[06]: ..abbb (bundle prefix) -36-40: x 6465652a # data[07]: ......dee* -40-40: x # data[08]: .......... -40-40: x # data[09]: .......... -40-43: x 656666 # data[10]: ......eff -43-45: x 6162 # data[11]: ..ab (bundle prefix) -45-47: x 6265 # data[12]: ....be -47-52: x 626565662a # data[13]: ....beef* -52-52: x # data[14]: ......... -52-53: x 63 # data[15]: ....c -53-60: x 6263636565662a # data[16]: ..bcceef* (bundle prefix) -60-60: x # data[17]: ......... -60-60: x # data[18]: ......... +prefix-bytes + ├── 00-01: x 02 # bundle size: 4 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 02 # data[0] = 2 [23 overall] + │ ├── 03-04: x 07 # data[1] = 7 [28 overall] + │ ├── 04-05: x 07 # data[2] = 7 [28 overall] + │ ├── 05-06: x 08 # data[3] = 8 [29 overall] + │ ├── 06-07: x 0a # data[4] = 10 [31 overall] + │ ├── 07-08: x 0b # data[5] = 11 [32 overall] + │ ├── 08-09: x 0f # data[6] = 15 [36 overall] + │ ├── 09-10: x 13 # data[7] = 19 [40 overall] + │ ├── 10-11: x 13 # data[8] = 19 [40 overall] + │ ├── 11-12: x 13 # data[9] = 19 [40 overall] + │ ├── 12-13: x 16 # data[10] = 22 [43 overall] + │ ├── 13-14: x 18 # data[11] = 24 [45 overall] + │ ├── 14-15: x 1a # data[12] = 26 [47 overall] + │ ├── 15-16: x 1f # data[13] = 31 [52 overall] + │ ├── 16-17: x 1f # data[14] = 31 [52 overall] + │ ├── 17-18: x 20 # data[15] = 32 [53 overall] + │ ├── 18-19: x 27 # data[16] = 39 [60 overall] + │ ├── 19-20: x 27 # data[17] = 39 [60 overall] + │ └── 20-21: x 27 # data[18] = 39 [60 overall] + └── data + ├── 21-23: x 6161 # data[00]: aa (block prefix) + ├── 23-28: x 6162626263 # data[01]: ..abbbc (bundle prefix) + ├── 28-28: x # data[02]: ....... + ├── 28-29: x 63 # data[03]: .......c + ├── 29-31: x 6465 # data[04]: .......de + ├── 31-32: x 65 # data[05]: .......e + ├── 32-36: x 61626262 # data[06]: ..abbb (bundle prefix) + ├── 36-40: x 6465652a # data[07]: ......dee* + ├── 40-40: x # data[08]: .......... + ├── 40-40: x # data[09]: .......... + ├── 40-43: x 656666 # data[10]: ......eff + ├── 43-45: x 6162 # data[11]: ..ab (bundle prefix) + ├── 45-47: x 6265 # data[12]: ....be + ├── 47-52: x 626565662a # data[13]: ....beef* + ├── 52-52: x # data[14]: ......... + ├── 52-53: x 63 # data[15]: ....c + ├── 53-60: x 6263636565662a # data[16]: ..bcceef* (bundle prefix) + ├── 60-60: x # data[17]: ......... + └── 60-60: x # data[18]: ......... get indices=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) @@ -515,63 +515,63 @@ bundle-prefixes finish rows=15 ---- -# PrefixBytes -000-001: x 02 # bundleSize: 4 -# Offsets table -001-002: x 02 # encoding: 2b -002-004: x 0200 # data[0] = 2 [44 overall] -004-006: x 0700 # data[1] = 7 [49 overall] -006-008: x 0700 # data[2] = 7 [49 overall] -008-010: x 0800 # data[3] = 8 [50 overall] -010-012: x 0a00 # data[4] = 10 [52 overall] -012-014: x 0b00 # data[5] = 11 [53 overall] -014-016: x 0f00 # data[6] = 15 [57 overall] -016-018: x 1300 # data[7] = 19 [61 overall] -018-020: x 1300 # data[8] = 19 [61 overall] -020-022: x 1300 # data[9] = 19 [61 overall] -022-024: x 1600 # data[10] = 22 [64 overall] -024-026: x 1800 # data[11] = 24 [66 overall] -026-028: x 1a00 # data[12] = 26 [68 overall] -028-030: x 1f00 # data[13] = 31 [73 overall] -030-032: x 1f00 # data[14] = 31 [73 overall] -032-034: x 2000 # data[15] = 32 [74 overall] -034-036: x 2500 # data[16] = 37 [79 overall] -036-038: x 2700 # data[17] = 39 [81 overall] -038-040: x 2700 # data[18] = 39 [81 overall] -040-042: x 2501 # data[19] = 293 [335 overall] -# Data -042-044: x 6161 # data[00]: aa (block prefix) -044-049: x 6162626263 # data[01]: ..abbbc (bundle prefix) -049-049: x # data[02]: ....... -049-050: x 63 # data[03]: .......c -050-052: x 6465 # data[04]: .......de -052-053: x 65 # data[05]: .......e -053-057: x 61626262 # data[06]: ..abbb (bundle prefix) -057-061: x 6465652a # data[07]: ......dee* -061-061: x # data[08]: .......... -061-061: x # data[09]: .......... -061-064: x 656666 # data[10]: ......eff -064-066: x 6162 # data[11]: ..ab (bundle prefix) -066-068: x 6265 # data[12]: ....be -068-073: x 626565662a # data[13]: ....beef* -073-073: x # data[14]: ......... -073-074: x 63 # data[15]: ....c -074-079: x 6263636565 # data[16]: ..bccee (bundle prefix) -079-081: x 662a # data[17]: .......f* -081-081: x # data[18]: ......... -081-101: x 6767676767676767676767676767676767676767 # data[19]: .......gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg -101-121: x 6767676767676767676767676767676767676767 # (continued...) -121-141: x 6767676767676767676767676767676767676767 # (continued...) -141-161: x 6767676767676767676767676767676767676767 # (continued...) -161-181: x 6767676767676767676767676767676767676767 # (continued...) -181-201: x 6767676767676767676767676767676767676767 # (continued...) -201-221: x 6767676767676767676767676767676767676767 # (continued...) -221-241: x 6767676767676767676767676767676767676767 # (continued...) -241-261: x 6767676767676767676767676767676767676767 # (continued...) -261-281: x 6767676767676767676767676767676767676767 # (continued...) -281-301: x 6767676767676767676767676767676767676767 # (continued...) -301-321: x 6767676767676767676767676767676767676767 # (continued...) -321-335: x 6767676767676767676767676767 # (continued...) +prefix-bytes + ├── 000-001: x 02 # bundle size: 4 + ├── offsets table + │ ├── 001-002: x 02 # encoding: 2b + │ ├── 002-004: x 0200 # data[0] = 2 [44 overall] + │ ├── 004-006: x 0700 # data[1] = 7 [49 overall] + │ ├── 006-008: x 0700 # data[2] = 7 [49 overall] + │ ├── 008-010: x 0800 # data[3] = 8 [50 overall] + │ ├── 010-012: x 0a00 # data[4] = 10 [52 overall] + │ ├── 012-014: x 0b00 # data[5] = 11 [53 overall] + │ ├── 014-016: x 0f00 # data[6] = 15 [57 overall] + │ ├── 016-018: x 1300 # data[7] = 19 [61 overall] + │ ├── 018-020: x 1300 # data[8] = 19 [61 overall] + │ ├── 020-022: x 1300 # data[9] = 19 [61 overall] + │ ├── 022-024: x 1600 # data[10] = 22 [64 overall] + │ ├── 024-026: x 1800 # data[11] = 24 [66 overall] + │ ├── 026-028: x 1a00 # data[12] = 26 [68 overall] + │ ├── 028-030: x 1f00 # data[13] = 31 [73 overall] + │ ├── 030-032: x 1f00 # data[14] = 31 [73 overall] + │ ├── 032-034: x 2000 # data[15] = 32 [74 overall] + │ ├── 034-036: x 2500 # data[16] = 37 [79 overall] + │ ├── 036-038: x 2700 # data[17] = 39 [81 overall] + │ ├── 038-040: x 2700 # data[18] = 39 [81 overall] + │ └── 040-042: x 2501 # data[19] = 293 [335 overall] + └── data + ├── 042-044: x 6161 # data[00]: aa (block prefix) + ├── 044-049: x 6162626263 # data[01]: ..abbbc (bundle prefix) + ├── 049-049: x # data[02]: ....... + ├── 049-050: x 63 # data[03]: .......c + ├── 050-052: x 6465 # data[04]: .......de + ├── 052-053: x 65 # data[05]: .......e + ├── 053-057: x 61626262 # data[06]: ..abbb (bundle prefix) + ├── 057-061: x 6465652a # data[07]: ......dee* + ├── 061-061: x # data[08]: .......... + ├── 061-061: x # data[09]: .......... + ├── 061-064: x 656666 # data[10]: ......eff + ├── 064-066: x 6162 # data[11]: ..ab (bundle prefix) + ├── 066-068: x 6265 # data[12]: ....be + ├── 068-073: x 626565662a # data[13]: ....beef* + ├── 073-073: x # data[14]: ......... + ├── 073-074: x 63 # data[15]: ....c + ├── 074-079: x 6263636565 # data[16]: ..bccee (bundle prefix) + ├── 079-081: x 662a # data[17]: .......f* + ├── 081-081: x # data[18]: ......... + ├── 081-101: x 6767676767676767676767676767676767676767 # data[19]: .......gggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg + ├── 101-121: x 6767676767676767676767676767676767676767 # (continued...) + ├── 121-141: x 6767676767676767676767676767676767676767 # (continued...) + ├── 141-161: x 6767676767676767676767676767676767676767 # (continued...) + ├── 161-181: x 6767676767676767676767676767676767676767 # (continued...) + ├── 181-201: x 6767676767676767676767676767676767676767 # (continued...) + ├── 201-221: x 6767676767676767676767676767676767676767 # (continued...) + ├── 221-241: x 6767676767676767676767676767676767676767 # (continued...) + ├── 241-261: x 6767676767676767676767676767676767676767 # (continued...) + ├── 261-281: x 6767676767676767676767676767676767676767 # (continued...) + ├── 281-301: x 6767676767676767676767676767676767676767 # (continued...) + ├── 301-321: x 6767676767676767676767676767676767676767 # (continued...) + └── 321-335: x 6767676767676767676767676767 # (continued...) init bundle-size=2 ---- @@ -607,111 +607,111 @@ faaabbeaaabbeef*aaabbeef*aaabcaabcceef*aabcceef* finish rows=14 ---- -# PrefixBytes -00-01: x 01 # bundleSize: 2 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 02 # data[0] = 2 [26 overall] -03-04: x 07 # data[1] = 7 [31 overall] -04-05: x 07 # data[2] = 7 [31 overall] -05-06: x 08 # data[3] = 8 [32 overall] -06-07: x 0d # data[4] = 13 [37 overall] -07-08: x 0f # data[5] = 15 [39 overall] -08-09: x 10 # data[6] = 16 [40 overall] -09-10: x 18 # data[7] = 24 [48 overall] -10-11: x 18 # data[8] = 24 [48 overall] -11-12: x 18 # data[9] = 24 [48 overall] -12-13: x 1c # data[10] = 28 [52 overall] -13-14: x 20 # data[11] = 32 [56 overall] -14-15: x 23 # data[12] = 35 [59 overall] -15-16: x 27 # data[13] = 39 [63 overall] -16-17: x 27 # data[14] = 39 [63 overall] -17-18: x 2a # data[15] = 42 [66 overall] -18-19: x 2c # data[16] = 44 [68 overall] -19-20: x 31 # data[17] = 49 [73 overall] -20-21: x 32 # data[18] = 50 [74 overall] -21-22: x 39 # data[19] = 57 [81 overall] -22-23: x 39 # data[20] = 57 [81 overall] -23-24: x 39 # data[21] = 57 [81 overall] -# Data -24-26: x 6161 # data[00]: aa (block prefix) -26-31: x 6162626263 # data[01]: ..abbbc (bundle prefix) -31-31: x # data[02]: ....... -31-32: x 63 # data[03]: .......c -32-37: x 6162626263 # data[04]: ..abbbc (bundle prefix) -37-39: x 6465 # data[05]: .......de -39-40: x 65 # data[06]: .......e -40-48: x 616262626465652a # data[07]: ..abbbdee* (bundle prefix) -48-48: x # data[08]: .......... -48-48: x # data[09]: .......... -48-52: x 61626262 # data[10]: ..abbb (bundle prefix) -52-56: x 6465652a # data[11]: ......dee* -56-59: x 656666 # data[12]: ......eff -59-63: x 61626265 # data[13]: ..abbe (bundle prefix) -63-63: x # data[14]: ...... -63-66: x 65662a # data[15]: ......ef* -66-68: x 6162 # data[16]: ..ab (bundle prefix) -68-73: x 626565662a # data[17]: ....beef* -73-74: x 63 # data[18]: ....c -74-81: x 6263636565662a # data[19]: ..bcceef* (bundle prefix) -81-81: x # data[20]: ......... -81-81: x # data[21]: ......... +prefix-bytes + ├── 00-01: x 01 # bundle size: 2 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 02 # data[0] = 2 [26 overall] + │ ├── 03-04: x 07 # data[1] = 7 [31 overall] + │ ├── 04-05: x 07 # data[2] = 7 [31 overall] + │ ├── 05-06: x 08 # data[3] = 8 [32 overall] + │ ├── 06-07: x 0d # data[4] = 13 [37 overall] + │ ├── 07-08: x 0f # data[5] = 15 [39 overall] + │ ├── 08-09: x 10 # data[6] = 16 [40 overall] + │ ├── 09-10: x 18 # data[7] = 24 [48 overall] + │ ├── 10-11: x 18 # data[8] = 24 [48 overall] + │ ├── 11-12: x 18 # data[9] = 24 [48 overall] + │ ├── 12-13: x 1c # data[10] = 28 [52 overall] + │ ├── 13-14: x 20 # data[11] = 32 [56 overall] + │ ├── 14-15: x 23 # data[12] = 35 [59 overall] + │ ├── 15-16: x 27 # data[13] = 39 [63 overall] + │ ├── 16-17: x 27 # data[14] = 39 [63 overall] + │ ├── 17-18: x 2a # data[15] = 42 [66 overall] + │ ├── 18-19: x 2c # data[16] = 44 [68 overall] + │ ├── 19-20: x 31 # data[17] = 49 [73 overall] + │ ├── 20-21: x 32 # data[18] = 50 [74 overall] + │ ├── 21-22: x 39 # data[19] = 57 [81 overall] + │ ├── 22-23: x 39 # data[20] = 57 [81 overall] + │ └── 23-24: x 39 # data[21] = 57 [81 overall] + └── data + ├── 24-26: x 6161 # data[00]: aa (block prefix) + ├── 26-31: x 6162626263 # data[01]: ..abbbc (bundle prefix) + ├── 31-31: x # data[02]: ....... + ├── 31-32: x 63 # data[03]: .......c + ├── 32-37: x 6162626263 # data[04]: ..abbbc (bundle prefix) + ├── 37-39: x 6465 # data[05]: .......de + ├── 39-40: x 65 # data[06]: .......e + ├── 40-48: x 616262626465652a # data[07]: ..abbbdee* (bundle prefix) + ├── 48-48: x # data[08]: .......... + ├── 48-48: x # data[09]: .......... + ├── 48-52: x 61626262 # data[10]: ..abbb (bundle prefix) + ├── 52-56: x 6465652a # data[11]: ......dee* + ├── 56-59: x 656666 # data[12]: ......eff + ├── 59-63: x 61626265 # data[13]: ..abbe (bundle prefix) + ├── 63-63: x # data[14]: ...... + ├── 63-66: x 65662a # data[15]: ......ef* + ├── 66-68: x 6162 # data[16]: ..ab (bundle prefix) + ├── 68-73: x 626565662a # data[17]: ....beef* + ├── 73-74: x 63 # data[18]: ....c + ├── 74-81: x 6263636565662a # data[19]: ..bcceef* (bundle prefix) + ├── 81-81: x # data[20]: ......... + └── 81-81: x # data[21]: ......... finish rows=15 ---- -# PrefixBytes -00-01: x 01 # bundleSize: 2 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 02 # data[0] = 2 [28 overall] -03-04: x 07 # data[1] = 7 [33 overall] -04-05: x 07 # data[2] = 7 [33 overall] -05-06: x 08 # data[3] = 8 [34 overall] -06-07: x 0d # data[4] = 13 [39 overall] -07-08: x 0f # data[5] = 15 [41 overall] -08-09: x 10 # data[6] = 16 [42 overall] -09-10: x 18 # data[7] = 24 [50 overall] -10-11: x 18 # data[8] = 24 [50 overall] -11-12: x 18 # data[9] = 24 [50 overall] -12-13: x 1c # data[10] = 28 [54 overall] -13-14: x 20 # data[11] = 32 [58 overall] -14-15: x 23 # data[12] = 35 [61 overall] -15-16: x 27 # data[13] = 39 [65 overall] -16-17: x 27 # data[14] = 39 [65 overall] -17-18: x 2a # data[15] = 42 [68 overall] -18-19: x 2c # data[16] = 44 [70 overall] -19-20: x 31 # data[17] = 49 [75 overall] -20-21: x 32 # data[18] = 50 [76 overall] -21-22: x 39 # data[19] = 57 [83 overall] -22-23: x 39 # data[20] = 57 [83 overall] -23-24: x 39 # data[21] = 57 [83 overall] -24-25: x 40 # data[22] = 64 [90 overall] -25-26: x 40 # data[23] = 64 [90 overall] -# Data -26-28: x 6161 # data[00]: aa (block prefix) -28-33: x 6162626263 # data[01]: ..abbbc (bundle prefix) -33-33: x # data[02]: ....... -33-34: x 63 # data[03]: .......c -34-39: x 6162626263 # data[04]: ..abbbc (bundle prefix) -39-41: x 6465 # data[05]: .......de -41-42: x 65 # data[06]: .......e -42-50: x 616262626465652a # data[07]: ..abbbdee* (bundle prefix) -50-50: x # data[08]: .......... -50-50: x # data[09]: .......... -50-54: x 61626262 # data[10]: ..abbb (bundle prefix) -54-58: x 6465652a # data[11]: ......dee* -58-61: x 656666 # data[12]: ......eff -61-65: x 61626265 # data[13]: ..abbe (bundle prefix) -65-65: x # data[14]: ...... -65-68: x 65662a # data[15]: ......ef* -68-70: x 6162 # data[16]: ..ab (bundle prefix) -70-75: x 626565662a # data[17]: ....beef* -75-76: x 63 # data[18]: ....c -76-83: x 6263636565662a # data[19]: ..bcceef* (bundle prefix) -83-83: x # data[20]: ......... -83-83: x # data[21]: ......... -83-90: x 6263636565662a # data[22]: ..bcceef* (bundle prefix) -90-90: x # data[23]: ......... +prefix-bytes + ├── 00-01: x 01 # bundle size: 2 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 02 # data[0] = 2 [28 overall] + │ ├── 03-04: x 07 # data[1] = 7 [33 overall] + │ ├── 04-05: x 07 # data[2] = 7 [33 overall] + │ ├── 05-06: x 08 # data[3] = 8 [34 overall] + │ ├── 06-07: x 0d # data[4] = 13 [39 overall] + │ ├── 07-08: x 0f # data[5] = 15 [41 overall] + │ ├── 08-09: x 10 # data[6] = 16 [42 overall] + │ ├── 09-10: x 18 # data[7] = 24 [50 overall] + │ ├── 10-11: x 18 # data[8] = 24 [50 overall] + │ ├── 11-12: x 18 # data[9] = 24 [50 overall] + │ ├── 12-13: x 1c # data[10] = 28 [54 overall] + │ ├── 13-14: x 20 # data[11] = 32 [58 overall] + │ ├── 14-15: x 23 # data[12] = 35 [61 overall] + │ ├── 15-16: x 27 # data[13] = 39 [65 overall] + │ ├── 16-17: x 27 # data[14] = 39 [65 overall] + │ ├── 17-18: x 2a # data[15] = 42 [68 overall] + │ ├── 18-19: x 2c # data[16] = 44 [70 overall] + │ ├── 19-20: x 31 # data[17] = 49 [75 overall] + │ ├── 20-21: x 32 # data[18] = 50 [76 overall] + │ ├── 21-22: x 39 # data[19] = 57 [83 overall] + │ ├── 22-23: x 39 # data[20] = 57 [83 overall] + │ ├── 23-24: x 39 # data[21] = 57 [83 overall] + │ ├── 24-25: x 40 # data[22] = 64 [90 overall] + │ └── 25-26: x 40 # data[23] = 64 [90 overall] + └── data + ├── 26-28: x 6161 # data[00]: aa (block prefix) + ├── 28-33: x 6162626263 # data[01]: ..abbbc (bundle prefix) + ├── 33-33: x # data[02]: ....... + ├── 33-34: x 63 # data[03]: .......c + ├── 34-39: x 6162626263 # data[04]: ..abbbc (bundle prefix) + ├── 39-41: x 6465 # data[05]: .......de + ├── 41-42: x 65 # data[06]: .......e + ├── 42-50: x 616262626465652a # data[07]: ..abbbdee* (bundle prefix) + ├── 50-50: x # data[08]: .......... + ├── 50-50: x # data[09]: .......... + ├── 50-54: x 61626262 # data[10]: ..abbb (bundle prefix) + ├── 54-58: x 6465652a # data[11]: ......dee* + ├── 58-61: x 656666 # data[12]: ......eff + ├── 61-65: x 61626265 # data[13]: ..abbe (bundle prefix) + ├── 65-65: x # data[14]: ...... + ├── 65-68: x 65662a # data[15]: ......ef* + ├── 68-70: x 6162 # data[16]: ..ab (bundle prefix) + ├── 70-75: x 626565662a # data[17]: ....beef* + ├── 75-76: x 63 # data[18]: ....c + ├── 76-83: x 6263636565662a # data[19]: ..bcceef* (bundle prefix) + ├── 83-83: x # data[20]: ......... + ├── 83-83: x # data[21]: ......... + ├── 83-90: x 6263636565662a # data[22]: ..bcceef* (bundle prefix) + └── 90-90: x # data[23]: ......... get indices=(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14) ---- @@ -753,21 +753,21 @@ abcdabceabcfabg finish rows=3 ---- -# PrefixBytes -00-01: x 02 # bundleSize: 4 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 03 # data[0] = 3 [10 overall] -03-04: x 03 # data[1] = 3 [10 overall] -04-05: x 04 # data[2] = 4 [11 overall] -05-06: x 05 # data[3] = 5 [12 overall] -06-07: x 06 # data[4] = 6 [13 overall] -# Data -07-10: x 616263 # data[00]: abc (block prefix) -10-10: x # data[01]: ... (bundle prefix) -10-11: x 64 # data[02]: ...d -11-12: x 65 # data[03]: ...e -12-13: x 66 # data[04]: ...f +prefix-bytes + ├── 00-01: x 02 # bundle size: 4 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 03 # data[0] = 3 [10 overall] + │ ├── 03-04: x 03 # data[1] = 3 [10 overall] + │ ├── 04-05: x 04 # data[2] = 4 [11 overall] + │ ├── 05-06: x 05 # data[3] = 5 [12 overall] + │ └── 06-07: x 06 # data[4] = 6 [13 overall] + └── data + ├── 07-10: x 616263 # data[00]: abc (block prefix) + ├── 10-10: x # data[01]: ... (bundle prefix) + ├── 10-11: x 64 # data[02]: ...d + ├── 11-12: x 65 # data[03]: ...e + └── 12-13: x 66 # data[04]: ...f # Try finishing without the last key which forces a shorter bundle prefix only. @@ -791,23 +791,23 @@ abadabaeabbfabc finish rows=3 ---- -# PrefixBytes -00-01: x 01 # bundleSize: 2 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 02 # data[0] = 2 [10 overall] -03-04: x 03 # data[1] = 3 [11 overall] -04-05: x 04 # data[2] = 4 [12 overall] -05-06: x 05 # data[3] = 5 [13 overall] -06-07: x 07 # data[4] = 7 [15 overall] -07-08: x 07 # data[5] = 7 [15 overall] -# Data -08-10: x 6162 # data[00]: ab (block prefix) -10-11: x 61 # data[01]: ..a (bundle prefix) -11-12: x 64 # data[02]: ...d -12-13: x 65 # data[03]: ...e -13-15: x 6266 # data[04]: ..bf (bundle prefix) -15-15: x # data[05]: .... +prefix-bytes + ├── 00-01: x 01 # bundle size: 2 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 02 # data[0] = 2 [10 overall] + │ ├── 03-04: x 03 # data[1] = 3 [11 overall] + │ ├── 04-05: x 04 # data[2] = 4 [12 overall] + │ ├── 05-06: x 05 # data[3] = 5 [13 overall] + │ ├── 06-07: x 07 # data[4] = 7 [15 overall] + │ └── 07-08: x 07 # data[5] = 7 [15 overall] + └── data + ├── 08-10: x 6162 # data[00]: ab (block prefix) + ├── 10-11: x 61 # data[01]: ..a (bundle prefix) + ├── 11-12: x 64 # data[02]: ...d + ├── 12-13: x 65 # data[03]: ...e + ├── 13-15: x 6266 # data[04]: ..bf (bundle prefix) + └── 15-15: x # data[05]: .... # Test strings long enough to force 16-bit offsets, and have zero-length block # and bundle prefixes. @@ -844,61 +844,61 @@ ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff finish rows=6 ---- -# PrefixBytes -000-001: x 01 # bundleSize: 2 -# Offsets table -001-002: x 02 # encoding: 2b -002-004: x 0000 # data[0] = 0 [22 overall] -004-006: x 0000 # data[1] = 0 [22 overall] -006-008: x 6e00 # data[2] = 110 [132 overall] -008-010: x dc00 # data[3] = 220 [242 overall] -010-012: x dc00 # data[4] = 220 [242 overall] -012-014: x 4a01 # data[5] = 330 [352 overall] -014-016: x b801 # data[6] = 440 [462 overall] -016-018: x b801 # data[7] = 440 [462 overall] -018-020: x 2602 # data[8] = 550 [572 overall] -020-022: x 9402 # data[9] = 660 [682 overall] -# Data -022-022: x # data[00]: (block prefix) -022-022: x # data[01]: (bundle prefix) -022-042: x 6161616161616161616161616161616161616161 # data[02]: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -042-062: x 6161616161616161616161616161616161616161 # (continued...) -062-082: x 6161616161616161616161616161616161616161 # (continued...) -082-102: x 6161616161616161616161616161616161616161 # (continued...) -102-122: x 6161616161616161616161616161616161616161 # (continued...) -122-132: x 61616161616161616161 # (continued...) -132-152: x 6262626262626262626262626262626262626262 # data[03]: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb -152-172: x 6262626262626262626262626262626262626262 # (continued...) -172-192: x 6262626262626262626262626262626262626262 # (continued...) -192-212: x 6262626262626262626262626262626262626262 # (continued...) -212-232: x 6262626262626262626262626262626262626262 # (continued...) -232-242: x 62626262626262626262 # (continued...) -242-242: x # data[04]: (bundle prefix) -242-262: x 6363636363636363636363636363636363636363 # data[05]: cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc -262-282: x 6363636363636363636363636363636363636363 # (continued...) -282-302: x 6363636363636363636363636363636363636363 # (continued...) -302-322: x 6363636363636363636363636363636363636363 # (continued...) -322-342: x 6363636363636363636363636363636363636363 # (continued...) -342-352: x 63636363636363636363 # (continued...) -352-372: x 6464646464646464646464646464646464646464 # data[06]: dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd -372-392: x 6464646464646464646464646464646464646464 # (continued...) -392-412: x 6464646464646464646464646464646464646464 # (continued...) -412-432: x 6464646464646464646464646464646464646464 # (continued...) -432-452: x 6464646464646464646464646464646464646464 # (continued...) -452-462: x 64646464646464646464 # (continued...) -462-462: x # data[07]: (bundle prefix) -462-482: x 6565656565656565656565656565656565656565 # data[08]: eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee -482-502: x 6565656565656565656565656565656565656565 # (continued...) -502-522: x 6565656565656565656565656565656565656565 # (continued...) -522-542: x 6565656565656565656565656565656565656565 # (continued...) -542-562: x 6565656565656565656565656565656565656565 # (continued...) -562-572: x 65656565656565656565 # (continued...) -572-592: x 6666666666666666666666666666666666666666 # data[09]: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -592-612: x 6666666666666666666666666666666666666666 # (continued...) -612-632: x 6666666666666666666666666666666666666666 # (continued...) -632-652: x 6666666666666666666666666666666666666666 # (continued...) -652-672: x 6666666666666666666666666666666666666666 # (continued...) -672-682: x 66666666666666666666 # (continued...) +prefix-bytes + ├── 000-001: x 01 # bundle size: 2 + ├── offsets table + │ ├── 001-002: x 02 # encoding: 2b + │ ├── 002-004: x 0000 # data[0] = 0 [22 overall] + │ ├── 004-006: x 0000 # data[1] = 0 [22 overall] + │ ├── 006-008: x 6e00 # data[2] = 110 [132 overall] + │ ├── 008-010: x dc00 # data[3] = 220 [242 overall] + │ ├── 010-012: x dc00 # data[4] = 220 [242 overall] + │ ├── 012-014: x 4a01 # data[5] = 330 [352 overall] + │ ├── 014-016: x b801 # data[6] = 440 [462 overall] + │ ├── 016-018: x b801 # data[7] = 440 [462 overall] + │ ├── 018-020: x 2602 # data[8] = 550 [572 overall] + │ └── 020-022: x 9402 # data[9] = 660 [682 overall] + └── data + ├── 022-022: x # data[00]: (block prefix) + ├── 022-022: x # data[01]: (bundle prefix) + ├── 022-042: x 6161616161616161616161616161616161616161 # data[02]: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ├── 042-062: x 6161616161616161616161616161616161616161 # (continued...) + ├── 062-082: x 6161616161616161616161616161616161616161 # (continued...) + ├── 082-102: x 6161616161616161616161616161616161616161 # (continued...) + ├── 102-122: x 6161616161616161616161616161616161616161 # (continued...) + ├── 122-132: x 61616161616161616161 # (continued...) + ├── 132-152: x 6262626262626262626262626262626262626262 # data[03]: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + ├── 152-172: x 6262626262626262626262626262626262626262 # (continued...) + ├── 172-192: x 6262626262626262626262626262626262626262 # (continued...) + ├── 192-212: x 6262626262626262626262626262626262626262 # (continued...) + ├── 212-232: x 6262626262626262626262626262626262626262 # (continued...) + ├── 232-242: x 62626262626262626262 # (continued...) + ├── 242-242: x # data[04]: (bundle prefix) + ├── 242-262: x 6363636363636363636363636363636363636363 # data[05]: cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc + ├── 262-282: x 6363636363636363636363636363636363636363 # (continued...) + ├── 282-302: x 6363636363636363636363636363636363636363 # (continued...) + ├── 302-322: x 6363636363636363636363636363636363636363 # (continued...) + ├── 322-342: x 6363636363636363636363636363636363636363 # (continued...) + ├── 342-352: x 63636363636363636363 # (continued...) + ├── 352-372: x 6464646464646464646464646464646464646464 # data[06]: dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd + ├── 372-392: x 6464646464646464646464646464646464646464 # (continued...) + ├── 392-412: x 6464646464646464646464646464646464646464 # (continued...) + ├── 412-432: x 6464646464646464646464646464646464646464 # (continued...) + ├── 432-452: x 6464646464646464646464646464646464646464 # (continued...) + ├── 452-462: x 64646464646464646464 # (continued...) + ├── 462-462: x # data[07]: (bundle prefix) + ├── 462-482: x 6565656565656565656565656565656565656565 # data[08]: eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee + ├── 482-502: x 6565656565656565656565656565656565656565 # (continued...) + ├── 502-522: x 6565656565656565656565656565656565656565 # (continued...) + ├── 522-542: x 6565656565656565656565656565656565656565 # (continued...) + ├── 542-562: x 6565656565656565656565656565656565656565 # (continued...) + ├── 562-572: x 65656565656565656565 # (continued...) + ├── 572-592: x 6666666666666666666666666666666666666666 # data[09]: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ├── 592-612: x 6666666666666666666666666666666666666666 # (continued...) + ├── 612-632: x 6666666666666666666666666666666666666666 # (continued...) + ├── 632-652: x 6666666666666666666666666666666666666666 # (continued...) + ├── 652-672: x 6666666666666666666666666666666666666666 # (continued...) + └── 672-682: x 66666666666666666666 # (continued...) get indices=(0, 1, 2, 3, 4, 5) ---- @@ -943,27 +943,27 @@ aaaaaaaaabaaaacaaaadaaaaeaab finish rows=5 ---- -# PrefixBytes -00-01: x 02 # bundleSize: 4 -# Offsets table -01-02: x 01 # encoding: 1b -02-03: x 04 # data[0] = 4 [14 overall] -03-04: x 04 # data[1] = 4 [14 overall] -04-05: x 05 # data[2] = 5 [15 overall] -05-06: x 06 # data[3] = 6 [16 overall] -06-07: x 07 # data[4] = 7 [17 overall] -07-08: x 08 # data[5] = 8 [18 overall] -08-09: x 09 # data[6] = 9 [19 overall] -09-10: x 09 # data[7] = 9 [19 overall] -# Data -10-14: x 61616161 # data[00]: aaaa (block prefix) -14-14: x # data[01]: .... (bundle prefix) -14-15: x 61 # data[02]: ....a -15-16: x 62 # data[03]: ....b -16-17: x 63 # data[04]: ....c -17-18: x 64 # data[05]: ....d -18-19: x 65 # data[06]: ....e (bundle prefix) -19-19: x # data[07]: ..... +prefix-bytes + ├── 00-01: x 02 # bundle size: 4 + ├── offsets table + │ ├── 01-02: x 01 # encoding: 1b + │ ├── 02-03: x 04 # data[0] = 4 [14 overall] + │ ├── 03-04: x 04 # data[1] = 4 [14 overall] + │ ├── 04-05: x 05 # data[2] = 5 [15 overall] + │ ├── 05-06: x 06 # data[3] = 6 [16 overall] + │ ├── 06-07: x 07 # data[4] = 7 [17 overall] + │ ├── 07-08: x 08 # data[5] = 8 [18 overall] + │ ├── 08-09: x 09 # data[6] = 9 [19 overall] + │ └── 09-10: x 09 # data[7] = 9 [19 overall] + └── data + ├── 10-14: x 61616161 # data[00]: aaaa (block prefix) + ├── 14-14: x # data[01]: .... (bundle prefix) + ├── 14-15: x 61 # data[02]: ....a + ├── 15-16: x 62 # data[03]: ....b + ├── 16-17: x 63 # data[04]: ....c + ├── 17-18: x 64 # data[05]: ....d + ├── 18-19: x 65 # data[06]: ....e (bundle prefix) + └── 19-19: x # data[07]: ..... init bundle-size=4 ---- diff --git a/sstable/colblk/testdata/raw_bytes b/sstable/colblk/testdata/raw_bytes index ce6f9cc7cc..a69a15ee45 100644 --- a/sstable/colblk/testdata/raw_bytes +++ b/sstable/colblk/testdata/raw_bytes @@ -3,63 +3,63 @@ build offset=0 a ---- -# rawbytes -# offsets table -0-1: x 01 # encoding: 1b -1-2: x 00 # data[0] = 0 [3 overall] -2-3: x 01 # data[1] = 1 [4 overall] -# data -3-4: x 61 # data[0]: a +raw-bytes + ├── offsets table + │ ├── 0-1: x 01 # encoding: 1b + │ ├── 1-2: x 00 # data[0] = 0 [3 overall] + │ └── 2-3: x 01 # data[1] = 1 [4 overall] + └── data + └── 3-4: x 61 # data[0]: a # Try the same thing, but with offsets 1, 2, 3, 4. build offset=1 a ---- -0-1: x 00 # start offset -# rawbytes -# offsets table -1-2: x 01 # encoding: 1b -2-3: x 00 # data[0] = 0 [4 overall] -3-4: x 01 # data[1] = 1 [5 overall] -# data -4-5: x 61 # data[0]: a +raw-bytes + ├── 0-1: x 00 # start offset + ├── offsets table + │ ├── 1-2: x 01 # encoding: 1b + │ ├── 2-3: x 00 # data[0] = 0 [4 overall] + │ └── 3-4: x 01 # data[1] = 1 [5 overall] + └── data + └── 4-5: x 61 # data[0]: a build offset=2 a ---- -0-2: x 0000 # start offset -# rawbytes -# offsets table -2-3: x 01 # encoding: 1b -3-4: x 00 # data[0] = 0 [5 overall] -4-5: x 01 # data[1] = 1 [6 overall] -# data -5-6: x 61 # data[0]: a +raw-bytes + ├── 0-2: x 0000 # start offset + ├── offsets table + │ ├── 2-3: x 01 # encoding: 1b + │ ├── 3-4: x 00 # data[0] = 0 [5 overall] + │ └── 4-5: x 01 # data[1] = 1 [6 overall] + └── data + └── 5-6: x 61 # data[0]: a build offset=3 a ---- -0-3: x 000000 # start offset -# rawbytes -# offsets table -3-4: x 01 # encoding: 1b -4-5: x 00 # data[0] = 0 [6 overall] -5-6: x 01 # data[1] = 1 [7 overall] -# data -6-7: x 61 # data[0]: a +raw-bytes + ├── 0-3: x 000000 # start offset + ├── offsets table + │ ├── 3-4: x 01 # encoding: 1b + │ ├── 4-5: x 00 # data[0] = 0 [6 overall] + │ └── 5-6: x 01 # data[1] = 1 [7 overall] + └── data + └── 6-7: x 61 # data[0]: a build offset=4 a ---- -00-04: x 00000000 # start offset -# rawbytes -# offsets table -04-05: x 01 # encoding: 1b -05-06: x 00 # data[0] = 0 [7 overall] -06-07: x 01 # data[1] = 1 [8 overall] -# data -07-08: x 61 # data[0]: a +raw-bytes + ├── 00-04: x 00000000 # start offset + ├── offsets table + │ ├── 04-05: x 01 # encoding: 1b + │ ├── 05-06: x 00 # data[0] = 0 [7 overall] + │ └── 06-07: x 01 # data[1] = 1 [8 overall] + └── data + └── 07-08: x 61 # data[0]: a # Create a RawBytes with two byte slices: 'a' and 'b'. @@ -67,60 +67,60 @@ build offset=0 a b ---- -# rawbytes -# offsets table -0-1: x 01 # encoding: 1b -1-2: x 00 # data[0] = 0 [4 overall] -2-3: x 01 # data[1] = 1 [5 overall] -3-4: x 02 # data[2] = 2 [6 overall] -# data -4-5: x 61 # data[0]: a -5-6: x 62 # data[1]: b +raw-bytes + ├── offsets table + │ ├── 0-1: x 01 # encoding: 1b + │ ├── 1-2: x 00 # data[0] = 0 [4 overall] + │ ├── 2-3: x 01 # data[1] = 1 [5 overall] + │ └── 3-4: x 02 # data[2] = 2 [6 overall] + └── data + ├── 4-5: x 61 # data[0]: a + └── 5-6: x 62 # data[1]: b build offset=0 a ab abc ---- -# rawbytes -# offsets table -00-01: x 01 # encoding: 1b -01-02: x 00 # data[0] = 0 [5 overall] -02-03: x 01 # data[1] = 1 [6 overall] -03-04: x 03 # data[2] = 3 [8 overall] -04-05: x 06 # data[3] = 6 [11 overall] -# data -05-06: x 61 # data[0]: a -06-08: x 6162 # data[1]: ab -08-11: x 616263 # data[2]: abc +raw-bytes + ├── offsets table + │ ├── 00-01: x 01 # encoding: 1b + │ ├── 01-02: x 00 # data[0] = 0 [5 overall] + │ ├── 02-03: x 01 # data[1] = 1 [6 overall] + │ ├── 03-04: x 03 # data[2] = 3 [8 overall] + │ └── 04-05: x 06 # data[3] = 6 [11 overall] + └── data + ├── 05-06: x 61 # data[0]: a + ├── 06-08: x 6162 # data[1]: ab + └── 08-11: x 616263 # data[2]: abc build offset=0 aaabbbc ---- -# rawbytes -# offsets table -0-1: x 01 # encoding: 1b -1-2: x 00 # data[0] = 0 [3 overall] -2-3: x 07 # data[1] = 7 [10 overall] -# data -3-10: x 61616162626263 # data[0]: aaabbbc +raw-bytes + ├── offsets table + │ ├── 0-1: x 01 # encoding: 1b + │ ├── 1-2: x 00 # data[0] = 0 [3 overall] + │ └── 2-3: x 07 # data[1] = 7 [10 overall] + └── data + └── 3-10: x 61616162626263 # data[0]: aaabbbc build offset=0 a ab abc ---- -# rawbytes -# offsets table -00-01: x 01 # encoding: 1b -01-02: x 00 # data[0] = 0 [5 overall] -02-03: x 01 # data[1] = 1 [6 overall] -03-04: x 03 # data[2] = 3 [8 overall] -04-05: x 06 # data[3] = 6 [11 overall] -# data -05-06: x 61 # data[0]: a -06-08: x 6162 # data[1]: ab -08-11: x 616263 # data[2]: abc +raw-bytes + ├── offsets table + │ ├── 00-01: x 01 # encoding: 1b + │ ├── 01-02: x 00 # data[0] = 0 [5 overall] + │ ├── 02-03: x 01 # data[1] = 1 [6 overall] + │ ├── 03-04: x 03 # data[2] = 3 [8 overall] + │ └── 04-05: x 06 # data[3] = 6 [11 overall] + └── data + ├── 05-06: x 61 # data[0]: a + ├── 06-08: x 6162 # data[1]: ab + └── 08-11: x 616263 # data[2]: abc at indices=(0, 1, 2) ---- @@ -139,29 +139,29 @@ cantelope lettuce kale ---- -# rawbytes -# offsets table -00-01: x 01 # encoding: 1b -01-02: x 00 # data[0] = 0 [11 overall] -02-03: x 03 # data[1] = 3 [14 overall] -03-04: x 09 # data[2] = 9 [20 overall] -04-05: x 11 # data[3] = 17 [28 overall] -05-06: x 16 # data[4] = 22 [33 overall] -06-07: x 1b # data[5] = 27 [38 overall] -07-08: x 21 # data[6] = 33 [44 overall] -08-09: x 2a # data[7] = 42 [53 overall] -09-10: x 31 # data[8] = 49 [60 overall] -10-11: x 35 # data[9] = 53 [64 overall] -# data -11-14: x 636174 # data[0]: cat -14-20: x 6f72616e6765 # data[1]: orange -20-28: x 7a75636368696e69 # data[2]: zucchini -28-33: x 6c656d6f6e # data[3]: lemon -33-38: x 6170706c65 # data[4]: apple -38-44: x 62616e616e61 # data[5]: banana -44-53: x 63616e74656c6f7065 # data[6]: cantelope -53-60: x 6c657474756365 # data[7]: lettuce -60-64: x 6b616c65 # data[8]: kale +raw-bytes + ├── offsets table + │ ├── 00-01: x 01 # encoding: 1b + │ ├── 01-02: x 00 # data[0] = 0 [11 overall] + │ ├── 02-03: x 03 # data[1] = 3 [14 overall] + │ ├── 03-04: x 09 # data[2] = 9 [20 overall] + │ ├── 04-05: x 11 # data[3] = 17 [28 overall] + │ ├── 05-06: x 16 # data[4] = 22 [33 overall] + │ ├── 06-07: x 1b # data[5] = 27 [38 overall] + │ ├── 07-08: x 21 # data[6] = 33 [44 overall] + │ ├── 08-09: x 2a # data[7] = 42 [53 overall] + │ ├── 09-10: x 31 # data[8] = 49 [60 overall] + │ └── 10-11: x 35 # data[9] = 53 [64 overall] + └── data + ├── 11-14: x 636174 # data[0]: cat + ├── 14-20: x 6f72616e6765 # data[1]: orange + ├── 20-28: x 7a75636368696e69 # data[2]: zucchini + ├── 28-33: x 6c656d6f6e # data[3]: lemon + ├── 33-38: x 6170706c65 # data[4]: apple + ├── 38-44: x 62616e616e61 # data[5]: banana + ├── 44-53: x 63616e74656c6f7065 # data[6]: cantelope + ├── 53-60: x 6c657474756365 # data[7]: lettuce + └── 60-64: x 6b616c65 # data[8]: kale at indices=(0, 1, 2, 3, 4, 5, 6, 7, 8) ---- @@ -188,19 +188,19 @@ cantelope lettuce kale ---- -# rawbytes -# offsets table -00-01: x 01 # encoding: 1b -01-02: x 00 # data[0] = 0 [6 overall] -02-03: x 03 # data[1] = 3 [9 overall] -03-04: x 09 # data[2] = 9 [15 overall] -04-05: x 11 # data[3] = 17 [23 overall] -05-06: x 16 # data[4] = 22 [28 overall] -# data -06-09: x 636174 # data[0]: cat -09-15: x 6f72616e6765 # data[1]: orange -15-23: x 7a75636368696e69 # data[2]: zucchini -23-28: x 6c656d6f6e # data[3]: lemon +raw-bytes + ├── offsets table + │ ├── 00-01: x 01 # encoding: 1b + │ ├── 01-02: x 00 # data[0] = 0 [6 overall] + │ ├── 02-03: x 03 # data[1] = 3 [9 overall] + │ ├── 03-04: x 09 # data[2] = 9 [15 overall] + │ ├── 04-05: x 11 # data[3] = 17 [23 overall] + │ └── 05-06: x 16 # data[4] = 22 [28 overall] + └── data + ├── 06-09: x 636174 # data[0]: cat + ├── 09-15: x 6f72616e6765 # data[1]: orange + ├── 15-23: x 7a75636368696e69 # data[2]: zucchini + └── 23-28: x 6c656d6f6e # data[3]: lemon at indices=(0, 1, 2, 3) ---- @@ -214,3 +214,4 @@ lemon build offset=0 ---- +raw-bytes diff --git a/sstable/colblk/testdata/uints b/sstable/colblk/testdata/uints index e75cf3209d..95f21f699b 100644 --- a/sstable/colblk/testdata/uints +++ b/sstable/colblk/testdata/uints @@ -21,11 +21,13 @@ b.Get(99) = 0 finish rows=100 ---- -0-1: x 00 # encoding: zero +uints + └── 0-1: x 00 # encoding: zero finish rows=10 ---- -0-1: x 00 # encoding: zero +uints + └── 0-1: x 00 # encoding: zero init ---- @@ -54,7 +56,8 @@ Size(0, 0) = 0 finish rows=8 ---- -0-1: x 00 # encoding: zero +uints + └── 0-1: x 00 # encoding: zero write 5:10 @@ -84,15 +87,16 @@ b.Get(7) = 10 # Check width=8 encoding. finish rows=8 ---- -0-1: x 01 # encoding: 1b -1-2: x 00 # data[0] = 0 -2-3: x 00 # data[1] = 0 -3-4: x 00 # data[2] = 0 -4-5: x 00 # data[3] = 0 -5-6: x 00 # data[4] = 0 -6-7: x 0a # data[5] = 10 -7-8: x 00 # data[6] = 0 -8-9: x 0a # data[7] = 10 +uints + ├── 0-1: x 01 # encoding: 1b + ├── 1-2: x 00 # data[0] = 0 + ├── 2-3: x 00 # data[1] = 0 + ├── 3-4: x 00 # data[2] = 0 + ├── 4-5: x 00 # data[3] = 0 + ├── 5-6: x 00 # data[4] = 0 + ├── 6-7: x 0a # data[5] = 10 + ├── 7-8: x 00 # data[6] = 0 + └── 8-9: x 0a # data[7] = 10 # Add 1000 which should force a 16-bit encoding. @@ -134,18 +138,19 @@ Size(8, 0) = 9 finish rows=10 ---- -00-01: x 02 # encoding: 2b -01-02: x 00 # padding (aligning to 16-bit boundary) -02-04: x 0000 # data[0] = 0 -04-06: x 0000 # data[1] = 0 -06-08: x 0000 # data[2] = 0 -08-10: x 0000 # data[3] = 0 -10-12: x 0000 # data[4] = 0 -12-14: x 0a00 # data[5] = 10 -14-16: x 0000 # data[6] = 0 -16-18: x 0a00 # data[7] = 10 -18-20: x e803 # data[8] = 1000 -20-22: x ffff # data[9] = 65535 +uints + ├── 00-01: x 02 # encoding: 2b + ├── 01-02: x 00 # padding (aligning to 16-bit boundary) + ├── 02-04: x 0000 # data[0] = 0 + ├── 04-06: x 0000 # data[1] = 0 + ├── 06-08: x 0000 # data[2] = 0 + ├── 08-10: x 0000 # data[3] = 0 + ├── 10-12: x 0000 # data[4] = 0 + ├── 12-14: x 0a00 # data[5] = 10 + ├── 14-16: x 0000 # data[6] = 0 + ├── 16-18: x 0a00 # data[7] = 10 + ├── 18-20: x e803 # data[8] = 1000 + └── 20-22: x ffff # data[9] = 65535 # 2^16 should trigger a 32-bit encoding. # @@ -176,20 +181,21 @@ Size(8, 0) = 9 finish rows=12 ---- -00-01: x 04 # encoding: 4b -01-04: x 000000 # padding (aligning to 32-bit boundary) -04-08: x 00000000 # data[0] = 0 -08-12: x 00000000 # data[1] = 0 -12-16: x 00000000 # data[2] = 0 -16-20: x 00000000 # data[3] = 0 -20-24: x 00000000 # data[4] = 0 -24-28: x 0a000000 # data[5] = 10 -28-32: x 00000000 # data[6] = 0 -32-36: x 0a000000 # data[7] = 10 -36-40: x e8030000 # data[8] = 1000 -40-44: x ffff0000 # data[9] = 65535 -44-48: x 00000100 # data[10] = 65536 -48-52: x ffffffff # data[11] = 4294967295 +uints + ├── 00-01: x 04 # encoding: 4b + ├── 01-04: x 000000 # padding (aligning to 32-bit boundary) + ├── 04-08: x 00000000 # data[0] = 0 + ├── 08-12: x 00000000 # data[1] = 0 + ├── 12-16: x 00000000 # data[2] = 0 + ├── 16-20: x 00000000 # data[3] = 0 + ├── 20-24: x 00000000 # data[4] = 0 + ├── 24-28: x 0a000000 # data[5] = 10 + ├── 28-32: x 00000000 # data[6] = 0 + ├── 32-36: x 0a000000 # data[7] = 10 + ├── 36-40: x e8030000 # data[8] = 1000 + ├── 40-44: x ffff0000 # data[9] = 65535 + ├── 44-48: x 00000100 # data[10] = 65536 + └── 48-52: x ffffffff # data[11] = 4294967295 # 2^32 should trigger a 64-bit encoding. # @@ -208,21 +214,22 @@ Size(8, 0) = 9 finish rows=13 ---- -000-001: x 08 # encoding: 8b -001-008: x 00000000000000 # padding (aligning to 64-bit boundary) -008-016: x 0000000000000000 # data[0] = 0 -016-024: x 0000000000000000 # data[1] = 0 -024-032: x 0000000000000000 # data[2] = 0 -032-040: x 0000000000000000 # data[3] = 0 -040-048: x 0000000000000000 # data[4] = 0 -048-056: x 0a00000000000000 # data[5] = 10 -056-064: x 0000000000000000 # data[6] = 0 -064-072: x 0a00000000000000 # data[7] = 10 -072-080: x e803000000000000 # data[8] = 1000 -080-088: x ffff000000000000 # data[9] = 65535 -088-096: x 0000010000000000 # data[10] = 65536 -096-104: x ffffffff00000000 # data[11] = 4294967295 -104-112: x 0000000001000000 # data[12] = 4294967296 +uints + ├── 000-001: x 08 # encoding: 8b + ├── 001-008: x 00000000000000 # padding (aligning to 64-bit boundary) + ├── 008-016: x 0000000000000000 # data[0] = 0 + ├── 016-024: x 0000000000000000 # data[1] = 0 + ├── 024-032: x 0000000000000000 # data[2] = 0 + ├── 032-040: x 0000000000000000 # data[3] = 0 + ├── 040-048: x 0000000000000000 # data[4] = 0 + ├── 048-056: x 0a00000000000000 # data[5] = 10 + ├── 056-064: x 0000000000000000 # data[6] = 0 + ├── 064-072: x 0a00000000000000 # data[7] = 10 + ├── 072-080: x e803000000000000 # data[8] = 1000 + ├── 080-088: x ffff000000000000 # data[9] = 65535 + ├── 088-096: x 0000010000000000 # data[10] = 65536 + ├── 096-104: x ffffffff00000000 # data[11] = 4294967295 + └── 104-112: x 0000000001000000 # data[12] = 4294967296 # Repeat the above tests but with a zero default value, and without explicitly # setting any of the zero values. @@ -265,15 +272,16 @@ Size(0, 0) = 0 # Finish the b8 so we can test 16-bit encoding. finish rows=8 ---- -0-1: x 01 # encoding: 1b -1-2: x 00 # data[0] = 0 -2-3: x 00 # data[1] = 0 -3-4: x 00 # data[2] = 0 -4-5: x 00 # data[3] = 0 -5-6: x 00 # data[4] = 0 -6-7: x 0a # data[5] = 10 -7-8: x 00 # data[6] = 0 -8-9: x 0a # data[7] = 10 +uints + ├── 0-1: x 01 # encoding: 1b + ├── 1-2: x 00 # data[0] = 0 + ├── 2-3: x 00 # data[1] = 0 + ├── 3-4: x 00 # data[2] = 0 + ├── 4-5: x 00 # data[3] = 0 + ├── 5-6: x 00 # data[4] = 0 + ├── 6-7: x 0a # data[5] = 10 + ├── 7-8: x 00 # data[6] = 0 + └── 8-9: x 0a # data[7] = 10 # Add 1000 which should force a 16-bit delta encoding. @@ -300,18 +308,19 @@ Size(8, 0) = 9 finish rows=10 ---- -00-01: x 02 # encoding: 2b -01-02: x 00 # padding (aligning to 16-bit boundary) -02-04: x 0000 # data[0] = 0 -04-06: x 0000 # data[1] = 0 -06-08: x 0000 # data[2] = 0 -08-10: x 0000 # data[3] = 0 -10-12: x 0000 # data[4] = 0 -12-14: x 0a00 # data[5] = 10 -14-16: x 0000 # data[6] = 0 -16-18: x 0a00 # data[7] = 10 -18-20: x e803 # data[8] = 1000 -20-22: x ffff # data[9] = 65535 +uints + ├── 00-01: x 02 # encoding: 2b + ├── 01-02: x 00 # padding (aligning to 16-bit boundary) + ├── 02-04: x 0000 # data[0] = 0 + ├── 04-06: x 0000 # data[1] = 0 + ├── 06-08: x 0000 # data[2] = 0 + ├── 08-10: x 0000 # data[3] = 0 + ├── 10-12: x 0000 # data[4] = 0 + ├── 12-14: x 0a00 # data[5] = 10 + ├── 14-16: x 0000 # data[6] = 0 + ├── 16-18: x 0a00 # data[7] = 10 + ├── 18-20: x e803 # data[8] = 1000 + └── 20-22: x ffff # data[9] = 65535 # 2^16 should trigger a 32-bit encoding. @@ -342,20 +351,21 @@ Size(8, 0) = 9 finish rows=12 ---- -00-01: x 04 # encoding: 4b -01-04: x 000000 # padding (aligning to 32-bit boundary) -04-08: x 00000000 # data[0] = 0 -08-12: x 00000000 # data[1] = 0 -12-16: x 00000000 # data[2] = 0 -16-20: x 00000000 # data[3] = 0 -20-24: x 00000000 # data[4] = 0 -24-28: x 0a000000 # data[5] = 10 -28-32: x 00000000 # data[6] = 0 -32-36: x 0a000000 # data[7] = 10 -36-40: x e8030000 # data[8] = 1000 -40-44: x ffff0000 # data[9] = 65535 -44-48: x 00000100 # data[10] = 65536 -48-52: x ffffffff # data[11] = 4294967295 +uints + ├── 00-01: x 04 # encoding: 4b + ├── 01-04: x 000000 # padding (aligning to 32-bit boundary) + ├── 04-08: x 00000000 # data[0] = 0 + ├── 08-12: x 00000000 # data[1] = 0 + ├── 12-16: x 00000000 # data[2] = 0 + ├── 16-20: x 00000000 # data[3] = 0 + ├── 20-24: x 00000000 # data[4] = 0 + ├── 24-28: x 0a000000 # data[5] = 10 + ├── 28-32: x 00000000 # data[6] = 0 + ├── 32-36: x 0a000000 # data[7] = 10 + ├── 36-40: x e8030000 # data[8] = 1000 + ├── 40-44: x ffff0000 # data[9] = 65535 + ├── 44-48: x 00000100 # data[10] = 65536 + └── 48-52: x ffffffff # data[11] = 4294967295 # 2^32 should trigger a 64-bit encoding. @@ -374,21 +384,22 @@ Size(8, 0) = 9 finish rows=13 ---- -000-001: x 08 # encoding: 8b -001-008: x 00000000000000 # padding (aligning to 64-bit boundary) -008-016: x 0000000000000000 # data[0] = 0 -016-024: x 0000000000000000 # data[1] = 0 -024-032: x 0000000000000000 # data[2] = 0 -032-040: x 0000000000000000 # data[3] = 0 -040-048: x 0000000000000000 # data[4] = 0 -048-056: x 0a00000000000000 # data[5] = 10 -056-064: x 0000000000000000 # data[6] = 0 -064-072: x 0a00000000000000 # data[7] = 10 -072-080: x e803000000000000 # data[8] = 1000 -080-088: x ffff000000000000 # data[9] = 65535 -088-096: x 0000010000000000 # data[10] = 65536 -096-104: x ffffffff00000000 # data[11] = 4294967295 -104-112: x 0000000001000000 # data[12] = 4294967296 +uints + ├── 000-001: x 08 # encoding: 8b + ├── 001-008: x 00000000000000 # padding (aligning to 64-bit boundary) + ├── 008-016: x 0000000000000000 # data[0] = 0 + ├── 016-024: x 0000000000000000 # data[1] = 0 + ├── 024-032: x 0000000000000000 # data[2] = 0 + ├── 032-040: x 0000000000000000 # data[3] = 0 + ├── 040-048: x 0000000000000000 # data[4] = 0 + ├── 048-056: x 0a00000000000000 # data[5] = 10 + ├── 056-064: x 0000000000000000 # data[6] = 0 + ├── 064-072: x 0a00000000000000 # data[7] = 10 + ├── 072-080: x e803000000000000 # data[8] = 1000 + ├── 080-088: x ffff000000000000 # data[9] = 65535 + ├── 088-096: x 0000010000000000 # data[10] = 65536 + ├── 096-104: x ffffffff00000000 # data[11] = 4294967295 + └── 104-112: x 0000000001000000 # data[12] = 4294967296 # Test serializing a few columns using delta encoding. @@ -417,12 +428,13 @@ b.Get(20) = 221 finish rows=5 ---- -0-1: x 01 # encoding: 1b -1-2: x 01 # data[0] = 1 -2-3: x 00 # data[1] = 0 -3-4: x 5c # data[2] = 92 -4-5: x 01 # data[3] = 1 -5-6: x 00 # data[4] = 0 +uints + ├── 0-1: x 01 # encoding: 1b + ├── 1-2: x 01 # data[0] = 1 + ├── 2-3: x 00 # data[1] = 0 + ├── 3-4: x 5c # data[2] = 92 + ├── 4-5: x 01 # data[3] = 1 + └── 5-6: x 00 # data[4] = 0 # Test a situation where the most recently written value requirs a wider delta # encoding, but we Finish with few enough rows that we should serialize using @@ -449,26 +461,28 @@ Size(7, 0) = 32 finish rows=6 ---- -00-01: x 02 # encoding: 2b -01-02: x 00 # padding (aligning to 16-bit boundary) -02-04: x 0000 # data[0] = 0 -04-06: x 1d00 # data[1] = 29 -06-08: x 5302 # data[2] = 595 -08-10: x 0200 # data[3] = 2 -10-12: x 0200 # data[4] = 2 -12-14: x 0900 # data[5] = 9 +uints + ├── 00-01: x 02 # encoding: 2b + ├── 01-02: x 00 # padding (aligning to 16-bit boundary) + ├── 02-04: x 0000 # data[0] = 0 + ├── 04-06: x 1d00 # data[1] = 29 + ├── 06-08: x 5302 # data[2] = 595 + ├── 08-10: x 0200 # data[3] = 2 + ├── 10-12: x 0200 # data[4] = 2 + └── 12-14: x 0900 # data[5] = 9 finish rows=7 ---- -00-01: x 04 # encoding: 4b -01-04: x 000000 # padding (aligning to 32-bit boundary) -04-08: x 00000000 # data[0] = 0 -08-12: x 1d000000 # data[1] = 29 -12-16: x 53020000 # data[2] = 595 -16-20: x 02000000 # data[3] = 2 -20-24: x 02000000 # data[4] = 2 -24-28: x 09000000 # data[5] = 9 -28-32: x fb120100 # data[6] = 70395 +uints + ├── 00-01: x 04 # encoding: 4b + ├── 01-04: x 000000 # padding (aligning to 32-bit boundary) + ├── 04-08: x 00000000 # data[0] = 0 + ├── 08-12: x 1d000000 # data[1] = 29 + ├── 12-16: x 53020000 # data[2] = 595 + ├── 16-20: x 02000000 # data[3] = 2 + ├── 20-24: x 02000000 # data[4] = 2 + ├── 24-28: x 09000000 # data[5] = 9 + └── 28-32: x fb120100 # data[6] = 70395 # Test the constant encoding. @@ -485,8 +499,9 @@ Size(6, 0) = 9 finish rows=6 ---- -0-1: x 80 # encoding: const -1-9: x 0100000000000000 # 64-bit constant: 1 +uints + ├── 0-1: x 80 # encoding: const + └── 1-9: x 0100000000000000 # 64-bit constant: 1 # Test 32-bit delta encoding. @@ -503,13 +518,14 @@ Size(3, 1) = 24 [23 w/o offset] finish rows=3 offset=1 ---- -00-01: x 00 # artificial start offset -01-02: x 84 # encoding: 4b,delta -02-10: x 0100000000000000 # 64-bit constant: 1 -10-12: x 0000 # padding (aligning to 32-bit boundary) -12-16: x 00000000 # data[0] = 0 + 1 = 1 -16-20: x bff90000 # data[1] = 63935 + 1 = 63936 -20-24: x ffffffff # data[2] = 4294967295 + 1 = 4294967296 +uints + ├── 00-01: x 00 # artificial start offset + ├── 01-02: x 84 # encoding: 4b,delta + ├── 02-10: x 0100000000000000 # 64-bit constant: 1 + ├── 10-12: x 0000 # padding (aligning to 32-bit boundary) + ├── 12-16: x 00000000 # data[0] = 0 + 1 = 1 + ├── 16-20: x bff90000 # data[1] = 63935 + 1 = 63936 + └── 20-24: x ffffffff # data[2] = 4294967295 + 1 = 4294967296 # Test serializing with zero rows. The representation should require zero bytes. @@ -522,3 +538,4 @@ Size(0, 0) = 0 finish rows=0 offset=0 ---- +uints diff --git a/sstable/colblk/uints.go b/sstable/colblk/uints.go index e5dcc505bf..ff1449a057 100644 --- a/sstable/colblk/uints.go +++ b/sstable/colblk/uints.go @@ -15,6 +15,7 @@ import ( "github.com/cockroachdb/errors" "github.com/cockroachdb/pebble/internal/binfmt" "github.com/cockroachdb/pebble/internal/invariants" + "github.com/cockroachdb/pebble/internal/treeprinter" "golang.org/x/exp/constraints" ) @@ -398,7 +399,7 @@ func computeMinMax[I constraints.Unsigned](values []I) (I, I) { } func uintsToBinFormatter( - f *binfmt.Formatter, rows int, uintFormatter func(el, base uint64) string, + f *binfmt.Formatter, tp treeprinter.Node, rows int, uintFormatter func(el, base uint64) string, ) { if rows == 0 { return @@ -426,6 +427,7 @@ func uintsToBinFormatter( width := e.Width() if width == 0 { // The column is zero or constant. + f.ToTreePrinter(tp) return } @@ -435,4 +437,5 @@ func uintsToBinFormatter( for i := 0; i < rows; i++ { f.HexBytesln(width, "data[%d] = %s", i, uintFormatter(f.PeekUint(width), base)) } + f.ToTreePrinter(tp) } diff --git a/sstable/colblk/uints_test.go b/sstable/colblk/uints_test.go index 9ef2ba8427..b535c8025b 100644 --- a/sstable/colblk/uints_test.go +++ b/sstable/colblk/uints_test.go @@ -14,6 +14,7 @@ import ( "github.com/cockroachdb/datadriven" "github.com/cockroachdb/pebble/internal/aligned" "github.com/cockroachdb/pebble/internal/binfmt" + "github.com/cockroachdb/pebble/internal/treeprinter" ) func TestUintEncoding(t *testing.T) { @@ -81,11 +82,14 @@ func TestUints(t *testing.T) { buf := aligned.ByteSlice(int(sz)) _ = b.Finish(0, rows, offset, buf) f := binfmt.New(buf).LineWidth(20) + tp := treeprinter.New() + n := tp.Child("uints") if offset > 0 { f.HexBytesln(int(offset), "artificial start offset") + f.ToTreePrinter(n) } - uintsToBinFormatter(f, rows, nil) - return f.String() + uintsToBinFormatter(f, n, rows, nil) + return tp.String() default: panic(fmt.Sprintf("unknown command: %s", td.Cmd)) } diff --git a/sstable/colblk_writer_test.go b/sstable/colblk_writer_test.go index 93074746b0..60efdabd9b 100644 --- a/sstable/colblk_writer_test.go +++ b/sstable/colblk_writer_test.go @@ -67,8 +67,7 @@ func TestColumnarWriter(t *testing.T) { if err != nil { return err.Error() } - l.Describe(&buf, true /* verbose */, r, nil) - return buf.String() + return l.Describe(true /* verbose */, r, nil /* fmtKV */) case "props": return r.Properties.String() default: diff --git a/sstable/copier_test.go b/sstable/copier_test.go index a88888d94b..7c893cddd1 100644 --- a/sstable/copier_test.go +++ b/sstable/copier_test.go @@ -5,7 +5,6 @@ package sstable import ( - "bytes" "context" "fmt" "strings" @@ -168,9 +167,7 @@ func TestCopySpan(t *testing.T) { if err != nil { return err.Error() } - var buf bytes.Buffer - l.Describe(&buf, true, r, nil) - return buf.String() + return l.Describe(true, r, nil) default: t.Fatalf("unknown command: %s", d.Cmd) diff --git a/sstable/layout.go b/sstable/layout.go index bde4c80261..2f2db400b7 100644 --- a/sstable/layout.go +++ b/sstable/layout.go @@ -19,6 +19,7 @@ import ( "github.com/cockroachdb/pebble/internal/binfmt" "github.com/cockroachdb/pebble/internal/bytealloc" "github.com/cockroachdb/pebble/internal/sstableinternal" + "github.com/cockroachdb/pebble/internal/treeprinter" "github.com/cockroachdb/pebble/objstorage" "github.com/cockroachdb/pebble/sstable/block" "github.com/cockroachdb/pebble/sstable/colblk" @@ -108,26 +109,24 @@ func (l *Layout) orderedBlocks() []NamedBlockHandle { // Describe returns a description of the layout. If the verbose parameter is // true, details of the structure of each block are returned as well. +// If verbose is true and fmtKV is non-nil, the output includes the KVs (as formatted by this function). func (l *Layout) Describe( - w io.Writer, verbose bool, r *Reader, fmtRecord func(key *base.InternalKey, value []byte), -) { + verbose bool, r *Reader, fmtKV func(key *base.InternalKey, value []byte) string, +) string { ctx := context.TODO() blocks := l.orderedBlocks() - // TODO(jackson): This function formats offsets within blocks by adding the - // block's offset. A block's offset is an offset in the physical, compressed - // file whereas KV pairs offsets are within the uncompressed block. This is - // confusing and can result in blocks' KVs offsets overlapping one another. - // We should just print offsets relative to the block start. - formatting := rowblkFormatting if l.Format.BlockColumnar() { formatting = colblkFormatting } + tp := treeprinter.New() + root := tp.Child("sstable") + for i := range blocks { b := &blocks[i] - fmt.Fprintf(w, "%10d %s (%d)\n", b.Offset, b.Name, b.Length) + tpNode := root.Childf("%s offset: %d length: %d", b.Name, b.Offset, b.Length) if !verbose { continue @@ -137,90 +136,85 @@ func (l *Layout) Describe( } if b.Name == "footer" || b.Name == "leveldb-footer" { - trailer, offset := make([]byte, b.Length), b.Offset - _ = r.readable.ReadAt(ctx, trailer, int64(offset)) + trailer, offset := make([]byte, b.Length), 0 + _ = r.readable.ReadAt(ctx, trailer, int64(b.Offset)) if b.Name == "footer" { checksumType := block.ChecksumType(trailer[0]) - fmt.Fprintf(w, "%10d checksum type: %s\n", offset, checksumType) + tpNode.Childf("%03d checksum type: %s", offset, checksumType) trailer, offset = trailer[1:], offset+1 } metaHandle, n := binary.Uvarint(trailer) metaLen, m := binary.Uvarint(trailer[n:]) - fmt.Fprintf(w, "%10d meta: offset=%d, length=%d\n", offset, metaHandle, metaLen) - trailer, offset = trailer[n+m:], offset+uint64(n+m) + tpNode.Childf("%03d meta: offset=%d, length=%d", offset, metaHandle, metaLen) + trailer, offset = trailer[n+m:], offset+n+m indexHandle, n := binary.Uvarint(trailer) indexLen, m := binary.Uvarint(trailer[n:]) - fmt.Fprintf(w, "%10d index: offset=%d, length=%d\n", offset, indexHandle, indexLen) - trailer, offset = trailer[n+m:], offset+uint64(n+m) - - fmt.Fprintf(w, "%10d [padding]\n", offset) + tpNode.Childf("%03d index: offset=%d, length=%d", offset, indexHandle, indexLen) + trailer, offset = trailer[n+m:], offset+n+m trailing := 12 if b.Name == "leveldb-footer" { trailing = 8 } - offset += uint64(len(trailer) - trailing) + offset += len(trailer) - trailing trailer = trailer[len(trailer)-trailing:] if b.Name == "footer" { version := trailer[:4] - fmt.Fprintf(w, "%10d version: %d\n", offset, binary.LittleEndian.Uint32(version)) + tpNode.Childf("%03d version: %d", offset, binary.LittleEndian.Uint32(version)) trailer, offset = trailer[4:], offset+4 } magicNumber := trailer - fmt.Fprintf(w, "%10d magic number: 0x%x\n", offset, magicNumber) + tpNode.Childf("%03d magic number: 0x%x", offset, magicNumber) continue } + // Read the block and format it. Returns an error if we couldn't read the + // block. err := func() error { - var h block.BufferHandle var err error + var h block.BufferHandle // Defer release of any block handle that will have been read. defer func() { h.Release() }() - formatTrailer := func() { - trailer := make([]byte, block.TrailerLen) - offset := int64(b.Offset + b.Length) - _ = r.readable.ReadAt(ctx, trailer, offset) - algo := block.CompressionIndicator(trailer[0]) - checksum := binary.LittleEndian.Uint32(trailer[1:]) - fmt.Fprintf(w, "%10d [trailer compression=%s checksum=0x%04x]\n", offset, algo, checksum) - } - - var lastKey InternalKey switch b.Name { case "data": h, err = r.readDataBlock(ctx, noEnv, noReadHandle, b.Handle) if err != nil { return err } - formatting.formatDataBlock(w, r, *b, h.Get(), func(key *base.InternalKey, value []byte) { - if fmtRecord != nil { - fmtRecord(key, value) - } - if base.InternalCompare(r.Compare, lastKey, *key) >= 0 { - fmt.Fprintf(w, " WARNING: OUT OF ORDER KEYS!\n") - } - lastKey.Trailer = key.Trailer - lastKey.UserKey = append(lastKey.UserKey[:0], key.UserKey...) - }) - formatTrailer() + if fmtKV == nil { + formatting.formatDataBlock(tpNode, r, *b, h.Get(), nil) + } else { + var lastKey InternalKey + formatting.formatDataBlock(tpNode, r, *b, h.Get(), func(key *base.InternalKey, value []byte) string { + v := fmtKV(key, value) + if base.InternalCompare(r.Compare, lastKey, *key) >= 0 { + v += " WARNING: OUT OF ORDER KEYS!" + } + lastKey.Trailer = key.Trailer + lastKey.UserKey = append(lastKey.UserKey[:0], key.UserKey...) + return v + }) + } case "range-del": if b.Handle != r.rangeDelBH { return base.AssertionFailedf("range-del block handle does not match rangeDelBH") } h, err = r.readRangeDelBlock(ctx, noEnv) - // TODO(jackson): colblk ignores fmtRecord, because it doesn't + if err != nil { + return err + } + // TODO(jackson): colblk ignores fmtKV, because it doesn't // make sense in the context. - formatting.formatKeyspanBlock(w, r, *b, h.Get(), fmtRecord) - formatTrailer() + formatting.formatKeyspanBlock(tpNode, r, *b, h.Get(), fmtKV) case "range-key": if b.Handle != r.rangeKeyBH { @@ -230,18 +224,16 @@ func (l *Layout) Describe( if err != nil { return err } - // TODO(jackson): colblk ignores fmtRecord, because it doesn't + // TODO(jackson): colblk ignores fmtKV, because it doesn't // make sense in the context. - formatting.formatKeyspanBlock(w, r, *b, h.Get(), fmtRecord) - formatTrailer() + formatting.formatKeyspanBlock(tpNode, r, *b, h.Get(), fmtKV) case "index", "top-index": h, err = r.readIndexBlock(ctx, noEnv, noReadHandle, b.Handle) if err != nil { return err } - formatting.formatIndexBlock(w, r, *b, h.Get()) - formatTrailer() + formatting.formatIndexBlock(tpNode, r, *b, h.Get()) case "properties": h, err = r.readBlockInternal(ctx, noEnv, noReadHandle, b.Handle) @@ -249,11 +241,9 @@ func (l *Layout) Describe( return err } iter, _ := rowblk.NewRawIter(r.Compare, h.Get()) - iter.Describe(w, b.Offset, - func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { - fmt.Fprintf(w, "%10d %s (%d)", b.Offset+uint64(enc.Offset), key.UserKey, enc.Length) - }) - formatTrailer() + iter.Describe(tpNode, func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { + fmt.Fprintf(w, "%05d %s (%d)", enc.Offset, key.UserKey, enc.Length) + }) case "meta-index": if b.Handle != r.metaindexBH { @@ -264,32 +254,30 @@ func (l *Layout) Describe( return err } iter, _ := rowblk.NewRawIter(r.Compare, h.Get()) - iter.Describe(w, b.Offset, - func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { - var bh block.Handle - var n int - var vbih valueBlocksIndexHandle - isValueBlocksIndexHandle := false - if bytes.Equal(iter.Key().UserKey, []byte(metaValueIndexName)) { - vbih, n, err = decodeValueBlocksIndexHandle(value) - bh = vbih.h - isValueBlocksIndexHandle = true - } else { - bh, n = block.DecodeHandle(value) - } - if n == 0 || n != len(value) { - fmt.Fprintf(w, "%10d [err: %s]\n", enc.Offset, err) - return - } - var vbihStr string - if isValueBlocksIndexHandle { - vbihStr = fmt.Sprintf(" value-blocks-index-lengths: %d(num), %d(offset), %d(length)", - vbih.blockNumByteLength, vbih.blockOffsetByteLength, vbih.blockLengthByteLength) - } - fmt.Fprintf(w, "%10d %s block:%d/%d%s", - b.Offset+uint64(enc.Offset), iter.Key().UserKey, bh.Offset, bh.Length, vbihStr) - }) - formatTrailer() + iter.Describe(tpNode, func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { + var bh block.Handle + var n int + var vbih valueBlocksIndexHandle + isValueBlocksIndexHandle := false + if bytes.Equal(iter.Key().UserKey, []byte(metaValueIndexName)) { + vbih, n, err = decodeValueBlocksIndexHandle(value) + bh = vbih.h + isValueBlocksIndexHandle = true + } else { + bh, n = block.DecodeHandle(value) + } + if n == 0 || n != len(value) { + fmt.Fprintf(w, "%04d [err: %s]\n", enc.Offset, err) + return + } + var vbihStr string + if isValueBlocksIndexHandle { + vbihStr = fmt.Sprintf(" value-blocks-index-lengths: %d(num), %d(offset), %d(length)", + vbih.blockNumByteLength, vbih.blockOffsetByteLength, vbih.blockLengthByteLength) + } + fmt.Fprintf(w, "%04d %s block:%d/%d%s", + uint64(enc.Offset), iter.Key().UserKey, bh.Offset, bh.Length, vbihStr) + }) case "value-block": // We don't peer into the value-block since it can't be interpreted @@ -298,15 +286,20 @@ func (l *Layout) Describe( // We have already read the value-index to construct the list of // value-blocks, so no need to do it again. } + + // Format the trailer. + trailer := make([]byte, block.TrailerLen) + _ = r.readable.ReadAt(ctx, trailer, int64(b.Offset+b.Length)) + algo := block.CompressionIndicator(trailer[0]) + checksum := binary.LittleEndian.Uint32(trailer[1:]) + tpNode.Childf("trailer [compression=%s checksum=0x%04x]", algo, checksum) return nil }() if err != nil { - fmt.Fprintf(w, " [err: %s]\n", err) + tpNode.Childf("error reading block: %v", err) } } - - last := blocks[len(blocks)-1] - fmt.Fprintf(w, "%10d EOF\n", last.Offset+last.Length) + return tp.String() } type blockFormatting struct { @@ -316,8 +309,8 @@ type blockFormatting struct { } type ( - formatBlockFunc func(io.Writer, *Reader, NamedBlockHandle, []byte) error - formatBlockFuncKV func(io.Writer, *Reader, NamedBlockHandle, []byte, func(*base.InternalKey, []byte)) error + formatBlockFunc func(treeprinter.Node, *Reader, NamedBlockHandle, []byte) error + formatBlockFuncKV func(treeprinter.Node, *Reader, NamedBlockHandle, []byte, func(*base.InternalKey, []byte) string) error ) var ( @@ -333,7 +326,7 @@ var ( } ) -func formatColblkIndexBlock(w io.Writer, r *Reader, b NamedBlockHandle, data []byte) error { +func formatColblkIndexBlock(tp treeprinter.Node, r *Reader, b NamedBlockHandle, data []byte) error { iter := new(colblk.IndexIter) if err := iter.Init(r.Compare, r.Split, data, NoTransforms); err != nil { return err @@ -345,27 +338,25 @@ func formatColblkIndexBlock(w io.Writer, r *Reader, b NamedBlockHandle, data []b if err != nil { return err } - fmt.Fprintf(w, "%10d block:%d/%d\n", i, bh.Offset, bh.Length) + tp.Childf("%05d block:%d/%d\n", i, bh.Offset, bh.Length) i++ } return nil } func formatColblkDataBlock( - w io.Writer, + tp treeprinter.Node, r *Reader, b NamedBlockHandle, data []byte, - fmtRecord func(key *base.InternalKey, value []byte), + fmtKV func(key *base.InternalKey, value []byte) string, ) error { var decoder colblk.DataBlockDecoder decoder.Init(r.keySchema, data) f := binfmt.New(data) - f.SetLinePrefix(" ") - decoder.Describe(f) - fmt.Fprint(w, f.String()) + decoder.Describe(f, tp) - if fmtRecord != nil { + if fmtKV != nil { var iter colblk.DataBlockIter iter.InitOnce(r.keySchema, r.Compare, r.Split, describingLazyValueHandler{}) if err := iter.Init(&decoder, block.IterTransforms{}); err != nil { @@ -373,7 +364,7 @@ func formatColblkDataBlock( } defer iter.Close() for kv := iter.First(); kv != nil; kv = iter.Next() { - fmtRecord(&kv.K, kv.V.ValueOrHandle) + tp.Child(fmtKV(&kv.K, kv.V.ValueOrHandle)) } } return nil @@ -395,51 +386,50 @@ func (describingLazyValueHandler) GetLazyValueForPrefixAndValueHandle( } func formatColblkKeyspanBlock( - w io.Writer, r *Reader, b NamedBlockHandle, data []byte, _ func(*base.InternalKey, []byte), + tp treeprinter.Node, + r *Reader, + b NamedBlockHandle, + data []byte, + _ func(*base.InternalKey, []byte) string, ) error { var decoder colblk.KeyspanDecoder decoder.Init(data) f := binfmt.New(data) - f.SetLinePrefix(" ") - decoder.Describe(f) - fmt.Fprint(w, f.String()) + decoder.Describe(f, tp) return nil } -func formatRowblkIndexBlock(w io.Writer, r *Reader, b NamedBlockHandle, data []byte) error { +func formatRowblkIndexBlock(tp treeprinter.Node, r *Reader, b NamedBlockHandle, data []byte) error { iter, err := rowblk.NewIter(r.Compare, r.Split, data, NoTransforms) if err != nil { return err } - iter.Describe(w, b.Offset, func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { + iter.Describe(tp, func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { bh, err := block.DecodeHandleWithProperties(value) if err != nil { - fmt.Fprintf(w, "%10d [err: %s]\n", b.Offset+uint64(enc.Offset), err) + fmt.Fprintf(w, "%05d [err: %s]\n", enc.Offset, err) return } - fmt.Fprintf(w, "%10d block:%d/%d", - b.Offset+uint64(enc.Offset), bh.Offset, bh.Length) + fmt.Fprintf(w, "%05d block:%d/%d", enc.Offset, bh.Offset, bh.Length) if enc.IsRestart { - fmt.Fprintf(w, " [restart]\n") - } else { - fmt.Fprintf(w, "\n") + fmt.Fprintf(w, " [restart]") } }) return nil } func formatRowblkDataBlock( - w io.Writer, + tp treeprinter.Node, r *Reader, b NamedBlockHandle, data []byte, - fmtRecord func(key *base.InternalKey, value []byte), + fmtRecord func(key *base.InternalKey, value []byte) string, ) error { iter, err := rowblk.NewIter(r.Compare, r.Split, data, NoTransforms) if err != nil { return err } - iter.Describe(w, b.Offset, func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { + iter.Describe(tp, func(w io.Writer, key *base.InternalKey, value []byte, enc rowblk.KVEncoding) { // The format of the numbers in the record line is: // // ( = [] + + ) @@ -450,27 +440,20 @@ func formatRowblkDataBlock( // is the number of key bytes shared with the previous key. // is the number of unshared key bytes. // is the number of value bytes. - fmt.Fprintf(w, "%10d record (%d = %d [%d] + %d + %d)", - b.Offset+uint64(enc.Offset), enc.Length, + fmt.Fprintf(w, "%05d record (%d = %d [%d] + %d + %d)", + uint64(enc.Offset), enc.Length, enc.Length-int32(enc.KeyUnshared+enc.ValueLen), enc.KeyShared, enc.KeyUnshared, enc.ValueLen) if enc.IsRestart { - fmt.Fprintf(w, " [restart]\n") - } else { - fmt.Fprintf(w, "\n") + fmt.Fprint(w, " [restart]") } if fmtRecord != nil { - fmt.Fprintf(w, " ") - if r.tableFormat < TableFormatPebblev3 { - fmtRecord(key, value) + if r.tableFormat < TableFormatPebblev3 || key.Kind() != InternalKeyKindSet { + fmt.Fprintf(w, "\n %s", fmtRecord(key, value)) + } else if !block.ValuePrefix(value[0]).IsValueHandle() { + fmt.Fprintf(w, "\n %s", fmtRecord(key, value[1:])) } else { - if key.Kind() != InternalKeyKindSet { - fmtRecord(key, value) - } else if !block.ValuePrefix(value[0]).IsValueHandle() { - fmtRecord(key, value[1:]) - } else { - vh := decodeValueHandle(value[1:]) - fmtRecord(key, []byte(fmt.Sprintf("value handle %+v", vh))) - } + vh := decodeValueHandle(value[1:]) + fmt.Fprintf(w, "\n %s", fmtRecord(key, []byte(fmt.Sprintf("value handle %+v", vh)))) } } }) diff --git a/sstable/rowblk/rowblk_iter.go b/sstable/rowblk/rowblk_iter.go index c9f9c00853..a2c2ee7610 100644 --- a/sstable/rowblk/rowblk_iter.go +++ b/sstable/rowblk/rowblk_iter.go @@ -8,7 +8,6 @@ import ( "bytes" "context" "encoding/binary" - "fmt" "io" "slices" "sort" @@ -1629,7 +1628,8 @@ type KVEncoding struct { // Describe describes the contents of a block, writing the description to w. // It invokes fmtKV to describe each key-value pair. -func (i *Iter) Describe(w io.Writer, blkOffset uint64, fmtKV DescribeKV) { +func (i *Iter) Describe(tp treeprinter.Node, fmtKV DescribeKV) { + var buf bytes.Buffer for kv := i.First(); kv != nil; kv = i.Next() { enc := KVEncoding{ IsRestart: i.isRestartPoint(), @@ -1640,17 +1640,16 @@ func (i *Iter) Describe(w io.Writer, blkOffset uint64, fmtKV DescribeKV) { enc.KeyShared, ptr = decodeVarint(ptr) enc.KeyUnshared, ptr = decodeVarint(ptr) enc.ValueLen, _ = decodeVarint(ptr) - fmtKV(w, &kv.K, kv.V.ValueOrHandle, enc) + buf.Reset() + fmtKV(&buf, &kv.K, kv.V.ValueOrHandle, enc) + tp.Child(buf.String()) } // Format the restart points. + n := tp.Child("restart points") + // Format the restart points. for j := 0; j < int(i.numRestarts); j++ { offset := i.getRestart(j) - // TODO(jackson): This formatting seems bizarre. We're taking blkOffset - // which is an offset in the physical, compressed file, and adding the - // offset of the KV pair within the uncompressed block. We should just - // print offsets relative to the block start. - fmt.Fprintf(w, "%10d [restart %d]\n", - blkOffset+uint64(i.restarts+4*int32(j)), blkOffset+uint64(offset)) + n.Childf("%05d [restart %d]", uint64(i.restarts+4*int32(j)), offset) } } @@ -1905,7 +1904,8 @@ func (i *RawIter) isRestartPoint() bool { // Describe describes the contents of a block, writing the description to w. // It invokes fmtKV to describe each key-value pair. -func (i *RawIter) Describe(w io.Writer, blkOffset uint64, fmtKV DescribeKV) { +func (i *RawIter) Describe(tp treeprinter.Node, fmtKV DescribeKV) { + var buf bytes.Buffer for valid := i.First(); valid; valid = i.Next() { enc := KVEncoding{ IsRestart: i.isRestartPoint(), @@ -1916,22 +1916,18 @@ func (i *RawIter) Describe(w io.Writer, blkOffset uint64, fmtKV DescribeKV) { enc.KeyShared, ptr = decodeVarint(ptr) enc.KeyUnshared, ptr = decodeVarint(ptr) enc.ValueLen, _ = decodeVarint(ptr) - fmtKV(w, &i.ikey, i.val, enc) + buf.Reset() + fmtKV(&buf, &i.ikey, i.val, enc) if i.isRestartPoint() { - fmt.Fprintf(w, " [restart]\n") - } else { - fmt.Fprintf(w, "\n") + buf.WriteString(" [restart]") } + tp.Child(buf.String()) } + n := tp.Child("restart points") // Format the restart points. for j := 0; j < int(i.numRestarts); j++ { offset := i.getRestart(j) - // TODO(jackson): This formatting seems bizarre. We're taking blkOffset - // which is an offset in the physical, compressed file, and adding the - // offset of the KV pair within the uncompressed block. We should just - // print offsets relative to the block start. - fmt.Fprintf(w, "%10d [restart %d]\n", - blkOffset+uint64(i.restarts+4*int32(j)), blkOffset+uint64(offset)) + n.Childf("%05d [restart %d]", uint64(i.restarts+4*int32(j)), offset) } } diff --git a/sstable/testdata/columnar_writer/simple_binary b/sstable/testdata/columnar_writer/simple_binary index aa9122ed1a..d8af4f92bc 100644 --- a/sstable/testdata/columnar_writer/simple_binary +++ b/sstable/testdata/columnar_writer/simple_binary @@ -11,111 +11,110 @@ ok layout ---- - 0 data (96) - # data block header - 00-04: x 01000000 # maximum key length: 1 - # columnar block header - 04-05: x 01 # version 1 - 05-07: x 0700 # 7 columns - 07-11: x 02000000 # 2 rows - 11-12: b 00000100 # col 0: prefixbytes - 12-16: x 2e000000 # col 0: page start 46 - 16-17: b 00000011 # col 1: bytes - 17-21: x 36000000 # col 1: page start 54 - 21-22: b 00000010 # col 2: uint - 22-26: x 37000000 # col 2: page start 55 - 26-27: b 00000001 # col 3: bool - 27-31: x 42000000 # col 3: page start 66 - 31-32: b 00000011 # col 4: bytes - 32-36: x 58000000 # col 4: page start 88 - 36-37: b 00000001 # col 5: bool - 37-41: x 5d000000 # col 5: page start 93 - 41-42: b 00000001 # col 6: bool - 42-46: x 5e000000 # col 6: page start 94 - # data for column 0 - # PrefixBytes - 46-47: x 04 # bundleSize: 16 - # Offsets table - 47-48: x 01 # encoding: 1b - 48-49: x 00 # data[0] = 0 [52 overall] - 49-50: x 00 # data[1] = 0 [52 overall] - 50-51: x 01 # data[2] = 1 [53 overall] - 51-52: x 02 # data[3] = 2 [54 overall] - # Data - 52-52: x # data[00]: (block prefix) - 52-52: x # data[01]: (bundle prefix) - 52-53: x 61 # data[02]: a - 53-54: x 62 # data[03]: b - # data for column 1 - # rawbytes - # offsets table - 54-55: x 00 # encoding: zero - # data - 55-55: x # data[0]: - 55-55: x # data[1]: - # data for column 2 - 55-56: x 81 # encoding: 1b,delta - 56-64: x 0101000000000000 # 64-bit constant: 257 - 64-65: x 00 # data[0] = 0 + 257 = 257 - 65-66: x ff # data[1] = 255 + 257 = 512 - # data for column 3 - 66-67: x 00 # bitmap encoding - 67-72: x 0000000000 # padding to align to 64-bit boundary - 72-80: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 80-88: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 88-89: x 01 # encoding: 1b - 89-90: x 00 # data[0] = 0 [92 overall] - 90-91: x 01 # data[1] = 1 [93 overall] - 91-92: x 01 # data[2] = 1 [93 overall] - # data - 92-93: x 61 # data[0]: a - 93-93: x # data[1]: - # data for column 5 - 93-94: x 01 # bitmap encoding - # data for column 6 - 94-95: x 01 # bitmap encoding - 95-96: x 00 # block padding byte - 96 [trailer compression=none checksum=0xa772640a] - 101 index (51) - 0 block:0/96 - 152 [trailer compression=none checksum=0x2bc8f1e1] - 157 properties (561) - 157 obsolete-key (16) [restart] - 173 pebble.internal.testkeys.suffixes (48) - 221 pebble.raw.point-tombstone.key.size (32) - 253 rocksdb.block.based.table.index.type (43) - 296 rocksdb.comparator (37) - 333 rocksdb.compression (23) - 356 rocksdb.compression_options (106) - 462 rocksdb.data.size (13) - 475 rocksdb.deleted.keys (15) - 490 rocksdb.filter.size (15) - 505 rocksdb.index.size (14) - 519 rocksdb.merge.operands (18) - 537 rocksdb.merge.operator (24) - 561 rocksdb.num.data.blocks (19) - 580 rocksdb.num.entries (11) - 591 rocksdb.num.range-deletions (19) - 610 rocksdb.property.collectors (70) - 680 rocksdb.raw.key.size (16) - 696 rocksdb.raw.value.size (14) - 710 [restart 157] - 718 [trailer compression=none checksum=0x8ab471b6] - 723 meta-index (33) - 723 rocksdb.properties block:157/561 [restart] - 748 [restart 723] - 756 [trailer compression=none checksum=0x5c950c07] - 761 footer (53) - 761 checksum type: crc32c - 762 meta: offset=723, length=33 - 765 index: offset=101, length=51 - 767 [padding] - 802 version: 5 - 806 magic number: 0xf09faab3f09faab3 - 814 EOF +sstable + ├── data offset: 0 length: 96 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 00-04: x 01000000 # maximum key length: 1 + │ │ │ ├── 04-05: x 01 # version 1 + │ │ │ ├── 05-07: x 0700 # 7 columns + │ │ │ ├── 07-11: x 02000000 # 2 rows + │ │ │ ├── 11-12: b 00000100 # col 0: prefixbytes + │ │ │ ├── 12-16: x 2e000000 # col 0: page start 46 + │ │ │ ├── 16-17: b 00000011 # col 1: bytes + │ │ │ ├── 17-21: x 36000000 # col 1: page start 54 + │ │ │ ├── 21-22: b 00000010 # col 2: uint + │ │ │ ├── 22-26: x 37000000 # col 2: page start 55 + │ │ │ ├── 26-27: b 00000001 # col 3: bool + │ │ │ ├── 27-31: x 42000000 # col 3: page start 66 + │ │ │ ├── 31-32: b 00000011 # col 4: bytes + │ │ │ ├── 32-36: x 58000000 # col 4: page start 88 + │ │ │ ├── 36-37: b 00000001 # col 5: bool + │ │ │ ├── 37-41: x 5d000000 # col 5: page start 93 + │ │ │ ├── 41-42: b 00000001 # col 6: bool + │ │ │ └── 42-46: x 5e000000 # col 6: page start 94 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 46-47: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 47-48: x 01 # encoding: 1b + │ │ │ │ ├── 48-49: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 49-50: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 50-51: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 51-52: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 52-52: x # data[00]: (block prefix) + │ │ │ ├── 52-52: x # data[01]: (bundle prefix) + │ │ │ ├── 52-53: x 61 # data[02]: a + │ │ │ └── 53-54: x 62 # data[03]: b + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 54-55: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 55-55: x # data[0]: + │ │ │ └── 55-55: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 55-56: x 81 # encoding: 1b,delta + │ │ │ ├── 56-64: x 0101000000000000 # 64-bit constant: 257 + │ │ │ ├── 64-65: x 00 # data[0] = 0 + 257 = 257 + │ │ │ └── 65-66: x ff # data[1] = 255 + 257 = 512 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 66-67: x 00 # default bitmap encoding + │ │ │ ├── 67-72: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 72-80: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 80-88: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 88-89: x 01 # encoding: 1b + │ │ │ │ ├── 89-90: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 90-91: x 01 # data[1] = 1 [93 overall] + │ │ │ │ └── 91-92: x 01 # data[2] = 1 [93 overall] + │ │ │ └── data + │ │ │ ├── 92-93: x 61 # data[0]: a + │ │ │ └── 93-93: x # data[1]: + │ │ ├── data for column 5 (bool) + │ │ │ └── 93-94: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 94-95: x 01 # zero bitmap encoding + │ │ └── 95-96: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xa772640a] + ├── index offset: 101 length: 51 + │ ├── 00000 block:0/96 + │ │ + │ └── trailer [compression=none checksum=0x2bc8f1e1] + ├── properties offset: 157 length: 561 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.internal.testkeys.suffixes (48) + │ ├── 00064 pebble.raw.point-tombstone.key.size (32) + │ ├── 00096 rocksdb.block.based.table.index.type (43) + │ ├── 00139 rocksdb.comparator (37) + │ ├── 00176 rocksdb.compression (23) + │ ├── 00199 rocksdb.compression_options (106) + │ ├── 00305 rocksdb.data.size (13) + │ ├── 00318 rocksdb.deleted.keys (15) + │ ├── 00333 rocksdb.filter.size (15) + │ ├── 00348 rocksdb.index.size (14) + │ ├── 00362 rocksdb.merge.operands (18) + │ ├── 00380 rocksdb.merge.operator (24) + │ ├── 00404 rocksdb.num.data.blocks (19) + │ ├── 00423 rocksdb.num.entries (11) + │ ├── 00434 rocksdb.num.range-deletions (19) + │ ├── 00453 rocksdb.property.collectors (70) + │ ├── 00523 rocksdb.raw.key.size (16) + │ ├── 00539 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00553 [restart 0] + │ └── trailer [compression=none checksum=0x8ab471b6] + ├── meta-index offset: 723 length: 33 + │ ├── 0000 rocksdb.properties block:157/561 [restart] + │ ├── restart points + │ │ └── 00025 [restart 0] + │ └── trailer [compression=none checksum=0x5c950c07] + └── footer offset: 761 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=723, length=33 + ├── 004 index: offset=101, length=51 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 props ---- @@ -153,113 +152,112 @@ ok layout ---- - 0 data (116) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 71000000 # col 5: page start 113 - 041-042: b 00000001 # col 6: bool - 042-046: x 72000000 # col 6: page start 114 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 61 # data[02]: a - 054-055: x 62 # data[03]: b - 055-056: x 63 # data[04]: c - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 05 # data[1] = 5 [98 overall] - 091-092: x 0b # data[2] = 11 [104 overall] - 092-093: x 14 # data[3] = 20 [113 overall] - # data - 093-098: x 6170706c65 # data[0]: apple - 098-104: x 62616e616e61 # data[1]: banana - 104-113: x 63616e74656c6f7065 # data[2]: cantelope - # data for column 5 - 113-114: x 01 # bitmap encoding - # data for column 6 - 114-115: x 01 # bitmap encoding - 115-116: x 00 # block padding byte - 116 [trailer compression=none checksum=0xe7b15329] - 121 index (51) - 0 block:0/116 - 172 [trailer compression=none checksum=0xcf86ef66] - 177 properties (529) - 177 obsolete-key (16) [restart] - 193 pebble.internal.testkeys.suffixes (48) - 241 rocksdb.block.based.table.index.type (43) - 284 rocksdb.comparator (37) - 321 rocksdb.compression (23) - 344 rocksdb.compression_options (106) - 450 rocksdb.data.size (13) - 463 rocksdb.deleted.keys (15) - 478 rocksdb.filter.size (15) - 493 rocksdb.index.size (14) - 507 rocksdb.merge.operands (18) - 525 rocksdb.merge.operator (24) - 549 rocksdb.num.data.blocks (19) - 568 rocksdb.num.entries (11) - 579 rocksdb.num.range-deletions (19) - 598 rocksdb.property.collectors (70) - 668 rocksdb.raw.key.size (16) - 684 rocksdb.raw.value.size (14) - 698 [restart 177] - 706 [trailer compression=none checksum=0xd5071efb] - 711 meta-index (33) - 711 rocksdb.properties block:177/529 [restart] - 736 [restart 711] - 744 [trailer compression=none checksum=0x34a4c633] - 749 footer (53) - 749 checksum type: crc32c - 750 meta: offset=711, length=33 - 753 index: offset=121, length=51 - 755 [padding] - 790 version: 5 - 794 magic number: 0xf09faab3f09faab3 - 802 EOF +sstable + ├── data offset: 0 length: 116 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 71000000 # col 5: page start 113 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 72000000 # col 6: page start 114 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 61 # data[02]: a + │ │ │ ├── 054-055: x 62 # data[03]: b + │ │ │ └── 055-056: x 63 # data[04]: c + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 05 # data[1] = 5 [98 overall] + │ │ │ │ ├── 091-092: x 0b # data[2] = 11 [104 overall] + │ │ │ │ └── 092-093: x 14 # data[3] = 20 [113 overall] + │ │ │ └── data + │ │ │ ├── 093-098: x 6170706c65 # data[0]: apple + │ │ │ ├── 098-104: x 62616e616e61 # data[1]: banana + │ │ │ └── 104-113: x 63616e74656c6f7065 # data[2]: cantelope + │ │ ├── data for column 5 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ └── 115-116: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xe7b15329] + ├── index offset: 121 length: 51 + │ ├── 00000 block:0/116 + │ │ + │ └── trailer [compression=none checksum=0xcf86ef66] + ├── properties offset: 177 length: 529 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.internal.testkeys.suffixes (48) + │ ├── 00064 rocksdb.block.based.table.index.type (43) + │ ├── 00107 rocksdb.comparator (37) + │ ├── 00144 rocksdb.compression (23) + │ ├── 00167 rocksdb.compression_options (106) + │ ├── 00273 rocksdb.data.size (13) + │ ├── 00286 rocksdb.deleted.keys (15) + │ ├── 00301 rocksdb.filter.size (15) + │ ├── 00316 rocksdb.index.size (14) + │ ├── 00330 rocksdb.merge.operands (18) + │ ├── 00348 rocksdb.merge.operator (24) + │ ├── 00372 rocksdb.num.data.blocks (19) + │ ├── 00391 rocksdb.num.entries (11) + │ ├── 00402 rocksdb.num.range-deletions (19) + │ ├── 00421 rocksdb.property.collectors (70) + │ ├── 00491 rocksdb.raw.key.size (16) + │ ├── 00507 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00521 [restart 0] + │ └── trailer [compression=none checksum=0xd5071efb] + ├── meta-index offset: 711 length: 33 + │ ├── 0000 rocksdb.properties block:177/529 [restart] + │ ├── restart points + │ │ └── 00025 [restart 0] + │ └── trailer [compression=none checksum=0x34a4c633] + └── footer offset: 749 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=711, length=33 + ├── 004 index: offset=121, length=51 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 build block-size=150 a.SET.1:apple @@ -293,670 +291,656 @@ ok layout ---- - 0 data (116) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 71000000 # col 5: page start 113 - 041-042: b 00000001 # col 6: bool - 042-046: x 72000000 # col 6: page start 114 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 61 # data[02]: a - 054-055: x 62 # data[03]: b - 055-056: x 63 # data[04]: c - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 05 # data[1] = 5 [98 overall] - 091-092: x 0b # data[2] = 11 [104 overall] - 092-093: x 14 # data[3] = 20 [113 overall] - # data - 093-098: x 6170706c65 # data[0]: apple - 098-104: x 62616e616e61 # data[1]: banana - 104-113: x 63616e74656c6f7065 # data[2]: cantelope - # data for column 5 - 113-114: x 01 # bitmap encoding - # data for column 6 - 114-115: x 01 # bitmap encoding - 115-116: x 00 # block padding byte - 116 [trailer compression=none checksum=0xe7b15329] - 121 data (116) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 71000000 # col 5: page start 113 - 041-042: b 00000001 # col 6: bool - 042-046: x 72000000 # col 6: page start 114 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 64 # data[02]: d - 053-054: x 65 # data[03]: e - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 0b # data[1] = 11 [103 overall] - 091-092: x 15 # data[2] = 21 [113 overall] - # data - 092-103: x 647261676f6e6672756974 # data[0]: dragonfruit - 103-113: x 656c6465726265727279 # data[1]: elderberry - # data for column 5 - 113-114: x 01 # bitmap encoding - # data for column 6 - 114-115: x 01 # bitmap encoding - 115-116: x 00 # block padding byte - 237 [trailer compression=none checksum=0xd56f1e7d] - 242 data (117) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 72000000 # col 5: page start 114 - 041-042: b 00000001 # col 6: bool - 042-046: x 73000000 # col 6: page start 115 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 66 # data[02]: f - 054-055: x 67 # data[03]: g - 055-056: x 68 # data[04]: h - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 03 # data[1] = 3 [96 overall] - 091-092: x 0d # data[2] = 13 [106 overall] - 092-093: x 15 # data[3] = 21 [114 overall] - # data - 093-096: x 666967 # data[0]: fig - 096-106: x 67726170656672756974 # data[1]: grapefruit - 106-114: x 686f6e6579646577 # data[2]: honeydew - # data for column 5 - 114-115: x 01 # bitmap encoding - # data for column 6 - 115-116: x 01 # bitmap encoding - 116-117: x 00 # block padding byte - 359 [trailer compression=none checksum=0xf74eefc6] - 364 data (113) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6e000000 # col 5: page start 110 - 041-042: b 00000001 # col 6: bool - 042-046: x 6f000000 # col 6: page start 111 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 69 # data[02]: i - 054-055: x 6a # data[03]: j - 055-056: x 6b # data[04]: k - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 04 # data[1] = 4 [97 overall] - 091-092: x 0d # data[2] = 13 [106 overall] - 092-093: x 11 # data[3] = 17 [110 overall] - # data - 093-097: x 696d6265 # data[0]: imbe - 097-106: x 6a61636b6672756974 # data[1]: jackfruit - 106-110: x 6b697769 # data[2]: kiwi - # data for column 5 - 110-111: x 01 # bitmap encoding - # data for column 6 - 111-112: x 01 # bitmap encoding - 112-113: x 00 # block padding byte - 477 [trailer compression=none checksum=0x6cd1f806] - 482 data (115) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 70000000 # col 5: page start 112 - 041-042: b 00000001 # col 6: bool - 042-046: x 71000000 # col 6: page start 113 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 6c # data[02]: l - 054-055: x 6d # data[03]: m - 055-056: x 6e # data[04]: n - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 05 # data[1] = 5 [98 overall] - 091-092: x 0a # data[2] = 10 [103 overall] - 092-093: x 13 # data[3] = 19 [112 overall] - # data - 093-098: x 6c656d6f6e # data[0]: lemon - 098-103: x 6d616e676f # data[1]: mango - 103-112: x 6e6563746172696e65 # data[2]: nectarine - # data for column 5 - 112-113: x 01 # bitmap encoding - # data for column 6 - 113-114: x 01 # bitmap encoding - 114-115: x 00 # block padding byte - 597 [trailer compression=none checksum=0x431d47b8] - 602 data (113) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6e000000 # col 5: page start 110 - 041-042: b 00000001 # col 6: bool - 042-046: x 6f000000 # col 6: page start 111 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 6f # data[02]: o - 053-054: x 70 # data[03]: p - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 06 # data[1] = 6 [98 overall] - 091-092: x 12 # data[2] = 18 [110 overall] - # data - 092-098: x 6f72616e6765 # data[0]: orange - 098-110: x 70616d706c656d6f75737365 # data[1]: pamplemousse - # data for column 5 - 110-111: x 01 # bitmap encoding - # data for column 6 - 111-112: x 01 # bitmap encoding - 112-113: x 00 # block padding byte - 715 [trailer compression=none checksum=0xc9a1bc98] - 720 data (110) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6b000000 # col 5: page start 107 - 041-042: b 00000001 # col 6: bool - 042-046: x 6c000000 # col 6: page start 108 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 71 # data[02]: q - 053-054: x 72 # data[03]: r - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 06 # data[1] = 6 [98 overall] - 091-092: x 0f # data[2] = 15 [107 overall] - # data - 092-098: x 7175696e6365 # data[0]: quince - 098-107: x 726173706265727279 # data[1]: raspberry - # data for column 5 - 107-108: x 01 # bitmap encoding - # data for column 6 - 108-109: x 01 # bitmap encoding - 109-110: x 00 # block padding byte - 830 [trailer compression=none checksum=0x9ed7918a] - 835 data (114) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6f000000 # col 5: page start 111 - 041-042: b 00000001 # col 6: bool - 042-046: x 70000000 # col 6: page start 112 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 73 # data[02]: s - 053-054: x 74 # data[03]: t - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 0a # data[1] = 10 [102 overall] - 091-092: x 13 # data[2] = 19 [111 overall] - # data - 092-102: x 73747261776265727279 # data[0]: strawberry - 102-111: x 74616e676572696e65 # data[1]: tangerine - # data for column 5 - 111-112: x 01 # bitmap encoding - # data for column 6 - 112-113: x 01 # bitmap encoding - 113-114: x 00 # block padding byte - 949 [trailer compression=none checksum=0x6027b22b] - 954 data (89) - # data block header - 00-04: x 01000000 # maximum key length: 1 - # columnar block header - 04-05: x 01 # version 1 - 05-07: x 0700 # 7 columns - 07-11: x 01000000 # 1 rows - 11-12: b 00000100 # col 0: prefixbytes - 12-16: x 2e000000 # col 0: page start 46 - 16-17: b 00000011 # col 1: bytes - 17-21: x 34000000 # col 1: page start 52 - 21-22: b 00000010 # col 2: uint - 22-26: x 35000000 # col 2: page start 53 - 26-27: b 00000001 # col 3: bool - 27-31: x 3e000000 # col 3: page start 62 - 31-32: b 00000011 # col 4: bytes - 32-36: x 50000000 # col 4: page start 80 - 36-37: b 00000001 # col 5: bool - 37-41: x 56000000 # col 5: page start 86 - 41-42: b 00000001 # col 6: bool - 42-46: x 57000000 # col 6: page start 87 - # data for column 0 - # PrefixBytes - 46-47: x 04 # bundleSize: 16 - # Offsets table - 47-48: x 01 # encoding: 1b - 48-49: x 01 # data[0] = 1 [52 overall] - 49-50: x 01 # data[1] = 1 [52 overall] - 50-51: x 01 # data[2] = 1 [52 overall] - # Data - 51-52: x 75 # data[00]: u (block prefix) - 52-52: x # data[01]: . (bundle prefix) - 52-52: x # data[02]: . - # data for column 1 - # rawbytes - # offsets table - 52-53: x 00 # encoding: zero - # data - 53-53: x # data[0]: - # data for column 2 - 53-54: x 80 # encoding: const - 54-62: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 62-63: x 00 # bitmap encoding - 63-64: x 00 # padding to align to 64-bit boundary - 64-72: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 80-81: x 01 # encoding: 1b - 81-82: x 00 # data[0] = 0 [83 overall] - 82-83: x 03 # data[1] = 3 [86 overall] - # data - 83-86: x 756d65 # data[0]: ume - # data for column 5 - 86-87: x 01 # bitmap encoding - # data for column 6 - 87-88: x 01 # bitmap encoding - 88-89: x 00 # block padding byte - 1043 [trailer compression=none checksum=0x228c6ee8] - 1048 index (110) - 0 block:0/116 - 1 block:121/116 - 2 block:242/117 - 3 block:364/113 - 1158 [trailer compression=none checksum=0x3df89c5f] - 1163 index (110) - 0 block:482/115 - 1 block:602/113 - 2 block:720/110 - 3 block:835/114 - 1273 [trailer compression=none checksum=0x2b2e2864] - 1278 index (59) - 0 block:954/89 - 1337 [trailer compression=none checksum=0x2d50fda3] - 1342 top-index (96) - 0 block:1048/110 - 1 block:1163/110 - 2 block:1278/59 - 1438 [trailer compression=none checksum=0x462d3144] - 1443 properties (571) - 1443 obsolete-key (16) [restart] - 1459 pebble.internal.testkeys.suffixes (48) - 1507 rocksdb.block.based.table.index.type (43) - 1550 rocksdb.comparator (37) - 1587 rocksdb.compression (23) - 1610 rocksdb.compression_options (106) - 1716 rocksdb.data.size (14) - 1730 rocksdb.deleted.keys (15) - 1745 rocksdb.filter.size (15) - 1760 rocksdb.index.partitions (20) - 1780 rocksdb.index.size (9) - 1789 rocksdb.merge.operands (18) - 1807 rocksdb.merge.operator (24) - 1831 rocksdb.num.data.blocks (19) - 1850 rocksdb.num.entries (11) - 1861 rocksdb.num.range-deletions (19) - 1880 rocksdb.property.collectors (70) - 1950 rocksdb.raw.key.size (17) - 1967 rocksdb.raw.value.size (15) - 1982 rocksdb.top-level.index.size (24) - 2006 [restart 1443] - 2014 [trailer compression=none checksum=0x3542de03] - 2019 meta-index (33) - 2019 rocksdb.properties block:1443/571 [restart] - 2044 [restart 2019] - 2052 [trailer compression=none checksum=0x5e4da9f6] - 2057 footer (53) - 2057 checksum type: crc32c - 2058 meta: offset=2019, length=33 - 2061 index: offset=1342, length=96 - 2064 [padding] - 2098 version: 5 - 2102 magic number: 0xf09faab3f09faab3 - 2110 EOF +sstable + ├── data offset: 0 length: 116 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 71000000 # col 5: page start 113 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 72000000 # col 6: page start 114 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 61 # data[02]: a + │ │ │ ├── 054-055: x 62 # data[03]: b + │ │ │ └── 055-056: x 63 # data[04]: c + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 05 # data[1] = 5 [98 overall] + │ │ │ │ ├── 091-092: x 0b # data[2] = 11 [104 overall] + │ │ │ │ └── 092-093: x 14 # data[3] = 20 [113 overall] + │ │ │ └── data + │ │ │ ├── 093-098: x 6170706c65 # data[0]: apple + │ │ │ ├── 098-104: x 62616e616e61 # data[1]: banana + │ │ │ └── 104-113: x 63616e74656c6f7065 # data[2]: cantelope + │ │ ├── data for column 5 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ └── 115-116: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xe7b15329] + ├── data offset: 121 length: 116 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 71000000 # col 5: page start 113 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 72000000 # col 6: page start 114 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 64 # data[02]: d + │ │ │ └── 053-054: x 65 # data[03]: e + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 0b # data[1] = 11 [103 overall] + │ │ │ │ └── 091-092: x 15 # data[2] = 21 [113 overall] + │ │ │ └── data + │ │ │ ├── 092-103: x 647261676f6e6672756974 # data[0]: dragonfruit + │ │ │ └── 103-113: x 656c6465726265727279 # data[1]: elderberry + │ │ ├── data for column 5 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ └── 115-116: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xd56f1e7d] + ├── data offset: 242 length: 117 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 72000000 # col 5: page start 114 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 73000000 # col 6: page start 115 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 66 # data[02]: f + │ │ │ ├── 054-055: x 67 # data[03]: g + │ │ │ └── 055-056: x 68 # data[04]: h + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 03 # data[1] = 3 [96 overall] + │ │ │ │ ├── 091-092: x 0d # data[2] = 13 [106 overall] + │ │ │ │ └── 092-093: x 15 # data[3] = 21 [114 overall] + │ │ │ └── data + │ │ │ ├── 093-096: x 666967 # data[0]: fig + │ │ │ ├── 096-106: x 67726170656672756974 # data[1]: grapefruit + │ │ │ └── 106-114: x 686f6e6579646577 # data[2]: honeydew + │ │ ├── data for column 5 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 115-116: x 01 # zero bitmap encoding + │ │ └── 116-117: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xf74eefc6] + ├── data offset: 364 length: 113 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6e000000 # col 5: page start 110 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 6f000000 # col 6: page start 111 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 69 # data[02]: i + │ │ │ ├── 054-055: x 6a # data[03]: j + │ │ │ └── 055-056: x 6b # data[04]: k + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 04 # data[1] = 4 [97 overall] + │ │ │ │ ├── 091-092: x 0d # data[2] = 13 [106 overall] + │ │ │ │ └── 092-093: x 11 # data[3] = 17 [110 overall] + │ │ │ └── data + │ │ │ ├── 093-097: x 696d6265 # data[0]: imbe + │ │ │ ├── 097-106: x 6a61636b6672756974 # data[1]: jackfruit + │ │ │ └── 106-110: x 6b697769 # data[2]: kiwi + │ │ ├── data for column 5 (bool) + │ │ │ └── 110-111: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 111-112: x 01 # zero bitmap encoding + │ │ └── 112-113: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x6cd1f806] + ├── data offset: 482 length: 115 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 70000000 # col 5: page start 112 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 71000000 # col 6: page start 113 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 6c # data[02]: l + │ │ │ ├── 054-055: x 6d # data[03]: m + │ │ │ └── 055-056: x 6e # data[04]: n + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 05 # data[1] = 5 [98 overall] + │ │ │ │ ├── 091-092: x 0a # data[2] = 10 [103 overall] + │ │ │ │ └── 092-093: x 13 # data[3] = 19 [112 overall] + │ │ │ └── data + │ │ │ ├── 093-098: x 6c656d6f6e # data[0]: lemon + │ │ │ ├── 098-103: x 6d616e676f # data[1]: mango + │ │ │ └── 103-112: x 6e6563746172696e65 # data[2]: nectarine + │ │ ├── data for column 5 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ └── 114-115: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x431d47b8] + ├── data offset: 602 length: 113 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6e000000 # col 5: page start 110 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 6f000000 # col 6: page start 111 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 6f # data[02]: o + │ │ │ └── 053-054: x 70 # data[03]: p + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 06 # data[1] = 6 [98 overall] + │ │ │ │ └── 091-092: x 12 # data[2] = 18 [110 overall] + │ │ │ └── data + │ │ │ ├── 092-098: x 6f72616e6765 # data[0]: orange + │ │ │ └── 098-110: x 70616d706c656d6f75737365 # data[1]: pamplemousse + │ │ ├── data for column 5 (bool) + │ │ │ └── 110-111: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 111-112: x 01 # zero bitmap encoding + │ │ └── 112-113: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xc9a1bc98] + ├── data offset: 720 length: 110 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6b000000 # col 5: page start 107 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 6c000000 # col 6: page start 108 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 71 # data[02]: q + │ │ │ └── 053-054: x 72 # data[03]: r + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 06 # data[1] = 6 [98 overall] + │ │ │ │ └── 091-092: x 0f # data[2] = 15 [107 overall] + │ │ │ └── data + │ │ │ ├── 092-098: x 7175696e6365 # data[0]: quince + │ │ │ └── 098-107: x 726173706265727279 # data[1]: raspberry + │ │ ├── data for column 5 (bool) + │ │ │ └── 107-108: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 108-109: x 01 # zero bitmap encoding + │ │ └── 109-110: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x9ed7918a] + ├── data offset: 835 length: 114 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6f000000 # col 5: page start 111 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 70000000 # col 6: page start 112 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 73 # data[02]: s + │ │ │ └── 053-054: x 74 # data[03]: t + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 0a # data[1] = 10 [102 overall] + │ │ │ │ └── 091-092: x 13 # data[2] = 19 [111 overall] + │ │ │ └── data + │ │ │ ├── 092-102: x 73747261776265727279 # data[0]: strawberry + │ │ │ └── 102-111: x 74616e676572696e65 # data[1]: tangerine + │ │ ├── data for column 5 (bool) + │ │ │ └── 111-112: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ └── 113-114: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x6027b22b] + ├── data offset: 954 length: 89 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 00-04: x 01000000 # maximum key length: 1 + │ │ │ ├── 04-05: x 01 # version 1 + │ │ │ ├── 05-07: x 0700 # 7 columns + │ │ │ ├── 07-11: x 01000000 # 1 rows + │ │ │ ├── 11-12: b 00000100 # col 0: prefixbytes + │ │ │ ├── 12-16: x 2e000000 # col 0: page start 46 + │ │ │ ├── 16-17: b 00000011 # col 1: bytes + │ │ │ ├── 17-21: x 34000000 # col 1: page start 52 + │ │ │ ├── 21-22: b 00000010 # col 2: uint + │ │ │ ├── 22-26: x 35000000 # col 2: page start 53 + │ │ │ ├── 26-27: b 00000001 # col 3: bool + │ │ │ ├── 27-31: x 3e000000 # col 3: page start 62 + │ │ │ ├── 31-32: b 00000011 # col 4: bytes + │ │ │ ├── 32-36: x 50000000 # col 4: page start 80 + │ │ │ ├── 36-37: b 00000001 # col 5: bool + │ │ │ ├── 37-41: x 56000000 # col 5: page start 86 + │ │ │ ├── 41-42: b 00000001 # col 6: bool + │ │ │ └── 42-46: x 57000000 # col 6: page start 87 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 46-47: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 47-48: x 01 # encoding: 1b + │ │ │ │ ├── 48-49: x 01 # data[0] = 1 [52 overall] + │ │ │ │ ├── 49-50: x 01 # data[1] = 1 [52 overall] + │ │ │ │ └── 50-51: x 01 # data[2] = 1 [52 overall] + │ │ │ └── data + │ │ │ ├── 51-52: x 75 # data[00]: u (block prefix) + │ │ │ ├── 52-52: x # data[01]: . (bundle prefix) + │ │ │ └── 52-52: x # data[02]: . + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 52-53: x 00 # encoding: zero + │ │ │ └── data + │ │ │ └── 53-53: x # data[0]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 53-54: x 80 # encoding: const + │ │ │ └── 54-62: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 62-63: x 00 # default bitmap encoding + │ │ │ ├── 63-64: x 00 # padding to align to 64-bit boundary + │ │ │ ├── 64-72: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 80-81: x 01 # encoding: 1b + │ │ │ │ ├── 81-82: x 00 # data[0] = 0 [83 overall] + │ │ │ │ └── 82-83: x 03 # data[1] = 3 [86 overall] + │ │ │ └── data + │ │ │ └── 83-86: x 756d65 # data[0]: ume + │ │ ├── data for column 5 (bool) + │ │ │ └── 86-87: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 87-88: x 01 # zero bitmap encoding + │ │ └── 88-89: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x228c6ee8] + ├── index offset: 1048 length: 110 + │ ├── 00000 block:0/116 + │ │ + │ ├── 00001 block:121/116 + │ │ + │ ├── 00002 block:242/117 + │ │ + │ ├── 00003 block:364/113 + │ │ + │ └── trailer [compression=none checksum=0x3df89c5f] + ├── index offset: 1163 length: 110 + │ ├── 00000 block:482/115 + │ │ + │ ├── 00001 block:602/113 + │ │ + │ ├── 00002 block:720/110 + │ │ + │ ├── 00003 block:835/114 + │ │ + │ └── trailer [compression=none checksum=0x2b2e2864] + ├── index offset: 1278 length: 59 + │ ├── 00000 block:954/89 + │ │ + │ └── trailer [compression=none checksum=0x2d50fda3] + ├── top-index offset: 1342 length: 96 + │ ├── 00000 block:1048/110 + │ │ + │ ├── 00001 block:1163/110 + │ │ + │ ├── 00002 block:1278/59 + │ │ + │ └── trailer [compression=none checksum=0x462d3144] + ├── properties offset: 1443 length: 571 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.internal.testkeys.suffixes (48) + │ ├── 00064 rocksdb.block.based.table.index.type (43) + │ ├── 00107 rocksdb.comparator (37) + │ ├── 00144 rocksdb.compression (23) + │ ├── 00167 rocksdb.compression_options (106) + │ ├── 00273 rocksdb.data.size (14) + │ ├── 00287 rocksdb.deleted.keys (15) + │ ├── 00302 rocksdb.filter.size (15) + │ ├── 00317 rocksdb.index.partitions (20) + │ ├── 00337 rocksdb.index.size (9) + │ ├── 00346 rocksdb.merge.operands (18) + │ ├── 00364 rocksdb.merge.operator (24) + │ ├── 00388 rocksdb.num.data.blocks (19) + │ ├── 00407 rocksdb.num.entries (11) + │ ├── 00418 rocksdb.num.range-deletions (19) + │ ├── 00437 rocksdb.property.collectors (70) + │ ├── 00507 rocksdb.raw.key.size (17) + │ ├── 00524 rocksdb.raw.value.size (15) + │ ├── 00539 rocksdb.top-level.index.size (24) + │ ├── restart points + │ │ └── 00563 [restart 0] + │ └── trailer [compression=none checksum=0x3542de03] + ├── meta-index offset: 2019 length: 33 + │ ├── 0000 rocksdb.properties block:1443/571 [restart] + │ ├── restart points + │ │ └── 00025 [restart 0] + │ └── trailer [compression=none checksum=0x5e4da9f6] + └── footer offset: 2057 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=2019, length=33 + ├── 004 index: offset=1342, length=96 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 open ---- @@ -987,670 +971,656 @@ pebble.internal.testkeys.suffixes: hex:0000ffffffffffffffffff01 layout ---- - 0 data (116) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 71000000 # col 5: page start 113 - 041-042: b 00000001 # col 6: bool - 042-046: x 72000000 # col 6: page start 114 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 61 # data[02]: a - 054-055: x 62 # data[03]: b - 055-056: x 63 # data[04]: c - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 05 # data[1] = 5 [98 overall] - 091-092: x 0b # data[2] = 11 [104 overall] - 092-093: x 14 # data[3] = 20 [113 overall] - # data - 093-098: x 6170706c65 # data[0]: apple - 098-104: x 62616e616e61 # data[1]: banana - 104-113: x 63616e74656c6f7065 # data[2]: cantelope - # data for column 5 - 113-114: x 01 # bitmap encoding - # data for column 6 - 114-115: x 01 # bitmap encoding - 115-116: x 00 # block padding byte - 116 [trailer compression=none checksum=0xe7b15329] - 121 data (116) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 71000000 # col 5: page start 113 - 041-042: b 00000001 # col 6: bool - 042-046: x 72000000 # col 6: page start 114 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 64 # data[02]: d - 053-054: x 65 # data[03]: e - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 0b # data[1] = 11 [103 overall] - 091-092: x 15 # data[2] = 21 [113 overall] - # data - 092-103: x 647261676f6e6672756974 # data[0]: dragonfruit - 103-113: x 656c6465726265727279 # data[1]: elderberry - # data for column 5 - 113-114: x 01 # bitmap encoding - # data for column 6 - 114-115: x 01 # bitmap encoding - 115-116: x 00 # block padding byte - 237 [trailer compression=none checksum=0xd56f1e7d] - 242 data (117) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 72000000 # col 5: page start 114 - 041-042: b 00000001 # col 6: bool - 042-046: x 73000000 # col 6: page start 115 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 66 # data[02]: f - 054-055: x 67 # data[03]: g - 055-056: x 68 # data[04]: h - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 03 # data[1] = 3 [96 overall] - 091-092: x 0d # data[2] = 13 [106 overall] - 092-093: x 15 # data[3] = 21 [114 overall] - # data - 093-096: x 666967 # data[0]: fig - 096-106: x 67726170656672756974 # data[1]: grapefruit - 106-114: x 686f6e6579646577 # data[2]: honeydew - # data for column 5 - 114-115: x 01 # bitmap encoding - # data for column 6 - 115-116: x 01 # bitmap encoding - 116-117: x 00 # block padding byte - 359 [trailer compression=none checksum=0xf74eefc6] - 364 data (113) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6e000000 # col 5: page start 110 - 041-042: b 00000001 # col 6: bool - 042-046: x 6f000000 # col 6: page start 111 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 69 # data[02]: i - 054-055: x 6a # data[03]: j - 055-056: x 6b # data[04]: k - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 04 # data[1] = 4 [97 overall] - 091-092: x 0d # data[2] = 13 [106 overall] - 092-093: x 11 # data[3] = 17 [110 overall] - # data - 093-097: x 696d6265 # data[0]: imbe - 097-106: x 6a61636b6672756974 # data[1]: jackfruit - 106-110: x 6b697769 # data[2]: kiwi - # data for column 5 - 110-111: x 01 # bitmap encoding - # data for column 6 - 111-112: x 01 # bitmap encoding - 112-113: x 00 # block padding byte - 477 [trailer compression=none checksum=0x6cd1f806] - 482 data (115) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 03000000 # 3 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 39000000 # col 2: page start 57 - 026-027: b 00000001 # col 3: bool - 027-031: x 42000000 # col 3: page start 66 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 70000000 # col 5: page start 112 - 041-042: b 00000001 # col 6: bool - 042-046: x 71000000 # col 6: page start 113 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [53 overall] - 049-050: x 00 # data[1] = 0 [53 overall] - 050-051: x 01 # data[2] = 1 [54 overall] - 051-052: x 02 # data[3] = 2 [55 overall] - 052-053: x 03 # data[4] = 3 [56 overall] - # Data - 053-053: x # data[00]: (block prefix) - 053-053: x # data[01]: (bundle prefix) - 053-054: x 6c # data[02]: l - 054-055: x 6d # data[03]: m - 055-056: x 6e # data[04]: n - # data for column 1 - # rawbytes - # offsets table - 056-057: x 00 # encoding: zero - # data - 057-057: x # data[0]: - 057-057: x # data[1]: - 057-057: x # data[2]: - # data for column 2 - 057-058: x 80 # encoding: const - 058-066: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 066-067: x 00 # bitmap encoding - 067-072: x 0000000000 # padding to align to 64-bit boundary - 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [93 overall] - 090-091: x 05 # data[1] = 5 [98 overall] - 091-092: x 0a # data[2] = 10 [103 overall] - 092-093: x 13 # data[3] = 19 [112 overall] - # data - 093-098: x 6c656d6f6e # data[0]: lemon - 098-103: x 6d616e676f # data[1]: mango - 103-112: x 6e6563746172696e65 # data[2]: nectarine - # data for column 5 - 112-113: x 01 # bitmap encoding - # data for column 6 - 113-114: x 01 # bitmap encoding - 114-115: x 00 # block padding byte - 597 [trailer compression=none checksum=0x431d47b8] - 602 data (113) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6e000000 # col 5: page start 110 - 041-042: b 00000001 # col 6: bool - 042-046: x 6f000000 # col 6: page start 111 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 6f # data[02]: o - 053-054: x 70 # data[03]: p - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 06 # data[1] = 6 [98 overall] - 091-092: x 12 # data[2] = 18 [110 overall] - # data - 092-098: x 6f72616e6765 # data[0]: orange - 098-110: x 70616d706c656d6f75737365 # data[1]: pamplemousse - # data for column 5 - 110-111: x 01 # bitmap encoding - # data for column 6 - 111-112: x 01 # bitmap encoding - 112-113: x 00 # block padding byte - 715 [trailer compression=none checksum=0xc9a1bc98] - 720 data (110) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6b000000 # col 5: page start 107 - 041-042: b 00000001 # col 6: bool - 042-046: x 6c000000 # col 6: page start 108 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 71 # data[02]: q - 053-054: x 72 # data[03]: r - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 06 # data[1] = 6 [98 overall] - 091-092: x 0f # data[2] = 15 [107 overall] - # data - 092-098: x 7175696e6365 # data[0]: quince - 098-107: x 726173706265727279 # data[1]: raspberry - # data for column 5 - 107-108: x 01 # bitmap encoding - # data for column 6 - 108-109: x 01 # bitmap encoding - 109-110: x 00 # block padding byte - 830 [trailer compression=none checksum=0x9ed7918a] - 835 data (114) - # data block header - 000-004: x 01000000 # maximum key length: 1 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 02000000 # 2 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 36000000 # col 1: page start 54 - 021-022: b 00000010 # col 2: uint - 022-026: x 37000000 # col 2: page start 55 - 026-027: b 00000001 # col 3: bool - 027-031: x 40000000 # col 3: page start 64 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 6f000000 # col 5: page start 111 - 041-042: b 00000001 # col 6: bool - 042-046: x 70000000 # col 6: page start 112 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [52 overall] - 049-050: x 00 # data[1] = 0 [52 overall] - 050-051: x 01 # data[2] = 1 [53 overall] - 051-052: x 02 # data[3] = 2 [54 overall] - # Data - 052-052: x # data[00]: (block prefix) - 052-052: x # data[01]: (bundle prefix) - 052-053: x 73 # data[02]: s - 053-054: x 74 # data[03]: t - # data for column 1 - # rawbytes - # offsets table - 054-055: x 00 # encoding: zero - # data - 055-055: x # data[0]: - 055-055: x # data[1]: - # data for column 2 - 055-056: x 80 # encoding: const - 056-064: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 064-065: x 00 # bitmap encoding - 065-072: x 00000000000000 # padding to align to 64-bit boundary - 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [92 overall] - 090-091: x 0a # data[1] = 10 [102 overall] - 091-092: x 13 # data[2] = 19 [111 overall] - # data - 092-102: x 73747261776265727279 # data[0]: strawberry - 102-111: x 74616e676572696e65 # data[1]: tangerine - # data for column 5 - 111-112: x 01 # bitmap encoding - # data for column 6 - 112-113: x 01 # bitmap encoding - 113-114: x 00 # block padding byte - 949 [trailer compression=none checksum=0x6027b22b] - 954 data (89) - # data block header - 00-04: x 01000000 # maximum key length: 1 - # columnar block header - 04-05: x 01 # version 1 - 05-07: x 0700 # 7 columns - 07-11: x 01000000 # 1 rows - 11-12: b 00000100 # col 0: prefixbytes - 12-16: x 2e000000 # col 0: page start 46 - 16-17: b 00000011 # col 1: bytes - 17-21: x 34000000 # col 1: page start 52 - 21-22: b 00000010 # col 2: uint - 22-26: x 35000000 # col 2: page start 53 - 26-27: b 00000001 # col 3: bool - 27-31: x 3e000000 # col 3: page start 62 - 31-32: b 00000011 # col 4: bytes - 32-36: x 50000000 # col 4: page start 80 - 36-37: b 00000001 # col 5: bool - 37-41: x 56000000 # col 5: page start 86 - 41-42: b 00000001 # col 6: bool - 42-46: x 57000000 # col 6: page start 87 - # data for column 0 - # PrefixBytes - 46-47: x 04 # bundleSize: 16 - # Offsets table - 47-48: x 01 # encoding: 1b - 48-49: x 01 # data[0] = 1 [52 overall] - 49-50: x 01 # data[1] = 1 [52 overall] - 50-51: x 01 # data[2] = 1 [52 overall] - # Data - 51-52: x 75 # data[00]: u (block prefix) - 52-52: x # data[01]: . (bundle prefix) - 52-52: x # data[02]: . - # data for column 1 - # rawbytes - # offsets table - 52-53: x 00 # encoding: zero - # data - 53-53: x # data[0]: - # data for column 2 - 53-54: x 80 # encoding: const - 54-62: x 0101000000000000 # 64-bit constant: 257 - # data for column 3 - 62-63: x 00 # bitmap encoding - 63-64: x 00 # padding to align to 64-bit boundary - 64-72: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 80-81: x 01 # encoding: 1b - 81-82: x 00 # data[0] = 0 [83 overall] - 82-83: x 03 # data[1] = 3 [86 overall] - # data - 83-86: x 756d65 # data[0]: ume - # data for column 5 - 86-87: x 01 # bitmap encoding - # data for column 6 - 87-88: x 01 # bitmap encoding - 88-89: x 00 # block padding byte - 1043 [trailer compression=none checksum=0x228c6ee8] - 1048 index (110) - 0 block:0/116 - 1 block:121/116 - 2 block:242/117 - 3 block:364/113 - 1158 [trailer compression=none checksum=0x3df89c5f] - 1163 index (110) - 0 block:482/115 - 1 block:602/113 - 2 block:720/110 - 3 block:835/114 - 1273 [trailer compression=none checksum=0x2b2e2864] - 1278 index (59) - 0 block:954/89 - 1337 [trailer compression=none checksum=0x2d50fda3] - 1342 top-index (96) - 0 block:1048/110 - 1 block:1163/110 - 2 block:1278/59 - 1438 [trailer compression=none checksum=0x462d3144] - 1443 properties (571) - 1443 obsolete-key (16) [restart] - 1459 pebble.internal.testkeys.suffixes (48) - 1507 rocksdb.block.based.table.index.type (43) - 1550 rocksdb.comparator (37) - 1587 rocksdb.compression (23) - 1610 rocksdb.compression_options (106) - 1716 rocksdb.data.size (14) - 1730 rocksdb.deleted.keys (15) - 1745 rocksdb.filter.size (15) - 1760 rocksdb.index.partitions (20) - 1780 rocksdb.index.size (9) - 1789 rocksdb.merge.operands (18) - 1807 rocksdb.merge.operator (24) - 1831 rocksdb.num.data.blocks (19) - 1850 rocksdb.num.entries (11) - 1861 rocksdb.num.range-deletions (19) - 1880 rocksdb.property.collectors (70) - 1950 rocksdb.raw.key.size (17) - 1967 rocksdb.raw.value.size (15) - 1982 rocksdb.top-level.index.size (24) - 2006 [restart 1443] - 2014 [trailer compression=none checksum=0x3542de03] - 2019 meta-index (33) - 2019 rocksdb.properties block:1443/571 [restart] - 2044 [restart 2019] - 2052 [trailer compression=none checksum=0x5e4da9f6] - 2057 footer (53) - 2057 checksum type: crc32c - 2058 meta: offset=2019, length=33 - 2061 index: offset=1342, length=96 - 2064 [padding] - 2098 version: 5 - 2102 magic number: 0xf09faab3f09faab3 - 2110 EOF +sstable + ├── data offset: 0 length: 116 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 71000000 # col 5: page start 113 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 72000000 # col 6: page start 114 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 61 # data[02]: a + │ │ │ ├── 054-055: x 62 # data[03]: b + │ │ │ └── 055-056: x 63 # data[04]: c + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 05 # data[1] = 5 [98 overall] + │ │ │ │ ├── 091-092: x 0b # data[2] = 11 [104 overall] + │ │ │ │ └── 092-093: x 14 # data[3] = 20 [113 overall] + │ │ │ └── data + │ │ │ ├── 093-098: x 6170706c65 # data[0]: apple + │ │ │ ├── 098-104: x 62616e616e61 # data[1]: banana + │ │ │ └── 104-113: x 63616e74656c6f7065 # data[2]: cantelope + │ │ ├── data for column 5 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ └── 115-116: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xe7b15329] + ├── data offset: 121 length: 116 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 71000000 # col 5: page start 113 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 72000000 # col 6: page start 114 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 64 # data[02]: d + │ │ │ └── 053-054: x 65 # data[03]: e + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 0b # data[1] = 11 [103 overall] + │ │ │ │ └── 091-092: x 15 # data[2] = 21 [113 overall] + │ │ │ └── data + │ │ │ ├── 092-103: x 647261676f6e6672756974 # data[0]: dragonfruit + │ │ │ └── 103-113: x 656c6465726265727279 # data[1]: elderberry + │ │ ├── data for column 5 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ └── 115-116: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xd56f1e7d] + ├── data offset: 242 length: 117 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 72000000 # col 5: page start 114 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 73000000 # col 6: page start 115 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 66 # data[02]: f + │ │ │ ├── 054-055: x 67 # data[03]: g + │ │ │ └── 055-056: x 68 # data[04]: h + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 03 # data[1] = 3 [96 overall] + │ │ │ │ ├── 091-092: x 0d # data[2] = 13 [106 overall] + │ │ │ │ └── 092-093: x 15 # data[3] = 21 [114 overall] + │ │ │ └── data + │ │ │ ├── 093-096: x 666967 # data[0]: fig + │ │ │ ├── 096-106: x 67726170656672756974 # data[1]: grapefruit + │ │ │ └── 106-114: x 686f6e6579646577 # data[2]: honeydew + │ │ ├── data for column 5 (bool) + │ │ │ └── 114-115: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 115-116: x 01 # zero bitmap encoding + │ │ └── 116-117: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xf74eefc6] + ├── data offset: 364 length: 113 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6e000000 # col 5: page start 110 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 6f000000 # col 6: page start 111 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 69 # data[02]: i + │ │ │ ├── 054-055: x 6a # data[03]: j + │ │ │ └── 055-056: x 6b # data[04]: k + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 04 # data[1] = 4 [97 overall] + │ │ │ │ ├── 091-092: x 0d # data[2] = 13 [106 overall] + │ │ │ │ └── 092-093: x 11 # data[3] = 17 [110 overall] + │ │ │ └── data + │ │ │ ├── 093-097: x 696d6265 # data[0]: imbe + │ │ │ ├── 097-106: x 6a61636b6672756974 # data[1]: jackfruit + │ │ │ └── 106-110: x 6b697769 # data[2]: kiwi + │ │ ├── data for column 5 (bool) + │ │ │ └── 110-111: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 111-112: x 01 # zero bitmap encoding + │ │ └── 112-113: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x6cd1f806] + ├── data offset: 482 length: 115 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 03000000 # 3 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 39000000 # col 2: page start 57 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 42000000 # col 3: page start 66 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 70000000 # col 5: page start 112 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 71000000 # col 6: page start 113 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [53 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [53 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [54 overall] + │ │ │ │ ├── 051-052: x 02 # data[3] = 2 [55 overall] + │ │ │ │ └── 052-053: x 03 # data[4] = 3 [56 overall] + │ │ │ └── data + │ │ │ ├── 053-053: x # data[00]: (block prefix) + │ │ │ ├── 053-053: x # data[01]: (bundle prefix) + │ │ │ ├── 053-054: x 6c # data[02]: l + │ │ │ ├── 054-055: x 6d # data[03]: m + │ │ │ └── 055-056: x 6e # data[04]: n + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 056-057: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 057-057: x # data[0]: + │ │ │ ├── 057-057: x # data[1]: + │ │ │ └── 057-057: x # data[2]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 057-058: x 80 # encoding: const + │ │ │ └── 058-066: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 066-067: x 00 # default bitmap encoding + │ │ │ ├── 067-072: x 0000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000011100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [93 overall] + │ │ │ │ ├── 090-091: x 05 # data[1] = 5 [98 overall] + │ │ │ │ ├── 091-092: x 0a # data[2] = 10 [103 overall] + │ │ │ │ └── 092-093: x 13 # data[3] = 19 [112 overall] + │ │ │ └── data + │ │ │ ├── 093-098: x 6c656d6f6e # data[0]: lemon + │ │ │ ├── 098-103: x 6d616e676f # data[1]: mango + │ │ │ └── 103-112: x 6e6563746172696e65 # data[2]: nectarine + │ │ ├── data for column 5 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ └── 114-115: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x431d47b8] + ├── data offset: 602 length: 113 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6e000000 # col 5: page start 110 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 6f000000 # col 6: page start 111 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 6f # data[02]: o + │ │ │ └── 053-054: x 70 # data[03]: p + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 06 # data[1] = 6 [98 overall] + │ │ │ │ └── 091-092: x 12 # data[2] = 18 [110 overall] + │ │ │ └── data + │ │ │ ├── 092-098: x 6f72616e6765 # data[0]: orange + │ │ │ └── 098-110: x 70616d706c656d6f75737365 # data[1]: pamplemousse + │ │ ├── data for column 5 (bool) + │ │ │ └── 110-111: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 111-112: x 01 # zero bitmap encoding + │ │ └── 112-113: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xc9a1bc98] + ├── data offset: 720 length: 110 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6b000000 # col 5: page start 107 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 6c000000 # col 6: page start 108 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 71 # data[02]: q + │ │ │ └── 053-054: x 72 # data[03]: r + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 06 # data[1] = 6 [98 overall] + │ │ │ │ └── 091-092: x 0f # data[2] = 15 [107 overall] + │ │ │ └── data + │ │ │ ├── 092-098: x 7175696e6365 # data[0]: quince + │ │ │ └── 098-107: x 726173706265727279 # data[1]: raspberry + │ │ ├── data for column 5 (bool) + │ │ │ └── 107-108: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 108-109: x 01 # zero bitmap encoding + │ │ └── 109-110: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x9ed7918a] + ├── data offset: 835 length: 114 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 01000000 # maximum key length: 1 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 02000000 # 2 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 36000000 # col 1: page start 54 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 37000000 # col 2: page start 55 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 40000000 # col 3: page start 64 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 6f000000 # col 5: page start 111 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 70000000 # col 6: page start 112 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [52 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [52 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [53 overall] + │ │ │ │ └── 051-052: x 02 # data[3] = 2 [54 overall] + │ │ │ └── data + │ │ │ ├── 052-052: x # data[00]: (block prefix) + │ │ │ ├── 052-052: x # data[01]: (bundle prefix) + │ │ │ ├── 052-053: x 73 # data[02]: s + │ │ │ └── 053-054: x 74 # data[03]: t + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 054-055: x 00 # encoding: zero + │ │ │ └── data + │ │ │ ├── 055-055: x # data[0]: + │ │ │ └── 055-055: x # data[1]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 055-056: x 80 # encoding: const + │ │ │ └── 056-064: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 064-065: x 00 # default bitmap encoding + │ │ │ ├── 065-072: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000001100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [92 overall] + │ │ │ │ ├── 090-091: x 0a # data[1] = 10 [102 overall] + │ │ │ │ └── 091-092: x 13 # data[2] = 19 [111 overall] + │ │ │ └── data + │ │ │ ├── 092-102: x 73747261776265727279 # data[0]: strawberry + │ │ │ └── 102-111: x 74616e676572696e65 # data[1]: tangerine + │ │ ├── data for column 5 (bool) + │ │ │ └── 111-112: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ └── 113-114: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x6027b22b] + ├── data offset: 954 length: 89 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 00-04: x 01000000 # maximum key length: 1 + │ │ │ ├── 04-05: x 01 # version 1 + │ │ │ ├── 05-07: x 0700 # 7 columns + │ │ │ ├── 07-11: x 01000000 # 1 rows + │ │ │ ├── 11-12: b 00000100 # col 0: prefixbytes + │ │ │ ├── 12-16: x 2e000000 # col 0: page start 46 + │ │ │ ├── 16-17: b 00000011 # col 1: bytes + │ │ │ ├── 17-21: x 34000000 # col 1: page start 52 + │ │ │ ├── 21-22: b 00000010 # col 2: uint + │ │ │ ├── 22-26: x 35000000 # col 2: page start 53 + │ │ │ ├── 26-27: b 00000001 # col 3: bool + │ │ │ ├── 27-31: x 3e000000 # col 3: page start 62 + │ │ │ ├── 31-32: b 00000011 # col 4: bytes + │ │ │ ├── 32-36: x 50000000 # col 4: page start 80 + │ │ │ ├── 36-37: b 00000001 # col 5: bool + │ │ │ ├── 37-41: x 56000000 # col 5: page start 86 + │ │ │ ├── 41-42: b 00000001 # col 6: bool + │ │ │ └── 42-46: x 57000000 # col 6: page start 87 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 46-47: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 47-48: x 01 # encoding: 1b + │ │ │ │ ├── 48-49: x 01 # data[0] = 1 [52 overall] + │ │ │ │ ├── 49-50: x 01 # data[1] = 1 [52 overall] + │ │ │ │ └── 50-51: x 01 # data[2] = 1 [52 overall] + │ │ │ └── data + │ │ │ ├── 51-52: x 75 # data[00]: u (block prefix) + │ │ │ ├── 52-52: x # data[01]: . (bundle prefix) + │ │ │ └── 52-52: x # data[02]: . + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 52-53: x 00 # encoding: zero + │ │ │ └── data + │ │ │ └── 53-53: x # data[0]: + │ │ ├── data for column 2 (uint) + │ │ │ ├── 53-54: x 80 # encoding: const + │ │ │ └── 54-62: x 0101000000000000 # 64-bit constant: 257 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 62-63: x 00 # default bitmap encoding + │ │ │ ├── 63-64: x 00 # padding to align to 64-bit boundary + │ │ │ ├── 64-72: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 80-81: x 01 # encoding: 1b + │ │ │ │ ├── 81-82: x 00 # data[0] = 0 [83 overall] + │ │ │ │ └── 82-83: x 03 # data[1] = 3 [86 overall] + │ │ │ └── data + │ │ │ └── 83-86: x 756d65 # data[0]: ume + │ │ ├── data for column 5 (bool) + │ │ │ └── 86-87: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 87-88: x 01 # zero bitmap encoding + │ │ └── 88-89: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x228c6ee8] + ├── index offset: 1048 length: 110 + │ ├── 00000 block:0/116 + │ │ + │ ├── 00001 block:121/116 + │ │ + │ ├── 00002 block:242/117 + │ │ + │ ├── 00003 block:364/113 + │ │ + │ └── trailer [compression=none checksum=0x3df89c5f] + ├── index offset: 1163 length: 110 + │ ├── 00000 block:482/115 + │ │ + │ ├── 00001 block:602/113 + │ │ + │ ├── 00002 block:720/110 + │ │ + │ ├── 00003 block:835/114 + │ │ + │ └── trailer [compression=none checksum=0x2b2e2864] + ├── index offset: 1278 length: 59 + │ ├── 00000 block:954/89 + │ │ + │ └── trailer [compression=none checksum=0x2d50fda3] + ├── top-index offset: 1342 length: 96 + │ ├── 00000 block:1048/110 + │ │ + │ ├── 00001 block:1163/110 + │ │ + │ ├── 00002 block:1278/59 + │ │ + │ └── trailer [compression=none checksum=0x462d3144] + ├── properties offset: 1443 length: 571 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.internal.testkeys.suffixes (48) + │ ├── 00064 rocksdb.block.based.table.index.type (43) + │ ├── 00107 rocksdb.comparator (37) + │ ├── 00144 rocksdb.compression (23) + │ ├── 00167 rocksdb.compression_options (106) + │ ├── 00273 rocksdb.data.size (14) + │ ├── 00287 rocksdb.deleted.keys (15) + │ ├── 00302 rocksdb.filter.size (15) + │ ├── 00317 rocksdb.index.partitions (20) + │ ├── 00337 rocksdb.index.size (9) + │ ├── 00346 rocksdb.merge.operands (18) + │ ├── 00364 rocksdb.merge.operator (24) + │ ├── 00388 rocksdb.num.data.blocks (19) + │ ├── 00407 rocksdb.num.entries (11) + │ ├── 00418 rocksdb.num.range-deletions (19) + │ ├── 00437 rocksdb.property.collectors (70) + │ ├── 00507 rocksdb.raw.key.size (17) + │ ├── 00524 rocksdb.raw.value.size (15) + │ ├── 00539 rocksdb.top-level.index.size (24) + │ ├── restart points + │ │ └── 00563 [restart 0] + │ └── trailer [compression=none checksum=0x3542de03] + ├── meta-index offset: 2019 length: 33 + │ ├── 0000 rocksdb.properties block:1443/571 [restart] + │ ├── restart points + │ │ └── 00025 [restart 0] + │ └── trailer [compression=none checksum=0x5e4da9f6] + └── footer offset: 2057 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=2019, length=33 + ├── 004 index: offset=1342, length=96 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 # Test a sstable containing only a range deletion. @@ -1666,91 +1636,89 @@ ok layout ---- - 0 index (28) - 28 [trailer compression=none checksum=0xb97d72f2] - 33 range-del (57) - # keyspan block header - 00-04: x 02000000 # user key count: 2 - # columnar block header - 04-05: x 01 # version 1 - 05-07: x 0500 # 5 columns - 07-11: x 01000000 # 1 rows - 11-12: b 00000011 # col 0: bytes - 12-16: x 24000000 # col 0: page start 36 - 16-17: b 00000010 # col 1: uint - 17-21: x 2a000000 # col 1: page start 42 - 21-22: b 00000010 # col 2: uint - 22-26: x 2d000000 # col 2: page start 45 - 26-27: b 00000011 # col 3: bytes - 27-31: x 36000000 # col 3: page start 54 - 31-32: b 00000011 # col 4: bytes - 32-36: x 37000000 # col 4: page start 55 - # data for column 0 - # rawbytes - # offsets table - 36-37: x 01 # encoding: 1b - 37-38: x 00 # data[0] = 0 [40 overall] - 38-39: x 01 # data[1] = 1 [41 overall] - 39-40: x 02 # data[2] = 2 [42 overall] - # data - 40-41: x 61 # data[0]: a - 41-42: x 62 # data[1]: b - # data for column 1 - 42-43: x 01 # encoding: 1b - 43-44: x 00 # data[0] = 0 - 44-45: x 01 # data[1] = 1 - # data for column 2 - 45-46: x 80 # encoding: const - 46-54: x 0f0a000000000000 # 64-bit constant: 2575 - # data for column 3 - # rawbytes - # offsets table - 54-55: x 00 # encoding: zero - # data - 55-55: x # data[0]: - # data for column 4 - # rawbytes - # offsets table - 55-56: x 00 # encoding: zero - # data - 56-56: x # data[0]: - 56-57: x 00 # block padding byte - 90 [trailer compression=none checksum=0xdf6fef49] - 95 properties (519) - 95 obsolete-key (17) [restart] - 112 pebble.internal.testkeys.suffixes (37) - 149 rocksdb.block.based.table.index.type (43) - 192 rocksdb.comparator (37) - 229 rocksdb.compression (23) - 252 rocksdb.compression_options (106) - 358 rocksdb.data.size (13) - 371 rocksdb.deleted.keys (15) - 386 rocksdb.filter.size (15) - 401 rocksdb.index.size (14) - 415 rocksdb.merge.operands (18) - 433 rocksdb.merge.operator (24) - 457 rocksdb.num.data.blocks (19) - 476 rocksdb.num.entries (11) - 487 rocksdb.num.range-deletions (19) - 506 rocksdb.property.collectors (70) - 576 rocksdb.raw.key.size (16) - 592 rocksdb.raw.value.size (14) - 606 [restart 95] - 614 [trailer compression=none checksum=0x3c8fb979] - 619 meta-index (59) - 619 rocksdb.properties block:95/519 [restart] - 643 rocksdb.range_del2 block:33/57 [restart] - 666 [restart 619] - 670 [restart 643] - 678 [trailer compression=none checksum=0x6f10fc54] - 683 footer (53) - 683 checksum type: crc32c - 684 meta: offset=619, length=59 - 687 index: offset=0, length=28 - 689 [padding] - 724 version: 5 - 728 magic number: 0xf09faab3f09faab3 - 736 EOF +sstable + ├── index offset: 0 length: 28 + │ └── trailer [compression=none checksum=0xb97d72f2] + ├── range-del offset: 33 length: 57 + │ ├── keyspan block header + │ │ ├── 00-04: x 02000000 # user key count: 2 + │ │ ├── columnar block header + │ │ │ ├── 04-05: x 01 # version 1 + │ │ │ ├── 05-07: x 0500 # 5 columns + │ │ │ ├── 07-11: x 01000000 # 1 rows + │ │ │ ├── 11-12: b 00000011 # col 0: bytes + │ │ │ ├── 12-16: x 24000000 # col 0: page start 36 + │ │ │ ├── 16-17: b 00000010 # col 1: uint + │ │ │ ├── 17-21: x 2a000000 # col 1: page start 42 + │ │ │ ├── 21-22: b 00000010 # col 2: uint + │ │ │ ├── 22-26: x 2d000000 # col 2: page start 45 + │ │ │ ├── 26-27: b 00000011 # col 3: bytes + │ │ │ ├── 27-31: x 36000000 # col 3: page start 54 + │ │ │ ├── 31-32: b 00000011 # col 4: bytes + │ │ │ └── 32-36: x 37000000 # col 4: page start 55 + │ │ ├── data for column 0 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 36-37: x 01 # encoding: 1b + │ │ │ │ ├── 37-38: x 00 # data[0] = 0 [40 overall] + │ │ │ │ ├── 38-39: x 01 # data[1] = 1 [41 overall] + │ │ │ │ └── 39-40: x 02 # data[2] = 2 [42 overall] + │ │ │ └── data + │ │ │ ├── 40-41: x 61 # data[0]: a + │ │ │ └── 41-42: x 62 # data[1]: b + │ │ ├── data for column 1 (uint) + │ │ │ ├── 42-43: x 01 # encoding: 1b + │ │ │ ├── 43-44: x 00 # data[0] = 0 + │ │ │ └── 44-45: x 01 # data[1] = 1 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 45-46: x 80 # encoding: const + │ │ │ └── 46-54: x 0f0a000000000000 # 64-bit constant: 2575 + │ │ ├── data for column 3 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 54-55: x 00 # encoding: zero + │ │ │ └── data + │ │ │ └── 55-55: x # data[0]: + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ └── 55-56: x 00 # encoding: zero + │ │ │ └── data + │ │ │ └── 56-56: x # data[0]: + │ │ └── 56-57: x 00 # block padding byte + │ └── trailer [compression=none checksum=0xdf6fef49] + ├── properties offset: 95 length: 519 + │ ├── 00000 obsolete-key (17) [restart] + │ ├── 00017 pebble.internal.testkeys.suffixes (37) + │ ├── 00054 rocksdb.block.based.table.index.type (43) + │ ├── 00097 rocksdb.comparator (37) + │ ├── 00134 rocksdb.compression (23) + │ ├── 00157 rocksdb.compression_options (106) + │ ├── 00263 rocksdb.data.size (13) + │ ├── 00276 rocksdb.deleted.keys (15) + │ ├── 00291 rocksdb.filter.size (15) + │ ├── 00306 rocksdb.index.size (14) + │ ├── 00320 rocksdb.merge.operands (18) + │ ├── 00338 rocksdb.merge.operator (24) + │ ├── 00362 rocksdb.num.data.blocks (19) + │ ├── 00381 rocksdb.num.entries (11) + │ ├── 00392 rocksdb.num.range-deletions (19) + │ ├── 00411 rocksdb.property.collectors (70) + │ ├── 00481 rocksdb.raw.key.size (16) + │ ├── 00497 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00511 [restart 0] + │ └── trailer [compression=none checksum=0x3c8fb979] + ├── meta-index offset: 619 length: 59 + │ ├── 0000 rocksdb.properties block:95/519 [restart] + │ ├── 0024 rocksdb.range_del2 block:33/57 [restart] + │ ├── restart points + │ │ ├── 00047 [restart 0] + │ │ └── 00051 [restart 24] + │ └── trailer [compression=none checksum=0x6f10fc54] + └── footer offset: 683 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=619, length=59 + ├── 004 index: offset=0, length=28 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 # Test a sstable containing only range keys. @@ -1767,106 +1735,104 @@ ok layout ---- - 0 index (28) - 28 [trailer compression=none checksum=0xb97d72f2] - 33 range-key (68) - # keyspan block header - 00-04: x 03000000 # user key count: 3 - # columnar block header - 04-05: x 01 # version 1 - 05-07: x 0500 # 5 columns - 07-11: x 02000000 # 2 rows - 11-12: b 00000011 # col 0: bytes - 12-16: x 24000000 # col 0: page start 36 - 16-17: b 00000010 # col 1: uint - 17-21: x 2c000000 # col 1: page start 44 - 21-22: b 00000010 # col 2: uint - 22-26: x 30000000 # col 2: page start 48 - 26-27: b 00000011 # col 3: bytes - 27-31: x 36000000 # col 3: page start 54 - 31-32: b 00000011 # col 4: bytes - 32-36: x 3c000000 # col 4: page start 60 - # data for column 0 - # rawbytes - # offsets table - 36-37: x 01 # encoding: 1b - 37-38: x 00 # data[0] = 0 [41 overall] - 38-39: x 01 # data[1] = 1 [42 overall] - 39-40: x 02 # data[2] = 2 [43 overall] - 40-41: x 03 # data[3] = 3 [44 overall] - # data - 41-42: x 61 # data[0]: a - 42-43: x 62 # data[1]: b - 43-44: x 63 # data[2]: c - # data for column 1 - 44-45: x 01 # encoding: 1b - 45-46: x 00 # data[0] = 0 - 46-47: x 01 # data[1] = 1 - 47-48: x 02 # data[2] = 2 - # data for column 2 - 48-49: x 02 # encoding: 2b - 49-50: x 00 # padding (aligning to 16-bit boundary) - 50-52: x 150a # data[0] = 2581 - 52-54: x 1309 # data[1] = 2323 - # data for column 3 - # rawbytes - # offsets table - 54-55: x 01 # encoding: 1b - 55-56: x 00 # data[0] = 0 [58 overall] - 56-57: x 02 # data[1] = 2 [60 overall] - 57-58: x 02 # data[2] = 2 [60 overall] - # data - 58-60: x 4035 # data[0]: @5 - 60-60: x # data[1]: - # data for column 4 - # rawbytes - # offsets table - 60-61: x 01 # encoding: 1b - 61-62: x 00 # data[0] = 0 [64 overall] - 62-63: x 03 # data[1] = 3 [67 overall] - 63-64: x 03 # data[2] = 3 [67 overall] - # data - 64-67: x 666f6f # data[0]: foo - 67-67: x # data[1]: - 67-68: x 00 # block padding byte - 101 [trailer compression=none checksum=0x45325be7] - 106 properties (601) - 106 obsolete-key (17) [restart] - 123 pebble.internal.testkeys.suffixes (39) - 162 pebble.num.range-key-dels (22) - 184 pebble.num.range-key-sets (8) - 192 pebble.num.range-key-unsets (10) - 202 pebble.raw.range-key.key.size (26) - 228 pebble.raw.range-key.value.size (14) - 242 rocksdb.block.based.table.index.type (43) - 285 rocksdb.comparator (37) - 322 rocksdb.compression (23) - 345 rocksdb.compression_options (106) - 451 rocksdb.data.size (13) - 464 rocksdb.deleted.keys (15) - 479 rocksdb.filter.size (15) - 494 rocksdb.index.size (14) - 508 rocksdb.merge.operands (18) - 526 rocksdb.merge.operator (24) - 550 rocksdb.num.data.blocks (19) - 569 rocksdb.num.entries (11) - 580 rocksdb.num.range-deletions (19) - 599 rocksdb.property.collectors (70) - 669 rocksdb.raw.key.size (16) - 685 rocksdb.raw.value.size (14) - 699 [restart 106] - 707 [trailer compression=none checksum=0x4bab3a75] - 712 meta-index (57) - 712 pebble.range_key block:33/68 [restart] - 733 rocksdb.properties block:106/601 [restart] - 757 [restart 712] - 761 [restart 733] - 769 [trailer compression=none checksum=0x8f7219ca] - 774 footer (53) - 774 checksum type: crc32c - 775 meta: offset=712, length=57 - 778 index: offset=0, length=28 - 780 [padding] - 815 version: 5 - 819 magic number: 0xf09faab3f09faab3 - 827 EOF +sstable + ├── index offset: 0 length: 28 + │ └── trailer [compression=none checksum=0xb97d72f2] + ├── range-key offset: 33 length: 68 + │ ├── keyspan block header + │ │ ├── 00-04: x 03000000 # user key count: 3 + │ │ ├── columnar block header + │ │ │ ├── 04-05: x 01 # version 1 + │ │ │ ├── 05-07: x 0500 # 5 columns + │ │ │ ├── 07-11: x 02000000 # 2 rows + │ │ │ ├── 11-12: b 00000011 # col 0: bytes + │ │ │ ├── 12-16: x 24000000 # col 0: page start 36 + │ │ │ ├── 16-17: b 00000010 # col 1: uint + │ │ │ ├── 17-21: x 2c000000 # col 1: page start 44 + │ │ │ ├── 21-22: b 00000010 # col 2: uint + │ │ │ ├── 22-26: x 30000000 # col 2: page start 48 + │ │ │ ├── 26-27: b 00000011 # col 3: bytes + │ │ │ ├── 27-31: x 36000000 # col 3: page start 54 + │ │ │ ├── 31-32: b 00000011 # col 4: bytes + │ │ │ └── 32-36: x 3c000000 # col 4: page start 60 + │ │ ├── data for column 0 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 36-37: x 01 # encoding: 1b + │ │ │ │ ├── 37-38: x 00 # data[0] = 0 [41 overall] + │ │ │ │ ├── 38-39: x 01 # data[1] = 1 [42 overall] + │ │ │ │ ├── 39-40: x 02 # data[2] = 2 [43 overall] + │ │ │ │ └── 40-41: x 03 # data[3] = 3 [44 overall] + │ │ │ └── data + │ │ │ ├── 41-42: x 61 # data[0]: a + │ │ │ ├── 42-43: x 62 # data[1]: b + │ │ │ └── 43-44: x 63 # data[2]: c + │ │ ├── data for column 1 (uint) + │ │ │ ├── 44-45: x 01 # encoding: 1b + │ │ │ ├── 45-46: x 00 # data[0] = 0 + │ │ │ ├── 46-47: x 01 # data[1] = 1 + │ │ │ └── 47-48: x 02 # data[2] = 2 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 48-49: x 02 # encoding: 2b + │ │ │ ├── 49-50: x 00 # padding (aligning to 16-bit boundary) + │ │ │ ├── 50-52: x 150a # data[0] = 2581 + │ │ │ └── 52-54: x 1309 # data[1] = 2323 + │ │ ├── data for column 3 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 54-55: x 01 # encoding: 1b + │ │ │ │ ├── 55-56: x 00 # data[0] = 0 [58 overall] + │ │ │ │ ├── 56-57: x 02 # data[1] = 2 [60 overall] + │ │ │ │ └── 57-58: x 02 # data[2] = 2 [60 overall] + │ │ │ └── data + │ │ │ ├── 58-60: x 4035 # data[0]: @5 + │ │ │ └── 60-60: x # data[1]: + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 60-61: x 01 # encoding: 1b + │ │ │ │ ├── 61-62: x 00 # data[0] = 0 [64 overall] + │ │ │ │ ├── 62-63: x 03 # data[1] = 3 [67 overall] + │ │ │ │ └── 63-64: x 03 # data[2] = 3 [67 overall] + │ │ │ └── data + │ │ │ ├── 64-67: x 666f6f # data[0]: foo + │ │ │ └── 67-67: x # data[1]: + │ │ └── 67-68: x 00 # block padding byte + │ └── trailer [compression=none checksum=0x45325be7] + ├── properties offset: 106 length: 601 + │ ├── 00000 obsolete-key (17) [restart] + │ ├── 00017 pebble.internal.testkeys.suffixes (39) + │ ├── 00056 pebble.num.range-key-dels (22) + │ ├── 00078 pebble.num.range-key-sets (8) + │ ├── 00086 pebble.num.range-key-unsets (10) + │ ├── 00096 pebble.raw.range-key.key.size (26) + │ ├── 00122 pebble.raw.range-key.value.size (14) + │ ├── 00136 rocksdb.block.based.table.index.type (43) + │ ├── 00179 rocksdb.comparator (37) + │ ├── 00216 rocksdb.compression (23) + │ ├── 00239 rocksdb.compression_options (106) + │ ├── 00345 rocksdb.data.size (13) + │ ├── 00358 rocksdb.deleted.keys (15) + │ ├── 00373 rocksdb.filter.size (15) + │ ├── 00388 rocksdb.index.size (14) + │ ├── 00402 rocksdb.merge.operands (18) + │ ├── 00420 rocksdb.merge.operator (24) + │ ├── 00444 rocksdb.num.data.blocks (19) + │ ├── 00463 rocksdb.num.entries (11) + │ ├── 00474 rocksdb.num.range-deletions (19) + │ ├── 00493 rocksdb.property.collectors (70) + │ ├── 00563 rocksdb.raw.key.size (16) + │ ├── 00579 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00593 [restart 0] + │ └── trailer [compression=none checksum=0x4bab3a75] + ├── meta-index offset: 712 length: 57 + │ ├── 0000 pebble.range_key block:33/68 [restart] + │ ├── 0021 rocksdb.properties block:106/601 [restart] + │ ├── restart points + │ │ ├── 00045 [restart 0] + │ │ └── 00049 [restart 21] + │ └── trailer [compression=none checksum=0x8f7219ca] + └── footer offset: 774 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=712, length=57 + ├── 004 index: offset=0, length=28 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 diff --git a/sstable/testdata/rewriter b/sstable/testdata/rewriter index 5724c43a44..7ada05116c 100644 --- a/sstable/testdata/rewriter +++ b/sstable/testdata/rewriter @@ -36,18 +36,18 @@ seqnums: [1-1] layout ---- - 0 data (25) - 30 data (25) - 60 data (25) - 90 fullfilter.rocksdb.BuiltinBloomFilter (69) - 164 index (22) - 191 index (22) - 218 index (22) - 245 top-index (48) - 298 properties (486) - 789 meta-index (79) - 873 footer (53) - 926 EOF +sstable + ├── data offset: 0 length: 25 + ├── data offset: 30 length: 25 + ├── data offset: 60 length: 25 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 90 length: 69 + ├── index offset: 164 length: 22 + ├── index offset: 191 length: 22 + ├── index offset: 218 length: 22 + ├── top-index offset: 245 length: 48 + ├── properties offset: 298 length: 486 + ├── meta-index offset: 789 length: 79 + └── footer offset: 873 length: 53 scan ---- @@ -71,18 +71,18 @@ seqnums: [1-1] layout ---- - 0 data (25) - 30 data (25) - 60 data (25) - 90 fullfilter.rocksdb.BuiltinBloomFilter (69) - 164 index (22) - 191 index (22) - 218 index (22) - 245 top-index (48) - 298 properties (486) - 789 meta-index (79) - 873 footer (53) - 926 EOF +sstable + ├── data offset: 0 length: 25 + ├── data offset: 30 length: 25 + ├── data offset: 60 length: 25 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 90 length: 69 + ├── index offset: 164 length: 22 + ├── index offset: 191 length: 22 + ├── index offset: 218 length: 22 + ├── top-index offset: 245 length: 48 + ├── properties offset: 298 length: 486 + ├── meta-index offset: 789 length: 79 + └── footer offset: 873 length: 53 scan ---- @@ -106,18 +106,18 @@ seqnums: [1-1] layout ---- - 0 data (25) - 30 data (25) - 60 data (25) - 90 fullfilter.rocksdb.BuiltinBloomFilter (69) - 164 index (22) - 191 index (22) - 218 index (22) - 245 top-index (48) - 298 properties (486) - 789 meta-index (79) - 873 footer (53) - 926 EOF +sstable + ├── data offset: 0 length: 25 + ├── data offset: 30 length: 25 + ├── data offset: 60 length: 25 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 90 length: 69 + ├── index offset: 164 length: 22 + ├── index offset: 191 length: 22 + ├── index offset: 218 length: 22 + ├── top-index offset: 245 length: 48 + ├── properties offset: 298 length: 486 + ├── meta-index offset: 789 length: 79 + └── footer offset: 873 length: 53 scan ---- @@ -141,18 +141,18 @@ seqnums: [1-1] layout ---- - 0 data (25) - 30 data (25) - 60 data (25) - 90 fullfilter.rocksdb.BuiltinBloomFilter (69) - 164 index (22) - 191 index (22) - 218 index (22) - 245 top-index (48) - 298 properties (486) - 789 meta-index (79) - 873 footer (53) - 926 EOF +sstable + ├── data offset: 0 length: 25 + ├── data offset: 30 length: 25 + ├── data offset: 60 length: 25 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 90 length: 69 + ├── index offset: 164 length: 22 + ├── index offset: 191 length: 22 + ├── index offset: 218 length: 22 + ├── top-index offset: 245 length: 48 + ├── properties offset: 298 length: 486 + ├── meta-index offset: 789 length: 79 + └── footer offset: 873 length: 53 scan ---- @@ -177,18 +177,18 @@ seqnums: [1-1] layout ---- - 0 data (25) - 30 data (25) - 60 data (25) - 90 fullfilter.rocksdb.BuiltinBloomFilter (69) - 164 index (22) - 191 index (22) - 218 index (22) - 245 top-index (48) - 298 properties (486) - 789 meta-index (79) - 873 footer (53) - 926 EOF +sstable + ├── data offset: 0 length: 25 + ├── data offset: 30 length: 25 + ├── data offset: 60 length: 25 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 90 length: 69 + ├── index offset: 164 length: 22 + ├── index offset: 191 length: 22 + ├── index offset: 218 length: 22 + ├── top-index offset: 245 length: 48 + ├── properties offset: 298 length: 486 + ├── meta-index offset: 789 length: 79 + └── footer offset: 873 length: 53 scan ---- diff --git a/sstable/testdata/rewriter_v3 b/sstable/testdata/rewriter_v3 index 3061c8fb06..467412e60b 100644 --- a/sstable/testdata/rewriter_v3 +++ b/sstable/testdata/rewriter_v3 @@ -36,18 +36,18 @@ seqnums: [1-1] layout ---- - 0 data (26) - 31 data (26) - 62 data (26) - 93 fullfilter.rocksdb.BuiltinBloomFilter (69) - 167 index (22) - 194 index (22) - 221 index (22) - 248 top-index (48) - 301 properties (486) - 792 meta-index (79) - 876 footer (53) - 929 EOF +sstable + ├── data offset: 0 length: 26 + ├── data offset: 31 length: 26 + ├── data offset: 62 length: 26 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 93 length: 69 + ├── index offset: 167 length: 22 + ├── index offset: 194 length: 22 + ├── index offset: 221 length: 22 + ├── top-index offset: 248 length: 48 + ├── properties offset: 301 length: 486 + ├── meta-index offset: 792 length: 79 + └── footer offset: 876 length: 53 scan ---- @@ -71,18 +71,18 @@ seqnums: [1-1] layout ---- - 0 data (26) - 31 data (26) - 62 data (26) - 93 fullfilter.rocksdb.BuiltinBloomFilter (69) - 167 index (22) - 194 index (22) - 221 index (22) - 248 top-index (48) - 301 properties (486) - 792 meta-index (79) - 876 footer (53) - 929 EOF +sstable + ├── data offset: 0 length: 26 + ├── data offset: 31 length: 26 + ├── data offset: 62 length: 26 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 93 length: 69 + ├── index offset: 167 length: 22 + ├── index offset: 194 length: 22 + ├── index offset: 221 length: 22 + ├── top-index offset: 248 length: 48 + ├── properties offset: 301 length: 486 + ├── meta-index offset: 792 length: 79 + └── footer offset: 876 length: 53 scan ---- @@ -106,18 +106,18 @@ seqnums: [1-1] layout ---- - 0 data (26) - 31 data (26) - 62 data (26) - 93 fullfilter.rocksdb.BuiltinBloomFilter (69) - 167 index (22) - 194 index (22) - 221 index (22) - 248 top-index (48) - 301 properties (486) - 792 meta-index (79) - 876 footer (53) - 929 EOF +sstable + ├── data offset: 0 length: 26 + ├── data offset: 31 length: 26 + ├── data offset: 62 length: 26 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 93 length: 69 + ├── index offset: 167 length: 22 + ├── index offset: 194 length: 22 + ├── index offset: 221 length: 22 + ├── top-index offset: 248 length: 48 + ├── properties offset: 301 length: 486 + ├── meta-index offset: 792 length: 79 + └── footer offset: 876 length: 53 scan ---- @@ -141,18 +141,18 @@ seqnums: [1-1] layout ---- - 0 data (26) - 31 data (26) - 62 data (26) - 93 fullfilter.rocksdb.BuiltinBloomFilter (69) - 167 index (22) - 194 index (22) - 221 index (22) - 248 top-index (48) - 301 properties (486) - 792 meta-index (79) - 876 footer (53) - 929 EOF +sstable + ├── data offset: 0 length: 26 + ├── data offset: 31 length: 26 + ├── data offset: 62 length: 26 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 93 length: 69 + ├── index offset: 167 length: 22 + ├── index offset: 194 length: 22 + ├── index offset: 221 length: 22 + ├── top-index offset: 248 length: 48 + ├── properties offset: 301 length: 486 + ├── meta-index offset: 792 length: 79 + └── footer offset: 876 length: 53 scan ---- @@ -177,18 +177,18 @@ seqnums: [1-1] layout ---- - 0 data (26) - 31 data (26) - 62 data (26) - 93 fullfilter.rocksdb.BuiltinBloomFilter (69) - 167 index (22) - 194 index (22) - 221 index (22) - 248 top-index (48) - 301 properties (486) - 792 meta-index (79) - 876 footer (53) - 929 EOF +sstable + ├── data offset: 0 length: 26 + ├── data offset: 31 length: 26 + ├── data offset: 62 length: 26 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 93 length: 69 + ├── index offset: 167 length: 22 + ├── index offset: 194 length: 22 + ├── index offset: 221 length: 22 + ├── top-index offset: 248 length: 48 + ├── properties offset: 301 length: 486 + ├── meta-index offset: 792 length: 79 + └── footer offset: 876 length: 53 scan ---- diff --git a/sstable/testdata/rewriter_v5 b/sstable/testdata/rewriter_v5 index 24a5a1beee..794430f350 100644 --- a/sstable/testdata/rewriter_v5 +++ b/sstable/testdata/rewriter_v5 @@ -36,18 +36,18 @@ seqnums: [1-1] layout ---- - 0 data (78) - 83 data (78) - 166 data (78) - 249 index (38) - 292 index (46) - 343 index (44) - 392 top-index (57) - 454 fullfilter.rocksdb.BuiltinBloomFilter (69) - 528 properties (515) - 1048 meta-index (80) - 1133 footer (53) - 1186 EOF +sstable + ├── data offset: 0 length: 78 + ├── data offset: 83 length: 78 + ├── data offset: 166 length: 78 + ├── index offset: 249 length: 38 + ├── index offset: 292 length: 46 + ├── index offset: 343 length: 44 + ├── top-index offset: 392 length: 57 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 454 length: 69 + ├── properties offset: 528 length: 515 + ├── meta-index offset: 1048 length: 80 + └── footer offset: 1133 length: 53 scan ---- @@ -71,18 +71,18 @@ seqnums: [1-1] layout ---- - 0 data (80) - 85 data (80) - 170 data (80) - 255 index (40) - 300 index (48) - 353 index (44) - 402 top-index (61) - 468 fullfilter.rocksdb.BuiltinBloomFilter (69) - 542 properties (515) - 1062 meta-index (80) - 1147 footer (53) - 1200 EOF +sstable + ├── data offset: 0 length: 80 + ├── data offset: 85 length: 80 + ├── data offset: 170 length: 80 + ├── index offset: 255 length: 40 + ├── index offset: 300 length: 48 + ├── index offset: 353 length: 44 + ├── top-index offset: 402 length: 61 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 468 length: 69 + ├── properties offset: 542 length: 515 + ├── meta-index offset: 1062 length: 80 + └── footer offset: 1147 length: 53 scan ---- @@ -106,18 +106,18 @@ seqnums: [1-1] layout ---- - 0 data (80) - 85 data (80) - 170 data (80) - 255 index (40) - 300 index (48) - 353 index (44) - 402 top-index (61) - 468 fullfilter.rocksdb.BuiltinBloomFilter (69) - 542 properties (515) - 1062 meta-index (80) - 1147 footer (53) - 1200 EOF +sstable + ├── data offset: 0 length: 80 + ├── data offset: 85 length: 80 + ├── data offset: 170 length: 80 + ├── index offset: 255 length: 40 + ├── index offset: 300 length: 48 + ├── index offset: 353 length: 44 + ├── top-index offset: 402 length: 61 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 468 length: 69 + ├── properties offset: 542 length: 515 + ├── meta-index offset: 1062 length: 80 + └── footer offset: 1147 length: 53 scan ---- @@ -141,18 +141,18 @@ seqnums: [1-1] layout ---- - 0 data (80) - 85 data (80) - 170 data (80) - 255 index (40) - 300 index (48) - 353 index (44) - 402 top-index (61) - 468 fullfilter.rocksdb.BuiltinBloomFilter (69) - 542 properties (515) - 1062 meta-index (80) - 1147 footer (53) - 1200 EOF +sstable + ├── data offset: 0 length: 80 + ├── data offset: 85 length: 80 + ├── data offset: 170 length: 80 + ├── index offset: 255 length: 40 + ├── index offset: 300 length: 48 + ├── index offset: 353 length: 44 + ├── top-index offset: 402 length: 61 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 468 length: 69 + ├── properties offset: 542 length: 515 + ├── meta-index offset: 1062 length: 80 + └── footer offset: 1147 length: 53 scan ---- @@ -177,18 +177,18 @@ seqnums: [1-1] layout ---- - 0 data (78) - 83 data (78) - 166 data (78) - 249 index (38) - 292 index (46) - 343 index (44) - 392 top-index (57) - 454 fullfilter.rocksdb.BuiltinBloomFilter (69) - 528 properties (515) - 1048 meta-index (80) - 1133 footer (53) - 1186 EOF +sstable + ├── data offset: 0 length: 78 + ├── data offset: 83 length: 78 + ├── data offset: 166 length: 78 + ├── index offset: 249 length: 38 + ├── index offset: 292 length: 46 + ├── index offset: 343 length: 44 + ├── top-index offset: 392 length: 57 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 454 length: 69 + ├── properties offset: 528 length: 515 + ├── meta-index offset: 1048 length: 80 + └── footer offset: 1133 length: 53 scan ---- diff --git a/sstable/testdata/writer b/sstable/testdata/writer index 22f73a46e1..0e6e9a6b3f 100644 --- a/sstable/testdata/writer +++ b/sstable/testdata/writer @@ -232,17 +232,17 @@ seqnums: [1-1] layout ---- - 0 data (21) - 26 data (21) - 52 data (21) - 78 index (22) - 105 index (22) - 132 index (22) - 159 top-index (48) - 212 properties (451) - 668 meta-index (33) - 706 footer (53) - 759 EOF +sstable + ├── data offset: 0 length: 21 + ├── data offset: 26 length: 21 + ├── data offset: 52 length: 21 + ├── index offset: 78 length: 22 + ├── index offset: 105 length: 22 + ├── index offset: 132 length: 22 + ├── top-index offset: 159 length: 48 + ├── properties offset: 212 length: 451 + ├── meta-index offset: 668 length: 33 + └── footer offset: 706 length: 53 scan ---- @@ -263,14 +263,14 @@ seqnums: [1-1] layout ---- - 0 data (21) - 26 data (21) - 52 data (21) - 78 index (45) - 128 properties (549) - 682 meta-index (33) - 720 leveldb-footer (48) - 768 EOF +sstable + ├── data offset: 0 length: 21 + ├── data offset: 26 length: 21 + ├── data offset: 52 length: 21 + ├── index offset: 78 length: 45 + ├── properties offset: 128 length: 549 + ├── meta-index offset: 682 length: 33 + └── leveldb-footer offset: 720 length: 48 # Range keys, if present, are shown in the layout. @@ -284,10 +284,10 @@ seqnums: [1-3] layout ---- - 0 data (8) - 13 index (21) - 39 range-key (79) - 123 properties (499) - 627 meta-index (57) - 689 footer (53) - 742 EOF +sstable + ├── data offset: 0 length: 8 + ├── index offset: 13 length: 21 + ├── range-key offset: 39 length: 79 + ├── properties offset: 123 length: 499 + ├── meta-index offset: 627 length: 57 + └── footer offset: 689 length: 53 diff --git a/sstable/testdata/writer_v3 b/sstable/testdata/writer_v3 index 5fbbd8dd42..67d20e3083 100644 --- a/sstable/testdata/writer_v3 +++ b/sstable/testdata/writer_v3 @@ -206,33 +206,33 @@ seqnums: [1-1] layout ---- - 0 data (22) - 27 data (22) - 54 data (22) - 81 index (22) - 108 index (22) - 135 index (22) - 162 top-index (49) - 216 properties (451) - 672 meta-index (33) - 710 footer (53) - 763 EOF +sstable + ├── data offset: 0 length: 22 + ├── data offset: 27 length: 22 + ├── data offset: 54 length: 22 + ├── index offset: 81 length: 22 + ├── index offset: 108 length: 22 + ├── index offset: 135 length: 22 + ├── top-index offset: 162 length: 49 + ├── properties offset: 216 length: 451 + ├── meta-index offset: 672 length: 33 + └── footer offset: 710 length: 53 # Exercise the non-Reader layout-decoding codepath. decode-layout ---- - 0 data (22) - 27 data (22) - 54 data (22) - 81 index (22) - 108 index (22) - 135 index (22) - 162 top-index (49) - 216 properties (451) - 672 meta-index (33) - 710 footer (53) - 763 EOF +sstable + ├── data offset: 0 length: 22 + ├── data offset: 27 length: 22 + ├── data offset: 54 length: 22 + ├── index offset: 81 length: 22 + ├── index offset: 108 length: 22 + ├── index offset: 135 length: 22 + ├── top-index offset: 162 length: 49 + ├── properties offset: 216 length: 451 + ├── meta-index offset: 672 length: 33 + └── footer offset: 710 length: 53 scan ---- @@ -253,14 +253,14 @@ seqnums: [1-1] layout ---- - 0 data (21) - 26 data (21) - 52 data (21) - 78 index (45) - 128 properties (549) - 682 meta-index (33) - 720 leveldb-footer (48) - 768 EOF +sstable + ├── data offset: 0 length: 21 + ├── data offset: 26 length: 21 + ├── data offset: 52 length: 21 + ├── index offset: 78 length: 45 + ├── properties offset: 128 length: 549 + ├── meta-index offset: 682 length: 33 + └── leveldb-footer offset: 720 length: 48 # Range keys, if present, are shown in the layout. @@ -274,10 +274,10 @@ seqnums: [1-3] layout ---- - 0 data (8) - 13 index (21) - 39 range-key (79) - 123 properties (499) - 627 meta-index (57) - 689 footer (53) - 742 EOF +sstable + ├── data offset: 0 length: 8 + ├── index offset: 13 length: 21 + ├── range-key offset: 39 length: 79 + ├── properties offset: 123 length: 499 + ├── meta-index offset: 627 length: 57 + └── footer offset: 689 length: 53 diff --git a/sstable/testdata/writer_v5 b/sstable/testdata/writer_v5 index 316e32f875..4fd946f36b 100644 --- a/sstable/testdata/writer_v5 +++ b/sstable/testdata/writer_v5 @@ -226,33 +226,33 @@ seqnums: [1-1] layout ---- - 0 data (74) - 79 data (74) - 158 data (74) - 237 index (36) - 278 index (44) - 327 index (44) - 376 top-index (53) - 434 properties (480) - 919 meta-index (33) - 957 footer (53) - 1010 EOF +sstable + ├── data offset: 0 length: 74 + ├── data offset: 79 length: 74 + ├── data offset: 158 length: 74 + ├── index offset: 237 length: 36 + ├── index offset: 278 length: 44 + ├── index offset: 327 length: 44 + ├── top-index offset: 376 length: 53 + ├── properties offset: 434 length: 480 + ├── meta-index offset: 919 length: 33 + └── footer offset: 957 length: 53 # Exercise the non-Reader layout-decoding codepath. decode-layout ---- - 0 data (74) - 79 data (74) - 158 data (74) - 237 index (36) - 278 index (44) - 327 index (44) - 376 top-index (53) - 434 properties (480) - 919 meta-index (33) - 957 footer (53) - 1010 EOF +sstable + ├── data offset: 0 length: 74 + ├── data offset: 79 length: 74 + ├── data offset: 158 length: 74 + ├── index offset: 237 length: 36 + ├── index offset: 278 length: 44 + ├── index offset: 327 length: 44 + ├── top-index offset: 376 length: 53 + ├── properties offset: 434 length: 480 + ├── meta-index offset: 919 length: 33 + └── footer offset: 957 length: 53 scan ---- @@ -273,14 +273,14 @@ seqnums: [1-1] layout ---- - 0 data (21) - 26 data (21) - 52 data (21) - 78 index (45) - 128 properties (549) - 682 meta-index (33) - 720 leveldb-footer (48) - 768 EOF +sstable + ├── data offset: 0 length: 21 + ├── data offset: 26 length: 21 + ├── data offset: 52 length: 21 + ├── index offset: 78 length: 45 + ├── properties offset: 128 length: 549 + ├── meta-index offset: 682 length: 33 + └── leveldb-footer offset: 720 length: 48 # Range keys, if present, are shown in the layout. @@ -294,12 +294,12 @@ seqnums: [1-3] layout ---- - 0 index (28) - 33 range-key (84) - 122 properties (528) - 655 meta-index (57) - 717 footer (53) - 770 EOF +sstable + ├── index offset: 0 length: 28 + ├── range-key offset: 33 length: 84 + ├── properties offset: 122 length: 528 + ├── meta-index offset: 655 length: 57 + └── footer offset: 717 length: 53 props ---- diff --git a/sstable/testdata/writer_value_blocks b/sstable/testdata/writer_value_blocks index 77189be113..0948be5d2d 100644 --- a/sstable/testdata/writer_value_blocks +++ b/sstable/testdata/writer_value_blocks @@ -226,94 +226,107 @@ scan-cloned-lazy-values layout ---- - 0 data (33) - 0 record (25 = 3 [0] + 15 + 7) [restart] - blue@10#20,SET:blue10 - 25 [restart 0] - 33 [trailer compression=none checksum=0x5fb0d551] - 38 data (29) - 38 record (21 = 3 [0] + 14 + 4) [restart] - blue@8#18,SET:value handle {valueLen:5 blockNum:0 offsetInBlock:0} - 59 [restart 38] - 67 [trailer compression=none checksum=0x628e4a10] - 72 data (29) - 72 record (21 = 3 [0] + 14 + 4) [restart] - blue@8#16,SET:value handle {valueLen:6 blockNum:0 offsetInBlock:5} - 93 [restart 72] - 101 [trailer compression=none checksum=0x4e65b9b6] - 106 data (29) - 106 record (21 = 3 [0] + 14 + 4) [restart] - blue@6#16,SET:value handle {valueLen:15 blockNum:1 offsetInBlock:0} - 127 [restart 106] - 135 [trailer compression=none checksum=0x9f60e629] - 140 index (28) - 140 block:0/33 [restart] - 160 [restart 140] - 168 [trailer compression=none checksum=0x32b37f08] - 173 index (27) - 173 block:38/29 [restart] - 192 [restart 173] - 200 [trailer compression=none checksum=0x21d27815] - 205 index (30) - 205 block:72/29 [restart] - 227 [restart 205] - 235 [trailer compression=none checksum=0xba0b26fe] - 240 index (22) - 240 block:106/29 [restart] - 254 [restart 240] - 262 [trailer compression=none checksum=0x802be702] - 267 top-index (85) - 267 block:140/28 [restart] - 288 block:173/27 [restart] - 308 block:205/30 [restart] - 331 block:240/22 [restart] - 346 [restart 267] - 350 [restart 288] - 354 [restart 308] - 358 [restart 331] - 352 [trailer compression=snappy checksum=0x8bd0d63a] - 357 value-block (11) - 373 value-block (15) - 393 value-index (8) - 406 properties (549) - 406 obsolete-key (16) [restart] - 422 pebble.num.value-blocks (27) - 449 pebble.num.values.in.value-blocks (21) - 470 pebble.value-blocks.size (21) - 491 rocksdb.block.based.table.index.type (43) - 534 rocksdb.comparator (37) - 571 rocksdb.compression (16) - 587 rocksdb.compression_options (106) - 693 rocksdb.data.size (14) - 707 rocksdb.deleted.keys (15) - 722 rocksdb.filter.size (15) - 737 rocksdb.index.partitions (20) - 757 rocksdb.index.size (9) - 766 rocksdb.merge.operands (18) - 784 rocksdb.merge.operator (24) - 808 rocksdb.num.data.blocks (19) - 827 rocksdb.num.entries (11) - 838 rocksdb.num.range-deletions (19) - 857 rocksdb.property.collectors (36) - 893 rocksdb.raw.key.size (16) - 909 rocksdb.raw.value.size (14) - 923 rocksdb.top-level.index.size (24) - 947 [restart 406] - 955 [trailer compression=none checksum=0x3538e71c] - 960 meta-index (64) - 960 pebble.value_index block:393/8 value-blocks-index-lengths: 1(num), 2(offset), 1(length) [restart] - 987 rocksdb.properties block:406/549 [restart] - 1012 [restart 960] - 1016 [restart 987] - 1024 [trailer compression=none checksum=0x8b0c43ab] - 1029 footer (53) - 1029 checksum type: crc32c - 1030 meta: offset=960, length=64 - 1033 index: offset=267, length=85 - 1036 [padding] - 1070 version: 4 - 1074 magic number: 0xf09faab3f09faab3 - 1082 EOF +sstable + ├── data offset: 0 length: 33 + │ ├── 00000 record (25 = 3 [0] + 15 + 7) [restart] + │ │ blue@10#20,SET:blue10 + │ ├── restart points + │ │ └── 00025 [restart 0] + │ └── trailer [compression=none checksum=0x5fb0d551] + ├── data offset: 38 length: 29 + │ ├── 00000 record (21 = 3 [0] + 14 + 4) [restart] + │ │ blue@8#18,SET:value handle {valueLen:5 blockNum:0 offsetInBlock:0} + │ ├── restart points + │ │ └── 00021 [restart 0] + │ └── trailer [compression=none checksum=0x628e4a10] + ├── data offset: 72 length: 29 + │ ├── 00000 record (21 = 3 [0] + 14 + 4) [restart] + │ │ blue@8#16,SET:value handle {valueLen:6 blockNum:0 offsetInBlock:5} + │ ├── restart points + │ │ └── 00021 [restart 0] + │ └── trailer [compression=none checksum=0x4e65b9b6] + ├── data offset: 106 length: 29 + │ ├── 00000 record (21 = 3 [0] + 14 + 4) [restart] + │ │ blue@6#16,SET:value handle {valueLen:15 blockNum:1 offsetInBlock:0} + │ ├── restart points + │ │ └── 00021 [restart 0] + │ └── trailer [compression=none checksum=0x9f60e629] + ├── index offset: 140 length: 28 + │ ├── 00000 block:0/33 [restart] + │ ├── restart points + │ │ └── 00020 [restart 0] + │ └── trailer [compression=none checksum=0x32b37f08] + ├── index offset: 173 length: 27 + │ ├── 00000 block:38/29 [restart] + │ ├── restart points + │ │ └── 00019 [restart 0] + │ └── trailer [compression=none checksum=0x21d27815] + ├── index offset: 205 length: 30 + │ ├── 00000 block:72/29 [restart] + │ ├── restart points + │ │ └── 00022 [restart 0] + │ └── trailer [compression=none checksum=0xba0b26fe] + ├── index offset: 240 length: 22 + │ ├── 00000 block:106/29 [restart] + │ ├── restart points + │ │ └── 00014 [restart 0] + │ └── trailer [compression=none checksum=0x802be702] + ├── top-index offset: 267 length: 85 + │ ├── 00000 block:140/28 [restart] + │ ├── 00021 block:173/27 [restart] + │ ├── 00041 block:205/30 [restart] + │ ├── 00064 block:240/22 [restart] + │ ├── restart points + │ │ ├── 00079 [restart 0] + │ │ ├── 00083 [restart 21] + │ │ ├── 00087 [restart 41] + │ │ └── 00091 [restart 64] + │ └── trailer [compression=snappy checksum=0x8bd0d63a] + ├── value-block offset: 357 length: 11 + │ └── trailer [compression=none checksum=0x86dee352] + ├── value-block offset: 373 length: 15 + │ └── trailer [compression=none checksum=0x60e7fb82] + ├── value-index offset: 393 length: 8 + │ └── trailer [compression=none checksum=0x43784e80] + ├── properties offset: 406 length: 549 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.num.value-blocks (27) + │ ├── 00043 pebble.num.values.in.value-blocks (21) + │ ├── 00064 pebble.value-blocks.size (21) + │ ├── 00085 rocksdb.block.based.table.index.type (43) + │ ├── 00128 rocksdb.comparator (37) + │ ├── 00165 rocksdb.compression (16) + │ ├── 00181 rocksdb.compression_options (106) + │ ├── 00287 rocksdb.data.size (14) + │ ├── 00301 rocksdb.deleted.keys (15) + │ ├── 00316 rocksdb.filter.size (15) + │ ├── 00331 rocksdb.index.partitions (20) + │ ├── 00351 rocksdb.index.size (9) + │ ├── 00360 rocksdb.merge.operands (18) + │ ├── 00378 rocksdb.merge.operator (24) + │ ├── 00402 rocksdb.num.data.blocks (19) + │ ├── 00421 rocksdb.num.entries (11) + │ ├── 00432 rocksdb.num.range-deletions (19) + │ ├── 00451 rocksdb.property.collectors (36) + │ ├── 00487 rocksdb.raw.key.size (16) + │ ├── 00503 rocksdb.raw.value.size (14) + │ ├── 00517 rocksdb.top-level.index.size (24) + │ ├── restart points + │ │ └── 00541 [restart 0] + │ └── trailer [compression=none checksum=0x3538e71c] + ├── meta-index offset: 960 length: 64 + │ ├── 0000 pebble.value_index block:393/8 value-blocks-index-lengths: 1(num), 2(offset), 1(length) [restart] + │ ├── 0027 rocksdb.properties block:406/549 [restart] + │ ├── restart points + │ │ ├── 00052 [restart 0] + │ │ └── 00056 [restart 27] + │ └── trailer [compression=none checksum=0x8b0c43ab] + └── footer offset: 1029 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=960, length=64 + ├── 004 index: offset=267, length=85 + ├── 041 version: 4 + └── 045 magic number: 0xf09faab3f09faab3 # Same as above but with (Pebble,v5) [columnar blocks]. @@ -341,331 +354,331 @@ scan-cloned-lazy-values layout ---- - 0 data (81) - # data block header - 00-04: x 07000000 # maximum key length: 7 - # columnar block header - 04-05: x 01 # version 1 - 05-07: x 0700 # 7 columns - 07-11: x 01000000 # 1 rows - 11-12: b 00000100 # col 0: prefixbytes - 12-16: x 2e000000 # col 0: page start 46 - 16-17: b 00000011 # col 1: bytes - 17-21: x 37000000 # col 1: page start 55 - 21-22: b 00000010 # col 2: uint - 22-26: x 3d000000 # col 2: page start 61 - 26-27: b 00000001 # col 3: bool - 27-31: x 46000000 # col 3: page start 70 - 31-32: b 00000011 # col 4: bytes - 32-36: x 58000000 # col 4: page start 88 - 36-37: b 00000001 # col 5: bool - 37-41: x 61000000 # col 5: page start 97 - 41-42: b 00000001 # col 6: bool - 42-46: x 62000000 # col 6: page start 98 - # data for column 0 - # PrefixBytes - 46-47: x 04 # bundleSize: 16 - # Offsets table - 47-48: x 01 # encoding: 1b - 48-49: x 04 # data[0] = 4 [55 overall] - 49-50: x 04 # data[1] = 4 [55 overall] - 50-51: x 04 # data[2] = 4 [55 overall] - # Data - 51-55: x 626c7565 # data[00]: blue (block prefix) - 55-55: x # data[01]: .... (bundle prefix) - 55-55: x # data[02]: .... - # data for column 1 - # rawbytes - # offsets table - 55-56: x 01 # encoding: 1b - 56-57: x 00 # data[0] = 0 [58 overall] - 57-58: x 03 # data[1] = 3 [61 overall] - # data - 58-61: x 403130 # data[0]: @10 - # data for column 2 - 61-62: x 80 # encoding: const - 62-70: x 0114000000000000 # 64-bit constant: 5121 - # data for column 3 - 70-71: x 00 # bitmap encoding - 71-72: x 00 # padding to align to 64-bit boundary - 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 80-88: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 88-89: x 01 # encoding: 1b - 89-90: x 00 # data[0] = 0 [91 overall] - 90-91: x 06 # data[1] = 6 [97 overall] - # data - 91-97: x 626c75653130 # data[0]: blue10 - # data for column 5 - 97-98: x 01 # bitmap encoding - # data for column 6 - 98-99: x 01 # bitmap encoding - 99-100: x 00 # block padding byte - blue@10#20,SET:blue10 - 81 [trailer compression=snappy checksum=0x3a342f9] - 86 data (85) - # data block header - 000-004: x 06000000 # maximum key length: 6 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 01000000 # 1 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 37000000 # col 1: page start 55 - 021-022: b 00000010 # col 2: uint - 022-026: x 3c000000 # col 2: page start 60 - 026-027: b 00000001 # col 3: bool - 027-031: x 45000000 # col 3: page start 69 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 5f000000 # col 5: page start 95 - 041-042: b 00000001 # col 6: bool - 042-046: x 70000000 # col 6: page start 112 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 04 # data[0] = 4 [55 overall] - 049-050: x 04 # data[1] = 4 [55 overall] - 050-051: x 04 # data[2] = 4 [55 overall] - # Data - 051-055: x 626c7565 # data[00]: blue (block prefix) - 055-055: x # data[01]: .... (bundle prefix) - 055-055: x # data[02]: .... - # data for column 1 - # rawbytes - # offsets table - 055-056: x 01 # encoding: 1b - 056-057: x 00 # data[0] = 0 [58 overall] - 057-058: x 02 # data[1] = 2 [60 overall] - # data - 058-060: x 4038 # data[0]: @8 - # data for column 2 - 060-061: x 80 # encoding: const - 061-069: x 0112000000000000 # 64-bit constant: 4609 - # data for column 3 - 069-070: x 00 # bitmap encoding - 070-072: x 0000 # padding to align to 64-bit boundary - 072-080: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [91 overall] - 090-091: x 04 # data[1] = 4 [95 overall] - # data - 091-095: x a5050000 # data[0]: "\xa5\x05\x00\x00" - # data for column 5 - 095-096: x 00 # bitmap encoding - 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 6 - 112-113: x 01 # bitmap encoding - 113-114: x 00 # block padding byte - blue@8#18,SET:value handle {valueLen:5 blockNum:0 offsetInBlock:0} - 171 [trailer compression=snappy checksum=0x17efbf53] - 176 data (94) - # data block header - 000-004: x 06000000 # maximum key length: 6 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 01000000 # 1 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 37000000 # col 1: page start 55 - 021-022: b 00000010 # col 2: uint - 022-026: x 3c000000 # col 2: page start 60 - 026-027: b 00000001 # col 3: bool - 027-031: x 45000000 # col 3: page start 69 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 5f000000 # col 5: page start 95 - 041-042: b 00000001 # col 6: bool - 042-046: x 70000000 # col 6: page start 112 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 04 # data[0] = 4 [55 overall] - 049-050: x 04 # data[1] = 4 [55 overall] - 050-051: x 04 # data[2] = 4 [55 overall] - # Data - 051-055: x 626c7565 # data[00]: blue (block prefix) - 055-055: x # data[01]: .... (bundle prefix) - 055-055: x # data[02]: .... - # data for column 1 - # rawbytes - # offsets table - 055-056: x 01 # encoding: 1b - 056-057: x 00 # data[0] = 0 [58 overall] - 057-058: x 02 # data[1] = 2 [60 overall] - # data - 058-060: x 4038 # data[0]: @8 - # data for column 2 - 060-061: x 80 # encoding: const - 061-069: x 0110000000000000 # 64-bit constant: 4097 - # data for column 3 - 069-070: x 00 # bitmap encoding - 070-072: x 0000 # padding to align to 64-bit boundary - 072-080: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [91 overall] - 090-091: x 04 # data[1] = 4 [95 overall] - # data - 091-095: x a6060005 # data[0]: "\xa6\x06\x00\x05" - # data for column 5 - 095-096: x 00 # bitmap encoding - 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 6 - 112-113: x 00 # bitmap encoding - 113-120: x 00000000000000 # padding to align to 64-bit boundary - 120-128: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 128-136: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - 136-137: x 00 # block padding byte - blue@8#16,SET:value handle {valueLen:6 blockNum:0 offsetInBlock:5} - 270 [trailer compression=snappy checksum=0x9371e6fd] - 275 data (90) - # data block header - 000-004: x 06000000 # maximum key length: 6 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 01000000 # 1 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 37000000 # col 1: page start 55 - 021-022: b 00000010 # col 2: uint - 022-026: x 3c000000 # col 2: page start 60 - 026-027: b 00000001 # col 3: bool - 027-031: x 45000000 # col 3: page start 69 - 031-032: b 00000011 # col 4: bytes - 032-036: x 58000000 # col 4: page start 88 - 036-037: b 00000001 # col 5: bool - 037-041: x 5f000000 # col 5: page start 95 - 041-042: b 00000001 # col 6: bool - 042-046: x 70000000 # col 6: page start 112 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 04 # data[0] = 4 [55 overall] - 049-050: x 04 # data[1] = 4 [55 overall] - 050-051: x 04 # data[2] = 4 [55 overall] - # Data - 051-055: x 626c7565 # data[00]: blue (block prefix) - 055-055: x # data[01]: .... (bundle prefix) - 055-055: x # data[02]: .... - # data for column 1 - # rawbytes - # offsets table - 055-056: x 01 # encoding: 1b - 056-057: x 00 # data[0] = 0 [58 overall] - 057-058: x 02 # data[1] = 2 [60 overall] - # data - 058-060: x 4036 # data[0]: @6 - # data for column 2 - 060-061: x 80 # encoding: const - 061-069: x 0110000000000000 # 64-bit constant: 4097 - # data for column 3 - 069-070: x 00 # bitmap encoding - 070-072: x 0000 # padding to align to 64-bit boundary - 072-080: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 080-088: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 088-089: x 01 # encoding: 1b - 089-090: x 00 # data[0] = 0 [91 overall] - 090-091: x 04 # data[1] = 4 [95 overall] - # data - 091-095: x a70f0100 # data[0]: "\xa7\x0f\x01\x00" - # data for column 5 - 095-096: x 00 # bitmap encoding - 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 6 - 112-113: x 01 # bitmap encoding - 113-114: x 00 # block padding byte - blue@6#16,SET:value handle {valueLen:15 blockNum:1 offsetInBlock:0} - 365 [trailer compression=snappy checksum=0xcfdbcc3c] - 370 index (42) - 0 block:0/81 - 412 [trailer compression=none checksum=0x80ae3e61] - 417 index (49) - 0 block:86/85 - 466 [trailer compression=none checksum=0xf2bc08f4] - 471 index (54) - 0 block:176/94 - 525 [trailer compression=none checksum=0x4eed6c67] - 530 index (44) - 0 block:275/90 - 574 [trailer compression=none checksum=0xbacbe8f5] - 579 top-index (81) - 0 block:370/42 - 1 block:417/49 - 2 block:471/54 - 3 block:530/44 - 660 [trailer compression=none checksum=0xdacecc3b] - 665 value-block (11) - 681 value-block (15) - 701 value-index (8) - 714 properties (549) - 714 obsolete-key (16) [restart] - 730 pebble.num.value-blocks (27) - 757 pebble.num.values.in.value-blocks (21) - 778 pebble.value-blocks.size (21) - 799 rocksdb.block.based.table.index.type (43) - 842 rocksdb.comparator (37) - 879 rocksdb.compression (16) - 895 rocksdb.compression_options (106) - 1001 rocksdb.data.size (14) - 1015 rocksdb.deleted.keys (15) - 1030 rocksdb.filter.size (15) - 1045 rocksdb.index.partitions (20) - 1065 rocksdb.index.size (9) - 1074 rocksdb.merge.operands (18) - 1092 rocksdb.merge.operator (24) - 1116 rocksdb.num.data.blocks (19) - 1135 rocksdb.num.entries (11) - 1146 rocksdb.num.range-deletions (19) - 1165 rocksdb.property.collectors (36) - 1201 rocksdb.raw.key.size (16) - 1217 rocksdb.raw.value.size (14) - 1231 rocksdb.top-level.index.size (24) - 1255 [restart 714] - 1263 [trailer compression=none checksum=0x2e004e9b] - 1268 meta-index (64) - 1268 pebble.value_index block:701/8 value-blocks-index-lengths: 1(num), 2(offset), 1(length) [restart] - 1295 rocksdb.properties block:714/549 [restart] - 1320 [restart 1268] - 1324 [restart 1295] - 1332 [trailer compression=none checksum=0x926e2244] - 1337 footer (53) - 1337 checksum type: crc32c - 1338 meta: offset=1268, length=64 - 1341 index: offset=579, length=81 - 1344 [padding] - 1378 version: 5 - 1382 magic number: 0xf09faab3f09faab3 - 1390 EOF +sstable + ├── data offset: 0 length: 81 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 00-04: x 07000000 # maximum key length: 7 + │ │ │ ├── 04-05: x 01 # version 1 + │ │ │ ├── 05-07: x 0700 # 7 columns + │ │ │ ├── 07-11: x 01000000 # 1 rows + │ │ │ ├── 11-12: b 00000100 # col 0: prefixbytes + │ │ │ ├── 12-16: x 2e000000 # col 0: page start 46 + │ │ │ ├── 16-17: b 00000011 # col 1: bytes + │ │ │ ├── 17-21: x 37000000 # col 1: page start 55 + │ │ │ ├── 21-22: b 00000010 # col 2: uint + │ │ │ ├── 22-26: x 3d000000 # col 2: page start 61 + │ │ │ ├── 26-27: b 00000001 # col 3: bool + │ │ │ ├── 27-31: x 46000000 # col 3: page start 70 + │ │ │ ├── 31-32: b 00000011 # col 4: bytes + │ │ │ ├── 32-36: x 58000000 # col 4: page start 88 + │ │ │ ├── 36-37: b 00000001 # col 5: bool + │ │ │ ├── 37-41: x 61000000 # col 5: page start 97 + │ │ │ ├── 41-42: b 00000001 # col 6: bool + │ │ │ └── 42-46: x 62000000 # col 6: page start 98 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 46-47: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 47-48: x 01 # encoding: 1b + │ │ │ │ ├── 48-49: x 04 # data[0] = 4 [55 overall] + │ │ │ │ ├── 49-50: x 04 # data[1] = 4 [55 overall] + │ │ │ │ └── 50-51: x 04 # data[2] = 4 [55 overall] + │ │ │ └── data + │ │ │ ├── 51-55: x 626c7565 # data[00]: blue (block prefix) + │ │ │ ├── 55-55: x # data[01]: .... (bundle prefix) + │ │ │ └── 55-55: x # data[02]: .... + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 55-56: x 01 # encoding: 1b + │ │ │ │ ├── 56-57: x 00 # data[0] = 0 [58 overall] + │ │ │ │ └── 57-58: x 03 # data[1] = 3 [61 overall] + │ │ │ └── data + │ │ │ └── 58-61: x 403130 # data[0]: @10 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 61-62: x 80 # encoding: const + │ │ │ └── 62-70: x 0114000000000000 # 64-bit constant: 5121 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 70-71: x 00 # default bitmap encoding + │ │ │ ├── 71-72: x 00 # padding to align to 64-bit boundary + │ │ │ ├── 72-80: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 80-88: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 88-89: x 01 # encoding: 1b + │ │ │ │ ├── 89-90: x 00 # data[0] = 0 [91 overall] + │ │ │ │ └── 90-91: x 06 # data[1] = 6 [97 overall] + │ │ │ └── data + │ │ │ └── 91-97: x 626c75653130 # data[0]: blue10 + │ │ ├── data for column 5 (bool) + │ │ │ └── 97-98: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 98-99: x 01 # zero bitmap encoding + │ │ └── 99-100: x 00 # block padding byte + │ ├── blue@10#20,SET:blue10 + │ └── trailer [compression=snappy checksum=0x3a342f9] + ├── data offset: 86 length: 85 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 06000000 # maximum key length: 6 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 01000000 # 1 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 37000000 # col 1: page start 55 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 3c000000 # col 2: page start 60 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 45000000 # col 3: page start 69 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 5f000000 # col 5: page start 95 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 70000000 # col 6: page start 112 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 04 # data[0] = 4 [55 overall] + │ │ │ │ ├── 049-050: x 04 # data[1] = 4 [55 overall] + │ │ │ │ └── 050-051: x 04 # data[2] = 4 [55 overall] + │ │ │ └── data + │ │ │ ├── 051-055: x 626c7565 # data[00]: blue (block prefix) + │ │ │ ├── 055-055: x # data[01]: .... (bundle prefix) + │ │ │ └── 055-055: x # data[02]: .... + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 055-056: x 01 # encoding: 1b + │ │ │ │ ├── 056-057: x 00 # data[0] = 0 [58 overall] + │ │ │ │ └── 057-058: x 02 # data[1] = 2 [60 overall] + │ │ │ └── data + │ │ │ └── 058-060: x 4038 # data[0]: @8 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 060-061: x 80 # encoding: const + │ │ │ └── 061-069: x 0112000000000000 # 64-bit constant: 4609 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 069-070: x 00 # default bitmap encoding + │ │ │ ├── 070-072: x 0000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [91 overall] + │ │ │ │ └── 090-091: x 04 # data[1] = 4 [95 overall] + │ │ │ └── data + │ │ │ └── 091-095: x a5050000 # data[0]: "\xa5\x05\x00\x00" + │ │ ├── data for column 5 (bool) + │ │ │ ├── 095-096: x 00 # default bitmap encoding + │ │ │ ├── 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 6 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ └── 113-114: x 00 # block padding byte + │ ├── blue@8#18,SET:value handle {valueLen:5 blockNum:0 offsetInBlock:0} + │ └── trailer [compression=snappy checksum=0x17efbf53] + ├── data offset: 176 length: 94 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 06000000 # maximum key length: 6 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 01000000 # 1 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 37000000 # col 1: page start 55 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 3c000000 # col 2: page start 60 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 45000000 # col 3: page start 69 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 5f000000 # col 5: page start 95 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 70000000 # col 6: page start 112 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 04 # data[0] = 4 [55 overall] + │ │ │ │ ├── 049-050: x 04 # data[1] = 4 [55 overall] + │ │ │ │ └── 050-051: x 04 # data[2] = 4 [55 overall] + │ │ │ └── data + │ │ │ ├── 051-055: x 626c7565 # data[00]: blue (block prefix) + │ │ │ ├── 055-055: x # data[01]: .... (bundle prefix) + │ │ │ └── 055-055: x # data[02]: .... + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 055-056: x 01 # encoding: 1b + │ │ │ │ ├── 056-057: x 00 # data[0] = 0 [58 overall] + │ │ │ │ └── 057-058: x 02 # data[1] = 2 [60 overall] + │ │ │ └── data + │ │ │ └── 058-060: x 4038 # data[0]: @8 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 060-061: x 80 # encoding: const + │ │ │ └── 061-069: x 0110000000000000 # 64-bit constant: 4097 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 069-070: x 00 # default bitmap encoding + │ │ │ ├── 070-072: x 0000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [91 overall] + │ │ │ │ └── 090-091: x 04 # data[1] = 4 [95 overall] + │ │ │ └── data + │ │ │ └── 091-095: x a6060005 # data[0]: "\xa6\x06\x00\x05" + │ │ ├── data for column 5 (bool) + │ │ │ ├── 095-096: x 00 # default bitmap encoding + │ │ │ ├── 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 6 (bool) + │ │ │ ├── 112-113: x 00 # default bitmap encoding + │ │ │ ├── 113-120: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 120-128: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 128-136: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ └── 136-137: x 00 # block padding byte + │ ├── blue@8#16,SET:value handle {valueLen:6 blockNum:0 offsetInBlock:5} + │ └── trailer [compression=snappy checksum=0x9371e6fd] + ├── data offset: 275 length: 90 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 06000000 # maximum key length: 6 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 01000000 # 1 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 37000000 # col 1: page start 55 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 3c000000 # col 2: page start 60 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 45000000 # col 3: page start 69 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 58000000 # col 4: page start 88 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 5f000000 # col 5: page start 95 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 70000000 # col 6: page start 112 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 04 # data[0] = 4 [55 overall] + │ │ │ │ ├── 049-050: x 04 # data[1] = 4 [55 overall] + │ │ │ │ └── 050-051: x 04 # data[2] = 4 [55 overall] + │ │ │ └── data + │ │ │ ├── 051-055: x 626c7565 # data[00]: blue (block prefix) + │ │ │ ├── 055-055: x # data[01]: .... (bundle prefix) + │ │ │ └── 055-055: x # data[02]: .... + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 055-056: x 01 # encoding: 1b + │ │ │ │ ├── 056-057: x 00 # data[0] = 0 [58 overall] + │ │ │ │ └── 057-058: x 02 # data[1] = 2 [60 overall] + │ │ │ └── data + │ │ │ └── 058-060: x 4036 # data[0]: @6 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 060-061: x 80 # encoding: const + │ │ │ └── 061-069: x 0110000000000000 # 64-bit constant: 4097 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 069-070: x 00 # default bitmap encoding + │ │ │ ├── 070-072: x 0000 # padding to align to 64-bit boundary + │ │ │ ├── 072-080: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 080-088: b 0000000000000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 088-089: x 01 # encoding: 1b + │ │ │ │ ├── 089-090: x 00 # data[0] = 0 [91 overall] + │ │ │ │ └── 090-091: x 04 # data[1] = 4 [95 overall] + │ │ │ └── data + │ │ │ └── 091-095: x a70f0100 # data[0]: "\xa7\x0f\x01\x00" + │ │ ├── data for column 5 (bool) + │ │ │ ├── 095-096: x 00 # default bitmap encoding + │ │ │ ├── 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 104-112: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 6 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ └── 113-114: x 00 # block padding byte + │ ├── blue@6#16,SET:value handle {valueLen:15 blockNum:1 offsetInBlock:0} + │ └── trailer [compression=snappy checksum=0xcfdbcc3c] + ├── index offset: 370 length: 42 + │ ├── 00000 block:0/81 + │ │ + │ └── trailer [compression=none checksum=0x80ae3e61] + ├── index offset: 417 length: 49 + │ ├── 00000 block:86/85 + │ │ + │ └── trailer [compression=none checksum=0xf2bc08f4] + ├── index offset: 471 length: 54 + │ ├── 00000 block:176/94 + │ │ + │ └── trailer [compression=none checksum=0x4eed6c67] + ├── index offset: 530 length: 44 + │ ├── 00000 block:275/90 + │ │ + │ └── trailer [compression=none checksum=0xbacbe8f5] + ├── top-index offset: 579 length: 81 + │ ├── 00000 block:370/42 + │ │ + │ ├── 00001 block:417/49 + │ │ + │ ├── 00002 block:471/54 + │ │ + │ ├── 00003 block:530/44 + │ │ + │ └── trailer [compression=none checksum=0xdacecc3b] + ├── value-block offset: 665 length: 11 + │ └── trailer [compression=none checksum=0x86dee352] + ├── value-block offset: 681 length: 15 + │ └── trailer [compression=none checksum=0x60e7fb82] + ├── value-index offset: 701 length: 8 + │ └── trailer [compression=none checksum=0xf15e602c] + ├── properties offset: 714 length: 549 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.num.value-blocks (27) + │ ├── 00043 pebble.num.values.in.value-blocks (21) + │ ├── 00064 pebble.value-blocks.size (21) + │ ├── 00085 rocksdb.block.based.table.index.type (43) + │ ├── 00128 rocksdb.comparator (37) + │ ├── 00165 rocksdb.compression (16) + │ ├── 00181 rocksdb.compression_options (106) + │ ├── 00287 rocksdb.data.size (14) + │ ├── 00301 rocksdb.deleted.keys (15) + │ ├── 00316 rocksdb.filter.size (15) + │ ├── 00331 rocksdb.index.partitions (20) + │ ├── 00351 rocksdb.index.size (9) + │ ├── 00360 rocksdb.merge.operands (18) + │ ├── 00378 rocksdb.merge.operator (24) + │ ├── 00402 rocksdb.num.data.blocks (19) + │ ├── 00421 rocksdb.num.entries (11) + │ ├── 00432 rocksdb.num.range-deletions (19) + │ ├── 00451 rocksdb.property.collectors (36) + │ ├── 00487 rocksdb.raw.key.size (16) + │ ├── 00503 rocksdb.raw.value.size (14) + │ ├── 00517 rocksdb.top-level.index.size (24) + │ ├── restart points + │ │ └── 00541 [restart 0] + │ └── trailer [compression=none checksum=0x2e004e9b] + ├── meta-index offset: 1268 length: 64 + │ ├── 0000 pebble.value_index block:701/8 value-blocks-index-lengths: 1(num), 2(offset), 1(length) [restart] + │ ├── 0027 rocksdb.properties block:714/549 [restart] + │ ├── restart points + │ │ ├── 00052 [restart 0] + │ │ └── 00056 [restart 27] + │ └── trailer [compression=none checksum=0x926e2244] + └── footer offset: 1337 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=1268, length=64 + ├── 004 index: offset=579, length=81 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 # Require that [c,e) must be in-place. build in-place-bound=(c,e) table-format=(Pebble,v4) @@ -760,54 +773,57 @@ c@5#6,DEL: layout ---- - 0 data (66) - 0 record (17 = 3 [0] + 11 + 3) [restart] - b@5#7,SET:b5 - 17 record (14 = 3 [1] + 10 + 1) - b@3#2,SET: - 31 record (14 = 3 [0] + 11 + 0) - c@6#7,DEL: - 45 record (13 = 3 [1] + 10 + 0) - c@5#6,DEL: - 58 [restart 0] - 66 [trailer compression=none checksum=0x4e91250f] - 71 index (22) - 71 block:0/66 [restart] - 85 [restart 71] - 93 [trailer compression=none checksum=0xf80f5bcf] - 98 properties (479) - 98 obsolete-key (16) [restart] - 114 pebble.raw.point-tombstone.key.size (39) - 153 rocksdb.block.based.table.index.type (43) - 196 rocksdb.comparator (37) - 233 rocksdb.compression (16) - 249 rocksdb.compression_options (106) - 355 rocksdb.data.size (13) - 368 rocksdb.deleted.keys (15) - 383 rocksdb.filter.size (15) - 398 rocksdb.index.size (14) - 412 rocksdb.merge.operands (18) - 430 rocksdb.merge.operator (24) - 454 rocksdb.num.data.blocks (19) - 473 rocksdb.num.entries (11) - 484 rocksdb.num.range-deletions (19) - 503 rocksdb.property.collectors (36) - 539 rocksdb.raw.key.size (16) - 555 rocksdb.raw.value.size (14) - 569 [restart 98] - 577 [trailer compression=none checksum=0xdd2d145f] - 582 meta-index (32) - 582 rocksdb.properties block:98/479 [restart] - 606 [restart 582] - 614 [trailer compression=none checksum=0xbfc95718] - 619 footer (53) - 619 checksum type: crc32c - 620 meta: offset=582, length=32 - 623 index: offset=71, length=22 - 625 [padding] - 660 version: 4 - 664 magic number: 0xf09faab3f09faab3 - 672 EOF +sstable + ├── data offset: 0 length: 66 + │ ├── 00000 record (17 = 3 [0] + 11 + 3) [restart] + │ │ b@5#7,SET:b5 + │ ├── 00017 record (14 = 3 [1] + 10 + 1) + │ │ b@3#2,SET: + │ ├── 00031 record (14 = 3 [0] + 11 + 0) + │ │ c@6#7,DEL: + │ ├── 00045 record (13 = 3 [1] + 10 + 0) + │ │ c@5#6,DEL: + │ ├── restart points + │ │ └── 00058 [restart 0] + │ └── trailer [compression=none checksum=0x4e91250f] + ├── index offset: 71 length: 22 + │ ├── 00000 block:0/66 [restart] + │ ├── restart points + │ │ └── 00014 [restart 0] + │ └── trailer [compression=none checksum=0xf80f5bcf] + ├── properties offset: 98 length: 479 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.raw.point-tombstone.key.size (39) + │ ├── 00055 rocksdb.block.based.table.index.type (43) + │ ├── 00098 rocksdb.comparator (37) + │ ├── 00135 rocksdb.compression (16) + │ ├── 00151 rocksdb.compression_options (106) + │ ├── 00257 rocksdb.data.size (13) + │ ├── 00270 rocksdb.deleted.keys (15) + │ ├── 00285 rocksdb.filter.size (15) + │ ├── 00300 rocksdb.index.size (14) + │ ├── 00314 rocksdb.merge.operands (18) + │ ├── 00332 rocksdb.merge.operator (24) + │ ├── 00356 rocksdb.num.data.blocks (19) + │ ├── 00375 rocksdb.num.entries (11) + │ ├── 00386 rocksdb.num.range-deletions (19) + │ ├── 00405 rocksdb.property.collectors (36) + │ ├── 00441 rocksdb.raw.key.size (16) + │ ├── 00457 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00471 [restart 0] + │ └── trailer [compression=none checksum=0xdd2d145f] + ├── meta-index offset: 582 length: 32 + │ ├── 0000 rocksdb.properties block:98/479 [restart] + │ ├── restart points + │ │ └── 00024 [restart 0] + │ └── trailer [compression=none checksum=0xbfc95718] + └── footer offset: 619 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=582, length=32 + ├── 004 index: offset=71, length=22 + ├── 041 version: 4 + └── 045 magic number: 0xf09faab3f09faab3 # Same as above but with (Pebble,v5) [columnar blocks]. @@ -828,128 +844,127 @@ c@5#6,DEL: layout ---- - 0 data (100) - # data block header - 000-004: x 03000000 # maximum key length: 3 - # columnar block header - 004-005: x 01 # version 1 - 005-007: x 0700 # 7 columns - 007-011: x 04000000 # 4 rows - 011-012: b 00000100 # col 0: prefixbytes - 012-016: x 2e000000 # col 0: page start 46 - 016-017: b 00000011 # col 1: bytes - 017-021: x 38000000 # col 1: page start 56 - 021-022: b 00000010 # col 2: uint - 022-026: x 46000000 # col 2: page start 70 - 026-027: b 00000001 # col 3: bool - 027-031: x 50000000 # col 3: page start 80 - 031-032: b 00000011 # col 4: bytes - 032-036: x 68000000 # col 4: page start 104 - 036-037: b 00000001 # col 5: bool - 037-041: x 70000000 # col 5: page start 112 - 041-042: b 00000001 # col 6: bool - 042-046: x 71000000 # col 6: page start 113 - # data for column 0 - # PrefixBytes - 046-047: x 04 # bundleSize: 16 - # Offsets table - 047-048: x 01 # encoding: 1b - 048-049: x 00 # data[0] = 0 [54 overall] - 049-050: x 00 # data[1] = 0 [54 overall] - 050-051: x 01 # data[2] = 1 [55 overall] - 051-052: x 01 # data[3] = 1 [55 overall] - 052-053: x 02 # data[4] = 2 [56 overall] - 053-054: x 02 # data[5] = 2 [56 overall] - # Data - 054-054: x # data[00]: (block prefix) - 054-054: x # data[01]: (bundle prefix) - 054-055: x 62 # data[02]: b - 055-055: x # data[03]: . - 055-056: x 63 # data[04]: c - 056-056: x # data[05]: . - # data for column 1 - # rawbytes - # offsets table - 056-057: x 01 # encoding: 1b - 057-058: x 00 # data[0] = 0 [62 overall] - 058-059: x 02 # data[1] = 2 [64 overall] - 059-060: x 04 # data[2] = 4 [66 overall] - 060-061: x 06 # data[3] = 6 [68 overall] - 061-062: x 08 # data[4] = 8 [70 overall] - # data - 062-064: x 4035 # data[0]: @5 - 064-066: x 4033 # data[1]: @3 - 066-068: x 4036 # data[2]: @6 - 068-070: x 4035 # data[3]: @5 - # data for column 2 - 070-071: x 02 # encoding: 2b - 071-072: x 00 # padding (aligning to 16-bit boundary) - 072-074: x 0107 # data[0] = 1793 - 074-076: x 0102 # data[1] = 513 - 076-078: x 0007 # data[2] = 1792 - 078-080: x 0006 # data[3] = 1536 - # data for column 3 - 080-081: x 00 # bitmap encoding - 081-088: x 00000000000000 # padding to align to 64-bit boundary - 088-096: b 0000010100000000000000000000000000000000000000000000000000000000 # bitmap word 0 - 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 - # data for column 4 - # rawbytes - # offsets table - 104-105: x 01 # encoding: 1b - 105-106: x 00 # data[0] = 0 [110 overall] - 106-107: x 02 # data[1] = 2 [112 overall] - 107-108: x 02 # data[2] = 2 [112 overall] - 108-109: x 02 # data[3] = 2 [112 overall] - 109-110: x 02 # data[4] = 2 [112 overall] - # data - 110-112: x 6235 # data[0]: b5 - 112-112: x # data[1]: - 112-112: x # data[2]: - 112-112: x # data[3]: - # data for column 5 - 112-113: x 01 # bitmap encoding - # data for column 6 - 113-114: x 01 # bitmap encoding - 114-115: x 00 # block padding byte - b@5#7,SET:b5 - b@3#2,SET: - c@6#7,DEL: - c@5#6,DEL: - 100 [trailer compression=snappy checksum=0x73ac4dc7] - 105 index (36) - 0 block:0/100 - 141 [trailer compression=none checksum=0x760132f1] - 146 properties (479) - 146 obsolete-key (16) [restart] - 162 pebble.raw.point-tombstone.key.size (39) - 201 rocksdb.block.based.table.index.type (43) - 244 rocksdb.comparator (37) - 281 rocksdb.compression (16) - 297 rocksdb.compression_options (106) - 403 rocksdb.data.size (13) - 416 rocksdb.deleted.keys (15) - 431 rocksdb.filter.size (15) - 446 rocksdb.index.size (14) - 460 rocksdb.merge.operands (18) - 478 rocksdb.merge.operator (24) - 502 rocksdb.num.data.blocks (19) - 521 rocksdb.num.entries (11) - 532 rocksdb.num.range-deletions (19) - 551 rocksdb.property.collectors (36) - 587 rocksdb.raw.key.size (16) - 603 rocksdb.raw.value.size (14) - 617 [restart 146] - 625 [trailer compression=none checksum=0x6d52d476] - 630 meta-index (33) - 630 rocksdb.properties block:146/479 [restart] - 655 [restart 630] - 663 [trailer compression=none checksum=0x95dbb0f4] - 668 footer (53) - 668 checksum type: crc32c - 669 meta: offset=630, length=33 - 672 index: offset=105, length=36 - 674 [padding] - 709 version: 5 - 713 magic number: 0xf09faab3f09faab3 - 721 EOF +sstable + ├── data offset: 0 length: 100 + │ ├── data block header + │ │ ├── columnar block header + │ │ │ ├── 000-004: x 03000000 # maximum key length: 3 + │ │ │ ├── 004-005: x 01 # version 1 + │ │ │ ├── 005-007: x 0700 # 7 columns + │ │ │ ├── 007-011: x 04000000 # 4 rows + │ │ │ ├── 011-012: b 00000100 # col 0: prefixbytes + │ │ │ ├── 012-016: x 2e000000 # col 0: page start 46 + │ │ │ ├── 016-017: b 00000011 # col 1: bytes + │ │ │ ├── 017-021: x 38000000 # col 1: page start 56 + │ │ │ ├── 021-022: b 00000010 # col 2: uint + │ │ │ ├── 022-026: x 46000000 # col 2: page start 70 + │ │ │ ├── 026-027: b 00000001 # col 3: bool + │ │ │ ├── 027-031: x 50000000 # col 3: page start 80 + │ │ │ ├── 031-032: b 00000011 # col 4: bytes + │ │ │ ├── 032-036: x 68000000 # col 4: page start 104 + │ │ │ ├── 036-037: b 00000001 # col 5: bool + │ │ │ ├── 037-041: x 70000000 # col 5: page start 112 + │ │ │ ├── 041-042: b 00000001 # col 6: bool + │ │ │ └── 042-046: x 71000000 # col 6: page start 113 + │ │ ├── data for column 0 (prefixbytes) + │ │ │ ├── 046-047: x 04 # bundle size: 16 + │ │ │ ├── offsets table + │ │ │ │ ├── 047-048: x 01 # encoding: 1b + │ │ │ │ ├── 048-049: x 00 # data[0] = 0 [54 overall] + │ │ │ │ ├── 049-050: x 00 # data[1] = 0 [54 overall] + │ │ │ │ ├── 050-051: x 01 # data[2] = 1 [55 overall] + │ │ │ │ ├── 051-052: x 01 # data[3] = 1 [55 overall] + │ │ │ │ ├── 052-053: x 02 # data[4] = 2 [56 overall] + │ │ │ │ └── 053-054: x 02 # data[5] = 2 [56 overall] + │ │ │ └── data + │ │ │ ├── 054-054: x # data[00]: (block prefix) + │ │ │ ├── 054-054: x # data[01]: (bundle prefix) + │ │ │ ├── 054-055: x 62 # data[02]: b + │ │ │ ├── 055-055: x # data[03]: . + │ │ │ ├── 055-056: x 63 # data[04]: c + │ │ │ └── 056-056: x # data[05]: . + │ │ ├── data for column 1 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 056-057: x 01 # encoding: 1b + │ │ │ │ ├── 057-058: x 00 # data[0] = 0 [62 overall] + │ │ │ │ ├── 058-059: x 02 # data[1] = 2 [64 overall] + │ │ │ │ ├── 059-060: x 04 # data[2] = 4 [66 overall] + │ │ │ │ ├── 060-061: x 06 # data[3] = 6 [68 overall] + │ │ │ │ └── 061-062: x 08 # data[4] = 8 [70 overall] + │ │ │ └── data + │ │ │ ├── 062-064: x 4035 # data[0]: @5 + │ │ │ ├── 064-066: x 4033 # data[1]: @3 + │ │ │ ├── 066-068: x 4036 # data[2]: @6 + │ │ │ └── 068-070: x 4035 # data[3]: @5 + │ │ ├── data for column 2 (uint) + │ │ │ ├── 070-071: x 02 # encoding: 2b + │ │ │ ├── 071-072: x 00 # padding (aligning to 16-bit boundary) + │ │ │ ├── 072-074: x 0107 # data[0] = 1793 + │ │ │ ├── 074-076: x 0102 # data[1] = 513 + │ │ │ ├── 076-078: x 0007 # data[2] = 1792 + │ │ │ └── 078-080: x 0006 # data[3] = 1536 + │ │ ├── data for column 3 (bool) + │ │ │ ├── 080-081: x 00 # default bitmap encoding + │ │ │ ├── 081-088: x 00000000000000 # padding to align to 64-bit boundary + │ │ │ ├── 088-096: b 0000010100000000000000000000000000000000000000000000000000000000 # bitmap word 0 + │ │ │ └── 096-104: b 0000000100000000000000000000000000000000000000000000000000000000 # bitmap summary word 0-63 + │ │ ├── data for column 4 (bytes) + │ │ │ ├── offsets table + │ │ │ │ ├── 104-105: x 01 # encoding: 1b + │ │ │ │ ├── 105-106: x 00 # data[0] = 0 [110 overall] + │ │ │ │ ├── 106-107: x 02 # data[1] = 2 [112 overall] + │ │ │ │ ├── 107-108: x 02 # data[2] = 2 [112 overall] + │ │ │ │ ├── 108-109: x 02 # data[3] = 2 [112 overall] + │ │ │ │ └── 109-110: x 02 # data[4] = 2 [112 overall] + │ │ │ └── data + │ │ │ ├── 110-112: x 6235 # data[0]: b5 + │ │ │ ├── 112-112: x # data[1]: + │ │ │ ├── 112-112: x # data[2]: + │ │ │ └── 112-112: x # data[3]: + │ │ ├── data for column 5 (bool) + │ │ │ └── 112-113: x 01 # zero bitmap encoding + │ │ ├── data for column 6 (bool) + │ │ │ └── 113-114: x 01 # zero bitmap encoding + │ │ └── 114-115: x 00 # block padding byte + │ ├── b@5#7,SET:b5 + │ ├── b@3#2,SET: + │ ├── c@6#7,DEL: + │ ├── c@5#6,DEL: + │ └── trailer [compression=snappy checksum=0x73ac4dc7] + ├── index offset: 105 length: 36 + │ ├── 00000 block:0/100 + │ │ + │ └── trailer [compression=none checksum=0x760132f1] + ├── properties offset: 146 length: 479 + │ ├── 00000 obsolete-key (16) [restart] + │ ├── 00016 pebble.raw.point-tombstone.key.size (39) + │ ├── 00055 rocksdb.block.based.table.index.type (43) + │ ├── 00098 rocksdb.comparator (37) + │ ├── 00135 rocksdb.compression (16) + │ ├── 00151 rocksdb.compression_options (106) + │ ├── 00257 rocksdb.data.size (13) + │ ├── 00270 rocksdb.deleted.keys (15) + │ ├── 00285 rocksdb.filter.size (15) + │ ├── 00300 rocksdb.index.size (14) + │ ├── 00314 rocksdb.merge.operands (18) + │ ├── 00332 rocksdb.merge.operator (24) + │ ├── 00356 rocksdb.num.data.blocks (19) + │ ├── 00375 rocksdb.num.entries (11) + │ ├── 00386 rocksdb.num.range-deletions (19) + │ ├── 00405 rocksdb.property.collectors (36) + │ ├── 00441 rocksdb.raw.key.size (16) + │ ├── 00457 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00471 [restart 0] + │ └── trailer [compression=none checksum=0x6d52d476] + ├── meta-index offset: 630 length: 33 + │ ├── 0000 rocksdb.properties block:146/479 [restart] + │ ├── restart points + │ │ └── 00025 [restart 0] + │ └── trailer [compression=none checksum=0x95dbb0f4] + └── footer offset: 668 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=630, length=33 + ├── 004 index: offset=105, length=36 + ├── 041 version: 5 + └── 045 magic number: 0xf09faab3f09faab3 diff --git a/sstable/writer_test.go b/sstable/writer_test.go index 27dd4855f9..c9f718fae5 100644 --- a/sstable/writer_test.go +++ b/sstable/writer_test.go @@ -249,9 +249,7 @@ func runDataDriven(t *testing.T, file string, tableFormat TableFormat, paralleli return "unknown arg" } } - var buf bytes.Buffer - l.Describe(&buf, verbose, r, nil) - return buf.String() + return l.Describe(verbose, r, nil) case "decode-layout": l, err := decodeLayout(testkeys.Comparer, obj.Data()) @@ -266,9 +264,7 @@ func runDataDriven(t *testing.T, file string, tableFormat TableFormat, paralleli return "unknown arg" } } - var buf bytes.Buffer - l.Describe(&buf, verbose, r, nil) - return buf.String() + return l.Describe(verbose, r, nil) case "rewrite": var meta *WriterMetadata @@ -371,11 +367,9 @@ func TestWriterWithValueBlocks(t *testing.T) { if err != nil { return err.Error() } - var buf bytes.Buffer - l.Describe(&buf, true, r, func(key *base.InternalKey, value []byte) { - fmt.Fprintf(&buf, " %s:%s\n", key.String(), string(value)) + return l.Describe(true, r, func(key *base.InternalKey, value []byte) string { + return fmt.Sprintf("%s:%s", key.String(), string(value)) }) - return buf.String() case "scan-raw": // Raw scan does not fetch from value blocks. diff --git a/testdata/iter_histories/errors b/testdata/iter_histories/errors index 9b0bbdf4b2..dfdee59e3d 100644 --- a/testdata/iter_histories/errors +++ b/testdata/iter_histories/errors @@ -77,13 +77,13 @@ L0.0: layout filename=000004.sst ---- - 0 data (38) - 43 index (35) - 83 range-key (29) - 117 properties (573) - 695 meta-index (57) - 757 footer (53) - 810 EOF +sstable + ├── data offset: 0 length: 38 + ├── index offset: 43 length: 35 + ├── range-key offset: 83 length: 29 + ├── properties offset: 117 length: 573 + ├── meta-index offset: 695 length: 57 + └── footer offset: 757 length: 53 # Inject an error on the first `ReadAt` call on 000004.sst's range key block # (which is at offset 83). @@ -120,18 +120,18 @@ L1: layout filename=000004.sst ---- - 0 data (23) - 28 data (23) - 56 data (23) - 84 data (23) - 112 data (22) - 139 data (22) - 166 data (22) - 193 index (113) - 311 properties (571) - 887 meta-index (33) - 925 footer (53) - 978 EOF +sstable + ├── data offset: 0 length: 23 + ├── data offset: 28 length: 23 + ├── data offset: 56 length: 23 + ├── data offset: 84 length: 23 + ├── data offset: 112 length: 22 + ├── data offset: 139 length: 22 + ├── data offset: 166 length: 22 + ├── index offset: 193 length: 113 + ├── properties offset: 311 length: 571 + ├── meta-index offset: 887 length: 33 + └── footer offset: 925 length: 53 reopen auto-compactions=off enable-table-stats=false inject-errors=((ErrInjected (And (PathMatch "000004.sst") (OpFileReadAt 0)))) ---- @@ -176,16 +176,16 @@ L1: layout filename=000004.sst ---- - 0 data (22) - 27 data (22) - 54 data (22) - 81 data (22) - 108 data (22) - 135 index (84) - 224 properties (495) - 724 meta-index (33) - 762 footer (53) - 815 EOF +sstable + ├── data offset: 0 length: 22 + ├── data offset: 27 length: 22 + ├── data offset: 54 length: 22 + ├── data offset: 81 length: 22 + ├── data offset: 108 length: 22 + ├── index offset: 135 length: 84 + ├── properties offset: 224 length: 495 + ├── meta-index offset: 724 length: 33 + └── footer offset: 762 length: 53 # NB: Block offset to key contained: # 0 -> a, 27 -> b, 54 -> c, 81 -> d, 108 -> e @@ -238,15 +238,15 @@ L1: layout filename=000004.sst ---- - 0 data (22) - 27 data (22) - 54 data (22) - 81 data (22) - 108 index (71) - 184 properties (570) - 759 meta-index (33) - 797 footer (53) - 850 EOF +sstable + ├── data offset: 0 length: 22 + ├── data offset: 27 length: 22 + ├── data offset: 54 length: 22 + ├── data offset: 81 length: 22 + ├── index offset: 108 length: 71 + ├── properties offset: 184 length: 570 + ├── meta-index offset: 759 length: 33 + └── footer offset: 797 length: 53 reopen auto-compactions=off enable-table-stats=false inject-errors=((ErrInjected (And (PathMatch "000004.sst") (OpFileReadAt 54)))) diff --git a/tool/sstable.go b/tool/sstable.go index 86b2f2f0eb..91c76a673a 100644 --- a/tool/sstable.go +++ b/tool/sstable.go @@ -12,6 +12,7 @@ import ( "os" "path/filepath" "slices" + "strings" "text/tabwriter" "github.com/cockroachdb/pebble" @@ -258,13 +259,16 @@ func (s *sstableT) runLayout(cmd *cobra.Command, args []string) { fmt.Fprintf(stderr, "%s\n", err) return } - fmtRecord := func(key *base.InternalKey, value []byte) { - formatKeyValue(stdout, s.fmtKey, s.fmtValue, key, value) - } - if s.fmtKey.spec == "null" && s.fmtValue.spec == "null" { - fmtRecord = nil + var fmtRecord func(key *base.InternalKey, value []byte) string + if s.fmtKey.spec != "null" || s.fmtValue.spec != "null" { + var buf bytes.Buffer + fmtRecord = func(key *base.InternalKey, value []byte) string { + buf.Reset() + formatKeyValue(&buf, s.fmtKey, s.fmtValue, key, value) + return strings.TrimRight(buf.String(), "\n") + } } - l.Describe(stdout, s.verbose, r, fmtRecord) + _, _ = stdout.Write([]byte(l.Describe(s.verbose, r, fmtRecord))) }) } diff --git a/tool/testdata/sstable_layout b/tool/testdata/sstable_layout index 680dcd62d4..f19a29a8d3 100644 --- a/tool/testdata/sstable_layout +++ b/tool/testdata/sstable_layout @@ -6,80 +6,80 @@ sstable layout ../sstable/testdata/h.sst ---- h.sst - 0 data (1094) - 1099 data (1057) - 2161 data (1074) - 3240 data (1051) - 4296 data (1046) - 5347 data (1091) - 6443 data (996) - 7444 data (1060) - 8509 data (1051) - 9565 data (1016) - 10586 data (1026) - 11617 data (1100) - 12722 data (1025) - 13752 data (156) - 13913 index (245) - 14163 range-del (421) - 14589 properties (409) - 15003 meta-index (62) - 15070 footer (53) - 15123 EOF +sstable + ├── data offset: 0 length: 1094 + ├── data offset: 1099 length: 1057 + ├── data offset: 2161 length: 1074 + ├── data offset: 3240 length: 1051 + ├── data offset: 4296 length: 1046 + ├── data offset: 5347 length: 1091 + ├── data offset: 6443 length: 996 + ├── data offset: 7444 length: 1060 + ├── data offset: 8509 length: 1051 + ├── data offset: 9565 length: 1016 + ├── data offset: 10586 length: 1026 + ├── data offset: 11617 length: 1100 + ├── data offset: 12722 length: 1025 + ├── data offset: 13752 length: 156 + ├── index offset: 13913 length: 245 + ├── range-del offset: 14163 length: 421 + ├── properties offset: 14589 length: 409 + ├── meta-index offset: 15003 length: 62 + └── footer offset: 15070 length: 53 sstable layout ../sstable/testdata/h.table-bloom.no-compression.sst ---- h.table-bloom.no-compression.sst - 0 data (2041) - 2046 data (2044) - 4095 data (2039) - 6139 data (2036) - 8180 data (2032) - 10217 data (2042) - 12264 data (2039) - 14308 data (2037) - 16350 data (2029) - 18384 data (2040) - 20429 data (2030) - 22464 data (2035) - 24504 data (2036) - 26545 data (249) - 26799 fullfilter.rocksdb.BuiltinBloomFilter (2245) - 29049 index (325) - 29379 range-del (421) - 29805 properties (453) - 30263 meta-index (113) - 30381 footer (53) - 30434 EOF +sstable + ├── data offset: 0 length: 2041 + ├── data offset: 2046 length: 2044 + ├── data offset: 4095 length: 2039 + ├── data offset: 6139 length: 2036 + ├── data offset: 8180 length: 2032 + ├── data offset: 10217 length: 2042 + ├── data offset: 12264 length: 2039 + ├── data offset: 14308 length: 2037 + ├── data offset: 16350 length: 2029 + ├── data offset: 18384 length: 2040 + ├── data offset: 20429 length: 2030 + ├── data offset: 22464 length: 2035 + ├── data offset: 24504 length: 2036 + ├── data offset: 26545 length: 249 + ├── fullfilter.rocksdb.BuiltinBloomFilter offset: 26799 length: 2245 + ├── index offset: 29049 length: 325 + ├── range-del offset: 29379 length: 421 + ├── properties offset: 29805 length: 453 + ├── meta-index offset: 30263 length: 113 + └── footer offset: 30381 length: 53 sstable layout ../sstable/testdata/h.no-compression.two_level_index.sst ---- h.no-compression.two_level_index.sst - 0 data (2041) - 2046 data (2044) - 4095 data (2039) - 6139 data (2036) - 8180 data (2032) - 10217 data (2042) - 12264 data (2039) - 14308 data (2037) - 16350 data (2029) - 18384 data (2040) - 20429 data (2030) - 22464 data (2035) - 24504 data (2036) - 26545 data (249) - 26799 index (120) - 26924 index (118) - 27047 index (95) - 27147 top-index (70) - 27222 range-del (421) - 27648 properties (455) - 28108 meta-index (64) - 28177 footer (53) - 28230 EOF +sstable + ├── data offset: 0 length: 2041 + ├── data offset: 2046 length: 2044 + ├── data offset: 4095 length: 2039 + ├── data offset: 6139 length: 2036 + ├── data offset: 8180 length: 2032 + ├── data offset: 10217 length: 2042 + ├── data offset: 12264 length: 2039 + ├── data offset: 14308 length: 2037 + ├── data offset: 16350 length: 2029 + ├── data offset: 18384 length: 2040 + ├── data offset: 20429 length: 2030 + ├── data offset: 22464 length: 2035 + ├── data offset: 24504 length: 2036 + ├── data offset: 26545 length: 249 + ├── index offset: 26799 length: 120 + ├── index offset: 26924 length: 118 + ├── index offset: 27047 length: 95 + ├── top-index offset: 27147 length: 70 + ├── range-del offset: 27222 length: 421 + ├── properties offset: 27648 length: 455 + ├── meta-index offset: 28108 length: 64 + └── footer offset: 28177 length: 53 sstable layout -v @@ -87,3763 +87,3785 @@ sstable layout ../sstable/testdata/h.no-compression.two_level_index.sst ---- h.no-compression.two_level_index.sst - 0 data (2041) - 0 record (14 = 3 [0] + 9 + 2) [restart] - a#0,SET test value formatter: 97 - 14 record (17 = 3 [1] + 13 + 1) - aboard#0,SET test value formatter: 2 - 31 record (14 = 3 [3] + 10 + 1) - about#0,SET test value formatter: 2 - 45 record (14 = 3 [3] + 10 + 1) - above#0,SET test value formatter: 1 - 59 record (16 = 3 [2] + 12 + 1) - abroad#0,SET test value formatter: 1 - 75 record (16 = 3 [2] + 12 + 1) - absurd#0,SET test value formatter: 1 - 91 record (16 = 3 [2] + 12 + 1) - abused#0,SET test value formatter: 1 - 107 record (17 = 3 [1] + 13 + 1) - accord#0,SET test value formatter: 1 - 124 record (15 = 3 [4] + 11 + 1) - account#0,SET test value formatter: 1 - 139 record (22 = 3 [2] + 18 + 1) - achievements#0,SET test value formatter: 1 - 161 record (18 = 3 [2] + 14 + 1) - acquaint#0,SET test value formatter: 1 - 179 record (13 = 3 [2] + 9 + 1) - act#0,SET test value formatter: 5 - 192 record (15 = 3 [3] + 11 + 1) - action#0,SET test value formatter: 1 - 207 record (13 = 3 [6] + 9 + 1) - actions#0,SET test value formatter: 1 - 220 record (19 = 3 [1] + 15 + 1) - addition#0,SET test value formatter: 1 - 239 record (16 = 3 [3] + 12 + 1) - address#0,SET test value formatter: 1 - 255 record (17 = 3 [0] + 13 + 1) [restart] - adieu#0,SET test value formatter: 4 - 272 record (20 = 3 [2] + 16 + 1) - admiration#0,SET test value formatter: 1 - 292 record (18 = 3 [2] + 14 + 1) - adoption#0,SET test value formatter: 1 - 310 record (20 = 3 [2] + 16 + 1) - adulterate#0,SET test value formatter: 1 - 330 record (19 = 3 [2] + 15 + 1) - advantage#0,SET test value formatter: 1 - 349 record (15 = 3 [3] + 11 + 1) - advice#0,SET test value formatter: 1 - 364 record (17 = 3 [1] + 13 + 1) - affair#0,SET test value formatter: 2 - 381 record (18 = 3 [3] + 14 + 1) - affection#0,SET test value formatter: 3 - 399 record (15 = 3 [2] + 11 + 1) - after#0,SET test value formatter: 1 - 414 record (16 = 3 [5] + 12 + 1) - afternoon#0,SET test value formatter: 1 - 430 record (17 = 3 [1] + 12 + 2) - again#0,SET test value formatter: 13 - 447 record (14 = 3 [5] + 10 + 1) - against#0,SET test value formatter: 5 - 461 record (13 = 3 [1] + 9 + 1) - ah#0,SET test value formatter: 2 - 474 record (14 = 3 [1] + 10 + 1) - air#0,SET test value formatter: 5 - 488 record (13 = 3 [3] + 9 + 1) - airs#0,SET test value formatter: 1 - 501 record (15 = 3 [1] + 11 + 1) - alas#0,SET test value formatter: 1 - 516 record (16 = 3 [0] + 11 + 2) [restart] - all#0,SET test value formatter: 36 - 532 record (15 = 3 [3] + 11 + 1) - alleys#0,SET test value formatter: 1 - 547 record (14 = 3 [3] + 10 + 1) - allow#0,SET test value formatter: 1 - 561 record (16 = 3 [2] + 12 + 1) - almost#0,SET test value formatter: 4 - 577 record (15 = 3 [2] + 11 + 1) - alone#0,SET test value formatter: 4 - 592 record (13 = 3 [4] + 9 + 1) - along#0,SET test value formatter: 2 - 605 record (17 = 3 [2] + 13 + 1) - already#0,SET test value formatter: 1 - 622 record (16 = 3 [2] + 12 + 1) - always#0,SET test value formatter: 1 - 638 record (13 = 3 [1] + 9 + 1) - am#0,SET test value formatter: 9 - 651 record (16 = 3 [2] + 12 + 1) - amazed#0,SET test value formatter: 1 - 667 record (19 = 3 [2] + 15 + 1) - ambiguous#0,SET test value formatter: 1 - 686 record (17 = 3 [4] + 13 + 1) - ambitious#0,SET test value formatter: 1 - 703 record (14 = 3 [1] + 9 + 2) - an#0,SET test value formatter: 13 - 717 record (15 = 3 [2] + 9 + 3) - and#0,SET test value formatter: 227 - 732 record (15 = 3 [2] + 11 + 1) - angel#0,SET test value formatter: 1 - 747 record (13 = 3 [5] + 9 + 1) - angels#0,SET test value formatter: 1 - 760 record (17 = 3 [0] + 13 + 1) [restart] - anger#0,SET test value formatter: 1 - 777 record (14 = 3 [3] + 10 + 1) - angry#0,SET test value formatter: 1 - 791 record (17 = 3 [2] + 13 + 1) - another#0,SET test value formatter: 1 - 808 record (16 = 3 [2] + 12 + 1) - answer#0,SET test value formatter: 4 - 824 record (15 = 3 [2] + 11 + 1) - antic#0,SET test value formatter: 1 - 839 record (13 = 3 [2] + 9 + 1) - any#0,SET test value formatter: 6 - 852 record (18 = 3 [1] + 14 + 1) - apparel#0,SET test value formatter: 1 - 870 record (17 = 3 [5] + 13 + 1) - apparition#0,SET test value formatter: 2 - 887 record (15 = 3 [3] + 11 + 1) - appear#0,SET test value formatter: 4 - 902 record (13 = 3 [6] + 9 + 1) - appears#0,SET test value formatter: 1 - 915 record (16 = 3 [4] + 12 + 1) - appetite#0,SET test value formatter: 1 - 931 record (16 = 3 [3] + 12 + 1) - approve#0,SET test value formatter: 1 - 947 record (13 = 3 [2] + 9 + 1) - apt#0,SET test value formatter: 1 - 960 record (15 = 3 [1] + 10 + 2) - are#0,SET test value formatter: 21 - 975 record (13 = 3 [2] + 9 + 1) - arm#0,SET test value formatter: 2 - 988 record (14 = 3 [3] + 10 + 1) - armed#0,SET test value formatter: 2 - 1002 record (18 = 3 [0] + 14 + 1) [restart] - armour#0,SET test value formatter: 1 - 1020 record (13 = 3 [3] + 9 + 1) - arms#0,SET test value formatter: 2 - 1033 record (16 = 3 [2] + 12 + 1) - arrant#0,SET test value formatter: 1 - 1049 record (13 = 3 [2] + 9 + 1) - art#0,SET test value formatter: 6 - 1062 record (15 = 3 [3] + 11 + 1) - artery#0,SET test value formatter: 1 - 1077 record (16 = 3 [3] + 12 + 1) - article#0,SET test value formatter: 1 - 1093 record (13 = 3 [7] + 9 + 1) - articles#0,SET test value formatter: 1 - 1106 record (14 = 3 [1] + 9 + 2) - as#0,SET test value formatter: 56 - 1120 record (15 = 3 [2] + 11 + 1) - aside#0,SET test value formatter: 1 - 1135 record (16 = 3 [2] + 12 + 1) - asking#0,SET test value formatter: 1 - 1151 record (16 = 3 [2] + 12 + 1) - assail#0,SET test value formatter: 1 - 1167 record (18 = 3 [3] + 14 + 1) - assistant#0,SET test value formatter: 1 - 1185 record (15 = 3 [3] + 11 + 1) - assume#0,SET test value formatter: 2 - 1200 record (14 = 3 [1] + 9 + 2) - at#0,SET test value formatter: 18 - 1214 record (20 = 3 [2] + 16 + 1) - attendants#0,SET test value formatter: 1 - 1234 record (13 = 3 [5] + 9 + 1) - attent#0,SET test value formatter: 1 - 1247 record (21 = 3 [0] + 17 + 1) [restart] - attribute#0,SET test value formatter: 1 - 1268 record (19 = 3 [1] + 15 + 1) - audience#0,SET test value formatter: 1 - 1287 record (15 = 3 [2] + 11 + 1) - aught#0,SET test value formatter: 2 - 1302 record (20 = 3 [2] + 16 + 1) - auspicious#0,SET test value formatter: 1 - 1322 record (16 = 3 [1] + 12 + 1) - avoid#0,SET test value formatter: 1 - 1338 record (15 = 3 [3] + 11 + 1) - avouch#0,SET test value formatter: 1 - 1353 record (16 = 3 [1] + 12 + 1) - awake#0,SET test value formatter: 1 - 1369 record (13 = 3 [3] + 9 + 1) - away#0,SET test value formatter: 7 - 1382 record (16 = 3 [2] + 12 + 1) - awhile#0,SET test value formatter: 2 - 1398 record (13 = 3 [1] + 9 + 1) - ay#0,SET test value formatter: 7 - 1411 record (16 = 3 [0] + 12 + 1) - baby#0,SET test value formatter: 1 - 1427 record (14 = 3 [2] + 10 + 1) - back#0,SET test value formatter: 1 - 1441 record (15 = 3 [2] + 11 + 1) - baked#0,SET test value formatter: 1 - 1456 record (14 = 3 [2] + 10 + 1) - bark#0,SET test value formatter: 1 - 1470 record (13 = 3 [3] + 9 + 1) - barr#0,SET test value formatter: 1 - 1483 record (14 = 3 [2] + 10 + 1) - base#0,SET test value formatter: 1 - 1497 record (17 = 3 [0] + 13 + 1) [restart] - baser#0,SET test value formatter: 1 - 1514 record (15 = 3 [2] + 11 + 1) - bawds#0,SET test value formatter: 1 - 1529 record (14 = 3 [1] + 9 + 2) - be#0,SET test value formatter: 42 - 1543 record (14 = 3 [2] + 10 + 1) - bear#0,SET test value formatter: 5 - 1557 record (13 = 3 [4] + 9 + 1) - beard#0,SET test value formatter: 1 - 1570 record (15 = 3 [4] + 11 + 1) - bearers#0,SET test value formatter: 1 - 1585 record (13 = 3 [4] + 9 + 1) - bears#0,SET test value formatter: 1 - 1598 record (14 = 3 [3] + 10 + 1) - beast#0,SET test value formatter: 2 - 1612 record (16 = 3 [3] + 12 + 1) - beating#0,SET test value formatter: 1 - 1628 record (15 = 3 [3] + 11 + 1) - beauty#0,SET test value formatter: 1 - 1643 record (15 = 3 [3] + 11 + 1) - beaver#0,SET test value formatter: 1 - 1658 record (17 = 3 [2] + 13 + 1) - beckons#0,SET test value formatter: 2 - 1675 record (13 = 3 [2] + 9 + 1) - bed#0,SET test value formatter: 4 - 1688 record (14 = 3 [2] + 10 + 1) - been#0,SET test value formatter: 4 - 1702 record (16 = 3 [3] + 12 + 1) - beetles#0,SET test value formatter: 1 - 1718 record (18 = 3 [2] + 14 + 1) - befitted#0,SET test value formatter: 1 - 1736 record (18 = 3 [0] + 14 + 1) [restart] - before#0,SET test value formatter: 6 - 1754 record (13 = 3 [2] + 9 + 1) - beg#0,SET test value formatter: 1 - 1767 record (16 = 3 [3] + 12 + 1) - beguile#0,SET test value formatter: 1 - 1783 record (16 = 3 [2] + 12 + 1) - behold#0,SET test value formatter: 1 - 1799 record (15 = 3 [4] + 11 + 1) - behoves#0,SET test value formatter: 1 - 1814 record (15 = 3 [2] + 11 + 1) - being#0,SET test value formatter: 4 - 1829 record (16 = 3 [2] + 12 + 1) - belief#0,SET test value formatter: 1 - 1845 record (14 = 3 [5] + 10 + 1) - believe#0,SET test value formatter: 6 - 1859 record (13 = 3 [3] + 9 + 1) - bell#0,SET test value formatter: 1 - 1872 record (14 = 3 [2] + 10 + 1) - bend#0,SET test value formatter: 2 - 1886 record (16 = 3 [3] + 12 + 1) - beneath#0,SET test value formatter: 5 - 1902 record (15 = 3 [4] + 11 + 1) - benefit#0,SET test value formatter: 1 - 1917 record (19 = 3 [2] + 14 + 2) - bernardo#0,SET test value formatter: 30 - 1936 record (17 = 3 [2] + 13 + 1) - beseech#0,SET test value formatter: 2 - 1953 record (17 = 3 [3] + 13 + 1) - besmirch#0,SET test value formatter: 1 - 1970 record (13 = 3 [3] + 9 + 1) - best#0,SET test value formatter: 5 - 1983 record (18 = 3 [0] + 14 + 1) [restart] - beteem#0,SET test value formatter: 1 - 2001 [restart 0] - 2005 [restart 255] - 2009 [restart 516] - 2013 [restart 760] - 2017 [restart 1002] - 2021 [restart 1247] - 2025 [restart 1497] - 2029 [restart 1736] - 2033 [restart 1983] - 2041 [trailer compression=none checksum=0x13c15fb] - 2046 data (2044) - 2046 record (21 = 3 [0] + 17 + 1) [restart] - bethought#0,SET test value formatter: 1 - 2067 record (15 = 3 [3] + 11 + 1) - better#0,SET test value formatter: 2 - 2082 record (16 = 3 [3] + 12 + 1) - between#0,SET test value formatter: 2 - 2098 record (16 = 3 [2] + 12 + 1) - beware#0,SET test value formatter: 2 - 2114 record (16 = 3 [2] + 12 + 1) - beyond#0,SET test value formatter: 1 - 2130 record (14 = 3 [1] + 10 + 1) - bid#0,SET test value formatter: 2 - 2144 record (14 = 3 [2] + 10 + 1) - bird#0,SET test value formatter: 2 - 2158 record (14 = 3 [3] + 10 + 1) - birth#0,SET test value formatter: 3 - 2172 record (15 = 3 [2] + 11 + 1) - bites#0,SET test value formatter: 1 - 2187 record (15 = 3 [3] + 11 + 1) - bitter#0,SET test value formatter: 1 - 2202 record (16 = 3 [1] + 12 + 1) - black#0,SET test value formatter: 1 - 2218 record (14 = 3 [3] + 10 + 1) - blast#0,SET test value formatter: 1 - 2232 record (17 = 3 [5] + 13 + 1) - blastments#0,SET test value formatter: 1 - 2249 record (13 = 3 [5] + 9 + 1) - blasts#0,SET test value formatter: 1 - 2262 record (15 = 3 [3] + 11 + 1) - blazes#0,SET test value formatter: 1 - 2277 record (14 = 3 [4] + 10 + 1) - blazon#0,SET test value formatter: 1 - 2291 record (20 = 3 [0] + 16 + 1) [restart] - blessing#0,SET test value formatter: 3 - 2311 record (15 = 3 [2] + 11 + 1) - blood#0,SET test value formatter: 7 - 2326 record (17 = 3 [3] + 13 + 1) - blossoms#0,SET test value formatter: 1 - 2343 record (14 = 3 [3] + 10 + 1) - blows#0,SET test value formatter: 1 - 2357 record (16 = 3 [1] + 12 + 1) - bodes#0,SET test value formatter: 1 - 2373 record (13 = 3 [3] + 9 + 1) - body#0,SET test value formatter: 5 - 2386 record (15 = 3 [2] + 11 + 1) - bonds#0,SET test value formatter: 1 - 2401 record (14 = 3 [3] + 10 + 1) - bones#0,SET test value formatter: 1 - 2415 record (14 = 3 [2] + 10 + 1) - book#0,SET test value formatter: 1 - 2429 record (13 = 3 [4] + 9 + 1) - books#0,SET test value formatter: 1 - 2442 record (14 = 3 [2] + 10 + 1) - born#0,SET test value formatter: 2 - 2456 record (17 = 3 [3] + 13 + 1) - borrower#0,SET test value formatter: 1 - 2473 record (15 = 3 [6] + 11 + 1) - borrowing#0,SET test value formatter: 1 - 2488 record (15 = 3 [2] + 11 + 1) - bosom#0,SET test value formatter: 1 - 2503 record (14 = 3 [2] + 10 + 1) - both#0,SET test value formatter: 3 - 2517 record (15 = 3 [2] + 11 + 1) - bound#0,SET test value formatter: 2 - 2532 record (21 = 3 [0] + 17 + 1) [restart] - bounteous#0,SET test value formatter: 1 - 2553 record (13 = 3 [2] + 9 + 1) - bow#0,SET test value formatter: 1 - 2566 record (13 = 3 [2] + 9 + 1) - boy#0,SET test value formatter: 2 - 2579 record (16 = 3 [1] + 12 + 1) - brain#0,SET test value formatter: 2 - 2595 record (13 = 3 [3] + 9 + 1) - bray#0,SET test value formatter: 1 - 2608 record (15 = 3 [3] + 11 + 1) - brazen#0,SET test value formatter: 1 - 2623 record (16 = 3 [2] + 12 + 1) - breach#0,SET test value formatter: 1 - 2639 record (13 = 3 [4] + 9 + 1) - break#0,SET test value formatter: 3 - 2652 record (15 = 3 [5] + 11 + 1) - breaking#0,SET test value formatter: 1 - 2667 record (14 = 3 [4] + 10 + 1) - breath#0,SET test value formatter: 1 - 2681 record (15 = 3 [6] + 11 + 1) - breathing#0,SET test value formatter: 1 - 2696 record (15 = 3 [2] + 11 + 1) - brief#0,SET test value formatter: 1 - 2711 record (14 = 3 [3] + 10 + 1) - bring#0,SET test value formatter: 1 - 2725 record (17 = 3 [2] + 13 + 1) - brokers#0,SET test value formatter: 1 - 2742 record (16 = 3 [3] + 12 + 1) - brother#0,SET test value formatter: 6 - 2758 record (13 = 3 [3] + 9 + 1) - brow#0,SET test value formatter: 1 - 2771 record (17 = 3 [0] + 13 + 1) [restart] - bruit#0,SET test value formatter: 1 - 2788 record (15 = 3 [1] + 11 + 1) - bulk#0,SET test value formatter: 1 - 2803 record (16 = 3 [2] + 12 + 1) - buried#0,SET test value formatter: 1 - 2819 record (14 = 3 [3] + 10 + 1) - burns#0,SET test value formatter: 2 - 2833 record (13 = 3 [4] + 9 + 1) - burnt#0,SET test value formatter: 1 - 2846 record (14 = 3 [3] + 10 + 1) - burst#0,SET test value formatter: 2 - 2860 record (18 = 3 [2] + 14 + 1) - business#0,SET test value formatter: 4 - 2878 record (14 = 3 [2] + 9 + 2) - but#0,SET test value formatter: 58 - 2892 record (16 = 3 [3] + 12 + 1) - buttons#0,SET test value formatter: 1 - 2908 record (13 = 3 [2] + 9 + 1) - buy#0,SET test value formatter: 1 - 2921 record (14 = 3 [1] + 9 + 2) - by#0,SET test value formatter: 31 - 2935 record (16 = 3 [0] + 12 + 1) - call#0,SET test value formatter: 4 - 2951 record (19 = 3 [3] + 15 + 1) - calumnious#0,SET test value formatter: 1 - 2970 record (14 = 3 [2] + 10 + 1) - came#0,SET test value formatter: 2 - 2984 record (13 = 3 [2] + 9 + 1) - can#0,SET test value formatter: 5 - 2997 record (15 = 3 [3] + 11 + 1) - canker#0,SET test value formatter: 1 - 3012 record (18 = 3 [0] + 14 + 1) [restart] - cannon#0,SET test value formatter: 2 - 3030 record (13 = 3 [5] + 9 + 1) - cannot#0,SET test value formatter: 3 - 3043 record (14 = 3 [3] + 10 + 1) - canon#0,SET test value formatter: 1 - 3057 record (16 = 3 [5] + 12 + 1) - canonized#0,SET test value formatter: 1 - 3073 record (14 = 3 [3] + 10 + 1) - canst#0,SET test value formatter: 2 - 3087 record (13 = 3 [2] + 9 + 1) - cap#0,SET test value formatter: 1 - 3100 record (19 = 3 [2] + 15 + 1) - carefully#0,SET test value formatter: 1 - 3119 record (17 = 3 [3] + 13 + 1) - carriage#0,SET test value formatter: 1 - 3136 record (16 = 3 [4] + 12 + 1) - carrying#0,SET test value formatter: 1 - 3152 record (14 = 3 [3] + 10 + 1) - carve#0,SET test value formatter: 1 - 3166 record (14 = 3 [2] + 10 + 1) - cast#0,SET test value formatter: 3 - 3180 record (14 = 3 [4] + 10 + 1) - castle#0,SET test value formatter: 2 - 3194 record (15 = 3 [2] + 11 + 1) - catch#0,SET test value formatter: 1 - 3209 record (16 = 3 [2] + 12 + 1) - cautel#0,SET test value formatter: 1 - 3225 record (15 = 3 [4] + 11 + 1) - caution#0,SET test value formatter: 1 - 3240 record (21 = 3 [1] + 17 + 1) - celebrated#0,SET test value formatter: 1 - 3261 record (21 = 3 [0] + 17 + 1) [restart] - celestial#0,SET test value formatter: 1 - 3282 record (18 = 3 [3] + 14 + 1) - cellarage#0,SET test value formatter: 1 - 3300 record (17 = 3 [2] + 13 + 1) - censure#0,SET test value formatter: 2 - 3317 record (19 = 3 [2] + 15 + 1) - cerements#0,SET test value formatter: 1 - 3336 record (16 = 3 [3] + 12 + 1) - certain#0,SET test value formatter: 1 - 3352 record (18 = 3 [1] + 14 + 1) - chances#0,SET test value formatter: 1 - 3370 record (14 = 3 [4] + 10 + 1) - change#0,SET test value formatter: 1 - 3384 record (18 = 3 [3] + 14 + 1) - character#0,SET test value formatter: 1 - 3402 record (14 = 3 [4] + 10 + 1) - charge#0,SET test value formatter: 3 - 3416 record (16 = 3 [4] + 12 + 1) - chariest#0,SET test value formatter: 1 - 3432 record (17 = 3 [5] + 13 + 1) - charitable#0,SET test value formatter: 1 - 3449 record (13 = 3 [4] + 9 + 1) - charm#0,SET test value formatter: 1 - 3462 record (15 = 3 [3] + 11 + 1) - chaste#0,SET test value formatter: 1 - 3477 record (15 = 3 [2] + 11 + 1) - cheer#0,SET test value formatter: 1 - 3492 record (15 = 3 [2] + 11 + 1) - chief#0,SET test value formatter: 2 - 3507 record (15 = 3 [5] + 11 + 1) - chiefest#0,SET test value formatter: 1 - 3522 record (18 = 3 [0] + 14 + 1) [restart] - choice#0,SET test value formatter: 2 - 3540 record (15 = 3 [3] + 11 + 1) - choose#0,SET test value formatter: 1 - 3555 record (24 = 3 [1] + 20 + 1) - circumscribed#0,SET test value formatter: 1 - 3579 record (17 = 3 [7] + 13 + 1) - circumstance#0,SET test value formatter: 2 - 3596 record (15 = 3 [1] + 11 + 1) - clad#0,SET test value formatter: 1 - 3611 record (17 = 3 [3] + 13 + 1) - claudius#0,SET test value formatter: 8 - 3628 record (17 = 3 [2] + 13 + 1) - clearly#0,SET test value formatter: 1 - 3645 record (14 = 3 [3] + 10 + 1) - clepe#0,SET test value formatter: 1 - 3659 record (15 = 3 [2] + 11 + 1) - cliff#0,SET test value formatter: 1 - 3674 record (19 = 3 [3] + 15 + 1) - climatures#0,SET test value formatter: 1 - 3693 record (15 = 3 [2] + 11 + 1) - cloak#0,SET test value formatter: 1 - 3708 record (15 = 3 [3] + 11 + 1) - clouds#0,SET test value formatter: 2 - 3723 record (15 = 3 [1] + 11 + 1) - cock#0,SET test value formatter: 5 - 3738 record (14 = 3 [2] + 10 + 1) - cold#0,SET test value formatter: 2 - 3752 record (14 = 3 [4] + 10 + 1) - coldly#0,SET test value formatter: 1 - 3766 record (19 = 3 [3] + 15 + 1) - colleagued#0,SET test value formatter: 1 - 3785 record (18 = 3 [0] + 14 + 1) [restart] - colour#0,SET test value formatter: 1 - 3803 record (16 = 3 [2] + 12 + 1) - combat#0,SET test value formatter: 1 - 3819 record (14 = 3 [6] + 10 + 1) - combated#0,SET test value formatter: 1 - 3833 record (16 = 3 [4] + 12 + 1) - combined#0,SET test value formatter: 1 - 3849 record (14 = 3 [3] + 9 + 2) - come#0,SET test value formatter: 17 - 3863 record (13 = 3 [4] + 9 + 1) - comes#0,SET test value formatter: 7 - 3876 record (13 = 3 [5] + 9 + 1) - comest#0,SET test value formatter: 1 - 3889 record (16 = 3 [3] + 12 + 1) - comfort#0,SET test value formatter: 1 - 3905 record (15 = 3 [3] + 11 + 1) - coming#0,SET test value formatter: 1 - 3920 record (16 = 3 [3] + 12 + 1) - command#0,SET test value formatter: 1 - 3936 record (16 = 3 [7] + 12 + 1) - commandment#0,SET test value formatter: 1 - 3952 record (15 = 3 [4] + 11 + 1) - commend#0,SET test value formatter: 2 - 3967 record (16 = 3 [7] + 12 + 1) - commendable#0,SET test value formatter: 1 - 3983 record (14 = 3 [4] + 10 + 1) - common#0,SET test value formatter: 4 - 3997 record (16 = 3 [3] + 12 + 1) - compact#0,SET test value formatter: 1 - 4013 record (17 = 3 [4] + 13 + 1) - competent#0,SET test value formatter: 1 - 4030 record (20 = 3 [0] + 16 + 1) [restart] - complete#0,SET test value formatter: 1 - 4050 [restart 2046] - 4054 [restart 2291] - 4058 [restart 2532] - 4062 [restart 2771] - 4066 [restart 3012] - 4070 [restart 3261] - 4074 [restart 3522] - 4078 [restart 3785] - 4082 [restart 4030] - 4090 [trailer compression=none checksum=0x334c5e54] - 4095 data (2039) - 4095 record (22 = 3 [0] + 18 + 1) [restart] - complexion#0,SET test value formatter: 1 - 4117 record (20 = 3 [4] + 16 + 1) - compulsatory#0,SET test value formatter: 1 - 4137 record (16 = 3 [3] + 12 + 1) - comrade#0,SET test value formatter: 1 - 4153 record (17 = 3 [2] + 13 + 1) - conceal#0,SET test value formatter: 1 - 4170 record (20 = 3 [3] + 16 + 1) - condolement#0,SET test value formatter: 1 - 4190 record (16 = 3 [3] + 12 + 1) - confess#0,SET test value formatter: 1 - 4206 record (15 = 3 [4] + 11 + 1) - confine#0,SET test value formatter: 1 - 4221 record (13 = 3 [7] + 9 + 1) - confined#0,SET test value formatter: 1 - 4234 record (18 = 3 [3] + 14 + 1) - conqueror#0,SET test value formatter: 1 - 4252 record (16 = 3 [3] + 12 + 1) - consent#0,SET test value formatter: 3 - 4268 record (18 = 3 [4] + 14 + 1) - constantly#0,SET test value formatter: 1 - 4286 record (19 = 3 [3] + 15 + 1) - contagious#0,SET test value formatter: 1 - 4305 record (18 = 3 [4] + 14 + 1) - contracted#0,SET test value formatter: 1 - 4323 record (15 = 3 [5] + 11 + 1) - contrive#0,SET test value formatter: 1 - 4338 record (21 = 3 [3] + 17 + 1) - conveniently#0,SET test value formatter: 1 - 4359 record (14 = 3 [4] + 10 + 1) - convoy#0,SET test value formatter: 1 - 4373 record (18 = 3 [0] + 14 + 1) [restart] - copied#0,SET test value formatter: 1 - 4391 record (19 = 3 [2] + 15 + 1) - cornelius#0,SET test value formatter: 4 - 4410 record (19 = 3 [3] + 15 + 1) - coronation#0,SET test value formatter: 1 - 4429 record (19 = 3 [3] + 15 + 1) - corruption#0,SET test value formatter: 1 - 4448 record (14 = 3 [3] + 10 + 1) - corse#0,SET test value formatter: 2 - 4462 record (16 = 3 [2] + 12 + 1) - costly#0,SET test value formatter: 1 - 4478 record (15 = 3 [2] + 11 + 1) - couch#0,SET test value formatter: 1 - 4493 record (14 = 3 [3] + 10 + 1) - could#0,SET test value formatter: 2 - 4507 record (20 = 3 [3] + 16 + 1) - countenance#0,SET test value formatter: 2 - 4527 record (14 = 3 [5] + 10 + 1) - country#0,SET test value formatter: 1 - 4541 record (15 = 3 [7] + 11 + 1) - countrymen#0,SET test value formatter: 1 - 4556 record (15 = 3 [3] + 11 + 1) - couple#0,SET test value formatter: 1 - 4571 record (15 = 3 [3] + 11 + 1) - course#0,SET test value formatter: 2 - 4586 record (13 = 3 [6] + 9 + 1) - courses#0,SET test value formatter: 1 - 4599 record (13 = 3 [4] + 9 + 1) - court#0,SET test value formatter: 1 - 4612 record (16 = 3 [5] + 12 + 1) - courteous#0,SET test value formatter: 1 - 4628 record (20 = 3 [0] + 16 + 1) [restart] - courtier#0,SET test value formatter: 1 - 4648 record (15 = 3 [3] + 11 + 1) - cousin#0,SET test value formatter: 2 - 4663 record (18 = 3 [2] + 14 + 1) - covenant#0,SET test value formatter: 1 - 4681 record (16 = 3 [1] + 12 + 1) - crack#0,SET test value formatter: 1 - 4697 record (17 = 3 [2] + 13 + 1) - credent#0,SET test value formatter: 1 - 4714 record (17 = 3 [3] + 13 + 1) - crescent#0,SET test value formatter: 1 - 4731 record (13 = 3 [3] + 9 + 1) - crew#0,SET test value formatter: 2 - 4744 record (15 = 3 [2] + 11 + 1) - cried#0,SET test value formatter: 1 - 4759 record (13 = 3 [4] + 9 + 1) - cries#0,SET test value formatter: 1 - 4772 record (15 = 3 [3] + 11 + 1) - crimes#0,SET test value formatter: 1 - 4787 record (15 = 3 [2] + 11 + 1) - cross#0,SET test value formatter: 1 - 4802 record (16 = 3 [3] + 12 + 1) - crowing#0,SET test value formatter: 1 - 4818 record (13 = 3 [4] + 9 + 1) - crown#0,SET test value formatter: 2 - 4831 record (13 = 3 [4] + 9 + 1) - crows#0,SET test value formatter: 1 - 4844 record (15 = 3 [2] + 11 + 1) - crust#0,SET test value formatter: 1 - 4859 record (15 = 3 [1] + 11 + 1) - curd#0,SET test value formatter: 1 - 4874 record (18 = 3 [0] + 14 + 1) [restart] - cursed#0,SET test value formatter: 2 - 4892 record (16 = 3 [2] + 12 + 1) - custom#0,SET test value formatter: 3 - 4908 record (15 = 3 [6] + 11 + 1) - customary#0,SET test value formatter: 1 - 4923 record (13 = 3 [2] + 9 + 1) - cut#0,SET test value formatter: 1 - 4936 record (14 = 3 [0] + 9 + 2) - d#0,SET test value formatter: 54 - 4950 record (16 = 3 [1] + 12 + 1) - daily#0,SET test value formatter: 1 - 4966 record (19 = 3 [2] + 15 + 1) - dalliance#0,SET test value formatter: 1 - 4985 record (14 = 3 [2] + 10 + 1) - damn#0,SET test value formatter: 1 - 4999 record (14 = 3 [4] + 10 + 1) - damned#0,SET test value formatter: 2 - 5013 record (14 = 3 [2] + 10 + 1) - dane#0,SET test value formatter: 3 - 5027 record (15 = 3 [3] + 11 + 1) - danger#0,SET test value formatter: 1 - 5042 record (15 = 3 [2] + 11 + 1) - dared#0,SET test value formatter: 1 - 5057 record (13 = 3 [4] + 9 + 1) - dares#0,SET test value formatter: 1 - 5070 record (18 = 3 [2] + 14 + 1) - daughter#0,SET test value formatter: 2 - 5088 record (17 = 3 [2] + 13 + 1) - dawning#0,SET test value formatter: 1 - 5105 record (13 = 3 [2] + 9 + 1) - day#0,SET test value formatter: 8 - 5118 record (16 = 3 [0] + 12 + 1) [restart] - days#0,SET test value formatter: 1 - 5134 record (15 = 3 [1] + 11 + 1) - dead#0,SET test value formatter: 7 - 5149 record (13 = 3 [3] + 9 + 1) - dear#0,SET test value formatter: 4 - 5162 record (15 = 3 [4] + 11 + 1) - dearest#0,SET test value formatter: 2 - 5177 record (14 = 3 [4] + 10 + 1) - dearly#0,SET test value formatter: 1 - 5191 record (14 = 3 [3] + 10 + 1) - death#0,SET test value formatter: 6 - 5205 record (17 = 3 [2] + 13 + 1) - decline#0,SET test value formatter: 1 - 5222 record (14 = 3 [2] + 10 + 1) - deed#0,SET test value formatter: 1 - 5236 record (13 = 3 [4] + 9 + 1) - deeds#0,SET test value formatter: 1 - 5249 record (13 = 3 [3] + 9 + 1) - deep#0,SET test value formatter: 1 - 5262 record (18 = 3 [2] + 14 + 1) - defeated#0,SET test value formatter: 1 - 5280 record (14 = 3 [4] + 10 + 1) - defect#0,SET test value formatter: 1 - 5294 record (14 = 3 [4] + 10 + 1) - defend#0,SET test value formatter: 1 - 5308 record (18 = 3 [2] + 14 + 1) - dejected#0,SET test value formatter: 1 - 5326 record (17 = 3 [2] + 13 + 1) - delated#0,SET test value formatter: 1 - 5343 record (16 = 3 [3] + 12 + 1) - delight#0,SET test value formatter: 1 - 5359 record (19 = 3 [0] + 15 + 1) [restart] - deliver#0,SET test value formatter: 2 - 5378 record (22 = 3 [2] + 18 + 1) - demonstrated#0,SET test value formatter: 1 - 5400 record (18 = 3 [2] + 13 + 2) - denmark#0,SET test value formatter: 13 - 5418 record (15 = 3 [3] + 11 + 1) - denote#0,SET test value formatter: 1 - 5433 record (16 = 3 [2] + 12 + 1) - depart#0,SET test value formatter: 1 - 5449 record (16 = 3 [3] + 12 + 1) - depends#0,SET test value formatter: 1 - 5465 record (16 = 3 [3] + 12 + 1) - deprive#0,SET test value formatter: 1 - 5481 record (16 = 3 [2] + 12 + 1) - design#0,SET test value formatter: 1 - 5497 record (14 = 3 [4] + 10 + 1) - desire#0,SET test value formatter: 6 - 5511 record (18 = 3 [3] + 14 + 1) - desperate#0,SET test value formatter: 1 - 5529 record (15 = 3 [8] + 11 + 1) - desperation#0,SET test value formatter: 1 - 5544 record (13 = 3 [2] + 9 + 1) - dew#0,SET test value formatter: 3 - 5557 record (13 = 3 [3] + 9 + 1) - dews#0,SET test value formatter: 1 - 5570 record (19 = 3 [2] + 15 + 1) - dexterity#0,SET test value formatter: 1 - 5589 record (15 = 3 [1] + 10 + 2) - did#0,SET test value formatter: 14 - 5604 record (14 = 3 [3] + 10 + 1) - didst#0,SET test value formatter: 1 - 5618 record (15 = 3 [0] + 11 + 1) [restart] - die#0,SET test value formatter: 1 - 5633 record (13 = 3 [3] + 9 + 1) - died#0,SET test value formatter: 1 - 5646 record (13 = 3 [3] + 9 + 1) - diet#0,SET test value formatter: 1 - 5659 record (17 = 3 [2] + 13 + 1) - dignity#0,SET test value formatter: 1 - 5676 record (16 = 3 [2] + 12 + 1) - direct#0,SET test value formatter: 1 - 5692 record (14 = 3 [3] + 10 + 1) - dirge#0,SET test value formatter: 1 - 5706 record (22 = 3 [2] + 18 + 1) - disappointed#0,SET test value formatter: 1 - 5728 record (17 = 3 [4] + 13 + 1) - disasters#0,SET test value formatter: 1 - 5745 record (18 = 3 [3] + 14 + 1) - disclosed#0,SET test value formatter: 1 - 5763 record (17 = 3 [4] + 13 + 1) - discourse#0,SET test value formatter: 1 - 5780 record (18 = 3 [4] + 14 + 1) - discretion#0,SET test value formatter: 1 - 5798 record (17 = 3 [3] + 13 + 1) - disjoint#0,SET test value formatter: 1 - 5815 record (17 = 3 [3] + 13 + 1) - dispatch#0,SET test value formatter: 2 - 5832 record (19 = 3 [4] + 15 + 1) - disposition#0,SET test value formatter: 3 - 5851 record (18 = 3 [3] + 14 + 1) - distilled#0,SET test value formatter: 1 - 5869 record (16 = 3 [6] + 12 + 1) - distilment#0,SET test value formatter: 1 - 5885 record (22 = 3 [0] + 18 + 1) [restart] - distracted#0,SET test value formatter: 1 - 5907 record (16 = 3 [2] + 12 + 1) - divide#0,SET test value formatter: 1 - 5923 record (14 = 3 [1] + 9 + 2) - do#0,SET test value formatter: 36 - 5937 record (14 = 3 [2] + 10 + 1) - does#0,SET test value formatter: 3 - 5951 record (14 = 3 [2] + 10 + 1) - dole#0,SET test value formatter: 1 - 5965 record (14 = 3 [2] + 10 + 1) - done#0,SET test value formatter: 3 - 5979 record (14 = 3 [2] + 10 + 1) - doom#0,SET test value formatter: 1 - 5993 record (16 = 3 [4] + 12 + 1) - doomsday#0,SET test value formatter: 1 - 6009 record (14 = 3 [2] + 10 + 1) - doth#0,SET test value formatter: 7 - 6023 record (16 = 3 [2] + 12 + 1) - double#0,SET test value formatter: 2 - 6039 record (13 = 3 [4] + 9 + 1) - doubt#0,SET test value formatter: 4 - 6052 record (15 = 3 [5] + 11 + 1) - doubtful#0,SET test value formatter: 1 - 6067 record (14 = 3 [2] + 10 + 1) - down#0,SET test value formatter: 7 - 6081 record (17 = 3 [1] + 13 + 1) - drains#0,SET test value formatter: 1 - 6098 [restart 4095] - 6102 [restart 4373] - 6106 [restart 4628] - 6110 [restart 4874] - 6114 [restart 5118] - 6118 [restart 5359] - 6122 [restart 5618] - 6126 [restart 5885] - 6134 [trailer compression=none checksum=0xa3c2c00f] - 6139 data (2036) - 6139 record (16 = 3 [0] + 12 + 1) [restart] - dram#0,SET test value formatter: 1 - 6155 record (17 = 3 [3] + 13 + 1) - draughts#0,SET test value formatter: 1 - 6172 record (13 = 3 [3] + 9 + 1) - draw#0,SET test value formatter: 1 - 6185 record (13 = 3 [4] + 9 + 1) - draws#0,SET test value formatter: 1 - 6198 record (15 = 3 [2] + 11 + 1) - dread#0,SET test value formatter: 1 - 6213 record (14 = 3 [5] + 10 + 1) - dreaded#0,SET test value formatter: 1 - 6227 record (15 = 3 [5] + 11 + 1) - dreadful#0,SET test value formatter: 2 - 6242 record (13 = 3 [4] + 9 + 1) - dream#0,SET test value formatter: 1 - 6255 record (13 = 3 [5] + 9 + 1) - dreamt#0,SET test value formatter: 1 - 6268 record (15 = 3 [2] + 11 + 1) - drink#0,SET test value formatter: 1 - 6283 record (13 = 3 [5] + 9 + 1) - drinks#0,SET test value formatter: 1 - 6296 record (18 = 3 [2] + 14 + 1) - dropping#0,SET test value formatter: 1 - 6314 record (13 = 3 [8] + 9 + 1) - droppings#0,SET test value formatter: 1 - 6327 record (14 = 3 [2] + 10 + 1) - drum#0,SET test value formatter: 1 - 6341 record (18 = 3 [3] + 14 + 1) - drunkards#0,SET test value formatter: 1 - 6359 record (15 = 3 [1] + 11 + 1) - dull#0,SET test value formatter: 1 - 6374 record (18 = 3 [0] + 14 + 1) [restart] - duller#0,SET test value formatter: 1 - 6392 record (13 = 3 [4] + 9 + 1) - dulls#0,SET test value formatter: 1 - 6405 record (14 = 3 [2] + 10 + 1) - dumb#0,SET test value formatter: 2 - 6419 record (14 = 3 [2] + 10 + 1) - dust#0,SET test value formatter: 1 - 6433 record (16 = 3 [2] + 12 + 1) - duties#0,SET test value formatter: 1 - 6449 record (13 = 3 [3] + 9 + 1) - duty#0,SET test value formatter: 7 - 6462 record (19 = 3 [1] + 15 + 1) - dwelling#0,SET test value formatter: 1 - 6481 record (14 = 3 [1] + 10 + 1) - dye#0,SET test value formatter: 1 - 6495 record (13 = 3 [0] + 9 + 1) - e#0,SET test value formatter: 1 - 6508 record (15 = 3 [1] + 11 + 1) - each#0,SET test value formatter: 5 - 6523 record (15 = 3 [2] + 11 + 1) - eager#0,SET test value formatter: 2 - 6538 record (14 = 3 [2] + 10 + 1) - eale#0,SET test value formatter: 1 - 6552 record (13 = 3 [2] + 9 + 1) - ear#0,SET test value formatter: 5 - 6565 record (13 = 3 [3] + 9 + 1) - ears#0,SET test value formatter: 3 - 6578 record (14 = 3 [3] + 10 + 1) - earth#0,SET test value formatter: 9 - 6592 record (14 = 3 [5] + 10 + 1) - earthly#0,SET test value formatter: 1 - 6606 record (16 = 3 [0] + 12 + 1) [restart] - ease#0,SET test value formatter: 2 - 6622 record (13 = 3 [3] + 9 + 1) - east#0,SET test value formatter: 1 - 6635 record (16 = 3 [4] + 12 + 1) - eastward#0,SET test value formatter: 1 - 6651 record (18 = 3 [1] + 14 + 1) - eclipse#0,SET test value formatter: 1 - 6669 record (15 = 3 [1] + 11 + 1) - edge#0,SET test value formatter: 1 - 6684 record (17 = 3 [1] + 13 + 1) - effect#0,SET test value formatter: 2 - 6701 record (17 = 3 [1] + 13 + 1) - eleven#0,SET test value formatter: 1 - 6718 record (14 = 3 [2] + 10 + 1) - else#0,SET test value formatter: 4 - 6732 record (17 = 3 [3] + 13 + 1) - elsinore#0,SET test value formatter: 2 - 6749 record (17 = 3 [1] + 13 + 1) - embark#0,SET test value formatter: 1 - 6766 record (16 = 3 [2] + 12 + 1) - empire#0,SET test value formatter: 1 - 6782 record (17 = 3 [2] + 13 + 1) - emulate#0,SET test value formatter: 1 - 6799 record (13 = 3 [1] + 9 + 1) - en#0,SET test value formatter: 2 - 6812 record (19 = 3 [2] + 15 + 1) - encounter#0,SET test value formatter: 1 - 6831 record (17 = 3 [3] + 13 + 1) - encumber#0,SET test value formatter: 1 - 6848 record (13 = 3 [2] + 9 + 1) - end#0,SET test value formatter: 1 - 6861 record (17 = 3 [0] + 13 + 1) [restart] - enemy#0,SET test value formatter: 1 - 6878 record (16 = 3 [2] + 12 + 1) - enmity#0,SET test value formatter: 1 - 6894 record (16 = 3 [2] + 12 + 1) - enough#0,SET test value formatter: 1 - 6910 record (16 = 3 [2] + 11 + 2) - enter#0,SET test value formatter: 12 - 6926 record (17 = 3 [5] + 13 + 1) - enterprise#0,SET test value formatter: 1 - 6943 record (20 = 3 [5] + 16 + 1) - entertainment#0,SET test value formatter: 1 - 6963 record (17 = 3 [3] + 13 + 1) - entrance#0,SET test value formatter: 1 - 6980 record (17 = 3 [4] + 13 + 1) - entreated#0,SET test value formatter: 1 - 6997 record (17 = 3 [7] + 13 + 1) - entreatments#0,SET test value formatter: 1 - 7014 record (16 = 3 [1] + 12 + 1) - equal#0,SET test value formatter: 1 - 7030 record (13 = 3 [1] + 9 + 1) - er#0,SET test value formatter: 5 - 7043 record (13 = 3 [2] + 9 + 1) - ere#0,SET test value formatter: 4 - 7056 record (18 = 3 [2] + 14 + 1) - ergrowth#0,SET test value formatter: 1 - 7074 record (18 = 3 [2] + 14 + 1) - ermaster#0,SET test value formatter: 1 - 7092 record (16 = 3 [2] + 12 + 1) - erring#0,SET test value formatter: 1 - 7108 record (18 = 3 [2] + 14 + 1) - eruption#0,SET test value formatter: 1 - 7126 record (19 = 3 [0] + 15 + 1) [restart] - erwhelm#0,SET test value formatter: 1 - 7145 record (17 = 3 [1] + 13 + 1) - esteem#0,SET test value formatter: 1 - 7162 record (13 = 3 [1] + 9 + 1) - et#0,SET test value formatter: 1 - 7175 record (17 = 3 [2] + 13 + 1) - eternal#0,SET test value formatter: 1 - 7192 record (15 = 3 [5] + 11 + 1) - eternity#0,SET test value formatter: 1 - 7207 record (15 = 3 [1] + 11 + 1) - even#0,SET test value formatter: 8 - 7222 record (14 = 3 [4] + 10 + 1) - events#0,SET test value formatter: 1 - 7236 record (13 = 3 [3] + 9 + 1) - ever#0,SET test value formatter: 6 - 7249 record (19 = 3 [4] + 15 + 1) - everlasting#0,SET test value formatter: 1 - 7268 record (13 = 3 [4] + 9 + 1) - every#0,SET test value formatter: 3 - 7281 record (18 = 3 [1] + 14 + 1) - exactly#0,SET test value formatter: 1 - 7299 record (19 = 3 [2] + 15 + 1) - excellent#0,SET test value formatter: 1 - 7318 record (16 = 3 [2] + 12 + 1) - exeunt#0,SET test value formatter: 8 - 7334 record (14 = 3 [2] + 10 + 1) - exit#0,SET test value formatter: 6 - 7348 record (17 = 3 [2] + 13 + 1) - express#0,SET test value formatter: 2 - 7365 record (17 = 3 [2] + 13 + 1) - extinct#0,SET test value formatter: 1 - 7382 record (20 = 3 [0] + 16 + 1) [restart] - extorted#0,SET test value formatter: 1 - 7402 record (20 = 3 [3] + 16 + 1) - extravagant#0,SET test value formatter: 1 - 7422 record (14 = 3 [1] + 10 + 1) - eye#0,SET test value formatter: 6 - 7436 record (13 = 3 [3] + 9 + 1) - eyes#0,SET test value formatter: 7 - 7449 record (16 = 3 [0] + 12 + 1) - face#0,SET test value formatter: 2 - 7465 record (15 = 3 [2] + 11 + 1) - faded#0,SET test value formatter: 1 - 7480 record (14 = 3 [2] + 10 + 1) - fail#0,SET test value formatter: 1 - 7494 record (13 = 3 [3] + 9 + 1) - fair#0,SET test value formatter: 3 - 7507 record (13 = 3 [4] + 9 + 1) - fairy#0,SET test value formatter: 1 - 7520 record (14 = 3 [3] + 10 + 1) - faith#0,SET test value formatter: 4 - 7534 record (17 = 3 [2] + 13 + 1) - falling#0,SET test value formatter: 1 - 7551 record (14 = 3 [3] + 10 + 1) - false#0,SET test value formatter: 1 - 7565 record (18 = 3 [2] + 14 + 1) - familiar#0,SET test value formatter: 1 - 7583 record (15 = 3 [2] + 11 + 1) - fancy#0,SET test value formatter: 1 - 7598 record (16 = 3 [3] + 12 + 1) - fantasy#0,SET test value formatter: 2 - 7614 record (13 = 3 [2] + 9 + 1) - far#0,SET test value formatter: 2 - 7627 record (16 = 3 [0] + 12 + 1) [restart] - fare#0,SET test value formatter: 2 - 7643 record (16 = 3 [4] + 12 + 1) - farewell#0,SET test value formatter: 8 - 7659 record (17 = 3 [2] + 13 + 1) - fashion#0,SET test value formatter: 3 - 7676 record (13 = 3 [3] + 9 + 1) - fast#0,SET test value formatter: 2 - 7689 record (13 = 3 [2] + 9 + 1) - fat#0,SET test value formatter: 1 - 7702 record (13 = 3 [3] + 9 + 1) - fate#0,SET test value formatter: 2 - 7715 record (13 = 3 [4] + 9 + 1) - fates#0,SET test value formatter: 1 - 7728 record (16 = 3 [3] + 11 + 2) - father#0,SET test value formatter: 28 - 7744 record (13 = 3 [6] + 9 + 1) - fathers#0,SET test value formatter: 1 - 7757 record (15 = 3 [4] + 11 + 1) - fathoms#0,SET test value formatter: 1 - 7772 record (15 = 3 [2] + 11 + 1) - fault#0,SET test value formatter: 4 - 7787 record (16 = 3 [2] + 12 + 1) - favour#0,SET test value formatter: 2 - 7803 record (15 = 3 [1] + 11 + 1) - fear#0,SET test value formatter: 9 - 7818 record (15 = 3 [4] + 11 + 1) - fearful#0,SET test value formatter: 1 - 7833 record (13 = 3 [2] + 9 + 1) - fed#0,SET test value formatter: 1 - 7846 record (13 = 3 [2] + 9 + 1) - fee#0,SET test value formatter: 1 - 7859 record (16 = 3 [0] + 12 + 1) [restart] - fell#0,SET test value formatter: 2 - 7875 record (14 = 3 [4] + 10 + 1) - fellow#0,SET test value formatter: 2 - 7889 record (13 = 3 [2] + 9 + 1) - few#0,SET test value formatter: 3 - 7902 record (14 = 3 [1] + 10 + 1) - fie#0,SET test value formatter: 4 - 7916 record (15 = 3 [3] + 11 + 1) - fierce#0,SET test value formatter: 1 - 7931 record (16 = 3 [2] + 12 + 1) - figure#0,SET test value formatter: 3 - 7947 record (16 = 3 [2] + 12 + 1) - filial#0,SET test value formatter: 1 - 7963 record (14 = 3 [2] + 10 + 1) - find#0,SET test value formatter: 2 - 7977 record (16 = 3 [3] + 12 + 1) - fingers#0,SET test value formatter: 1 - 7993 record (14 = 3 [2] + 10 + 1) - fire#0,SET test value formatter: 4 - 8007 record (13 = 3 [4] + 9 + 1) - fires#0,SET test value formatter: 1 - 8020 record (14 = 3 [3] + 10 + 1) - first#0,SET test value formatter: 1 - 8034 record (13 = 3 [2] + 9 + 1) - fit#0,SET test value formatter: 2 - 8047 record (13 = 3 [3] + 9 + 1) - fits#0,SET test value formatter: 1 - 8060 record (16 = 3 [3] + 12 + 1) - fitting#0,SET test value formatter: 1 - 8076 record (13 = 3 [2] + 9 + 1) - fix#0,SET test value formatter: 2 - 8089 record (18 = 3 [0] + 14 + 1) [restart] - flames#0,SET test value formatter: 1 - 8107 record (13 = 3 [3] + 9 + 1) - flat#0,SET test value formatter: 1 - 8120 record (15 = 3 [2] + 11 + 1) - flesh#0,SET test value formatter: 2 - 8135 [restart 6139] - 8139 [restart 6374] - 8143 [restart 6606] - 8147 [restart 6861] - 8151 [restart 7126] - 8155 [restart 7382] - 8159 [restart 7627] - 8163 [restart 7859] - 8167 [restart 8089] - 8175 [trailer compression=none checksum=0xc4a3b6e0] - 8180 data (2032) - 8180 record (17 = 3 [0] + 13 + 1) [restart] - flood#0,SET test value formatter: 1 - 8197 record (17 = 3 [3] + 13 + 1) - flourish#0,SET test value formatter: 1 - 8214 record (18 = 3 [2] + 14 + 1) - flushing#0,SET test value formatter: 1 - 8232 record (14 = 3 [1] + 10 + 1) - foe#0,SET test value formatter: 1 - 8246 record (16 = 3 [2] + 12 + 1) - follow#0,SET test value formatter: 9 - 8262 record (13 = 3 [6] + 9 + 1) - follows#0,SET test value formatter: 1 - 8275 record (14 = 3 [2] + 10 + 1) - fond#0,SET test value formatter: 1 - 8289 record (14 = 3 [2] + 10 + 1) - food#0,SET test value formatter: 1 - 8303 record (13 = 3 [3] + 9 + 1) - fool#0,SET test value formatter: 1 - 8316 record (13 = 3 [4] + 9 + 1) - fools#0,SET test value formatter: 1 - 8329 record (13 = 3 [3] + 9 + 1) - foot#0,SET test value formatter: 1 - 8342 record (14 = 3 [2] + 9 + 2) - for#0,SET test value formatter: 45 - 8356 record (15 = 3 [3] + 11 + 1) - forbid#0,SET test value formatter: 1 - 8371 record (15 = 3 [3] + 11 + 1) - forced#0,SET test value formatter: 1 - 8386 record (16 = 3 [3] + 12 + 1) - foreign#0,SET test value formatter: 1 - 8402 record (19 = 3 [4] + 15 + 1) - foreknowing#0,SET test value formatter: 1 - 8421 record (20 = 3 [0] + 16 + 1) [restart] - foresaid#0,SET test value formatter: 1 - 8441 record (16 = 3 [3] + 12 + 1) - forfeit#0,SET test value formatter: 1 - 8457 record (15 = 3 [3] + 11 + 1) - forged#0,SET test value formatter: 1 - 8472 record (13 = 3 [5] + 9 + 1) - forget#0,SET test value formatter: 1 - 8485 record (13 = 3 [3] + 9 + 1) - form#0,SET test value formatter: 4 - 8498 record (13 = 3 [4] + 9 + 1) - forms#0,SET test value formatter: 2 - 8511 record (14 = 3 [3] + 10 + 1) - forth#0,SET test value formatter: 3 - 8525 record (17 = 3 [4] + 13 + 1) - fortified#0,SET test value formatter: 1 - 8542 record (17 = 3 [5] + 13 + 1) - fortinbras#0,SET test value formatter: 6 - 8559 record (13 = 3 [4] + 9 + 1) - forts#0,SET test value formatter: 1 - 8572 record (15 = 3 [4] + 11 + 1) - fortune#0,SET test value formatter: 1 - 8587 record (16 = 3 [3] + 12 + 1) - forward#0,SET test value formatter: 1 - 8603 record (16 = 3 [2] + 12 + 1) - fought#0,SET test value formatter: 1 - 8619 record (13 = 3 [3] + 9 + 1) - foul#0,SET test value formatter: 6 - 8632 record (18 = 3 [1] + 14 + 1) - frailty#0,SET test value formatter: 1 - 8650 record (14 = 3 [3] + 10 + 1) - frame#0,SET test value formatter: 1 - 8664 record (18 = 3 [0] + 14 + 1) [restart] - france#0,SET test value formatter: 3 - 8682 record (17 = 3 [5] + 12 + 2) - francisco#0,SET test value formatter: 10 - 8699 record (14 = 3 [2] + 10 + 1) - free#0,SET test value formatter: 1 - 8713 record (14 = 3 [4] + 10 + 1) - freely#0,SET test value formatter: 1 - 8727 record (14 = 3 [4] + 10 + 1) - freeze#0,SET test value formatter: 1 - 8741 record (16 = 3 [3] + 12 + 1) - fretful#0,SET test value formatter: 1 - 8757 record (16 = 3 [2] + 12 + 1) - friend#0,SET test value formatter: 3 - 8773 record (15 = 3 [6] + 11 + 1) - friending#0,SET test value formatter: 1 - 8788 record (13 = 3 [6] + 9 + 1) - friends#0,SET test value formatter: 5 - 8801 record (15 = 3 [2] + 10 + 2) - from#0,SET test value formatter: 21 - 8816 record (14 = 3 [3] + 10 + 1) - frown#0,SET test value formatter: 1 - 8830 record (17 = 3 [5] + 13 + 1) - frowningly#0,SET test value formatter: 1 - 8847 record (18 = 3 [2] + 14 + 1) - fruitful#0,SET test value formatter: 1 - 8865 record (15 = 3 [1] + 11 + 1) - full#0,SET test value formatter: 2 - 8880 record (17 = 3 [2] + 13 + 1) - funeral#0,SET test value formatter: 3 - 8897 record (17 = 3 [2] + 13 + 1) - furnish#0,SET test value formatter: 1 - 8914 record (19 = 3 [0] + 15 + 1) [restart] - further#0,SET test value formatter: 4 - 8933 record (17 = 3 [0] + 13 + 1) - gaged#0,SET test value formatter: 1 - 8950 record (16 = 3 [2] + 12 + 1) - gainst#0,SET test value formatter: 2 - 8966 record (13 = 3 [3] + 9 + 1) - gait#0,SET test value formatter: 1 - 8979 record (16 = 3 [2] + 12 + 1) - galled#0,SET test value formatter: 1 - 8995 record (13 = 3 [4] + 9 + 1) - galls#0,SET test value formatter: 1 - 9008 record (14 = 3 [2] + 10 + 1) - gape#0,SET test value formatter: 1 - 9022 record (17 = 3 [2] + 13 + 1) - garbage#0,SET test value formatter: 1 - 9039 record (15 = 3 [3] + 11 + 1) - garden#0,SET test value formatter: 1 - 9054 record (15 = 3 [2] + 11 + 1) - gates#0,SET test value formatter: 1 - 9069 record (15 = 3 [2] + 11 + 1) - gaudy#0,SET test value formatter: 1 - 9084 record (18 = 3 [1] + 14 + 1) - general#0,SET test value formatter: 1 - 9102 record (15 = 3 [5] + 11 + 1) - generous#0,SET test value formatter: 1 - 9117 record (15 = 3 [3] + 11 + 1) - gentle#0,SET test value formatter: 1 - 9132 record (15 = 3 [6] + 11 + 1) - gentlemen#0,SET test value formatter: 5 - 9147 record (18 = 3 [2] + 14 + 1) - gertrude#0,SET test value formatter: 4 - 9165 record (15 = 3 [0] + 11 + 1) [restart] - get#0,SET test value formatter: 1 - 9180 record (17 = 3 [1] + 12 + 2) - ghost#0,SET test value formatter: 26 - 9197 record (17 = 3 [1] + 13 + 1) - gibber#0,SET test value formatter: 1 - 9214 record (15 = 3 [2] + 11 + 1) - gifts#0,SET test value formatter: 3 - 9229 record (14 = 3 [2] + 10 + 1) - gins#0,SET test value formatter: 1 - 9243 record (14 = 3 [2] + 10 + 1) - girl#0,SET test value formatter: 1 - 9257 record (15 = 3 [2] + 10 + 2) - give#0,SET test value formatter: 13 - 9272 record (13 = 3 [4] + 9 + 1) - given#0,SET test value formatter: 4 - 9285 record (15 = 3 [3] + 11 + 1) - giving#0,SET test value formatter: 3 - 9300 record (15 = 3 [1] + 11 + 1) - glad#0,SET test value formatter: 2 - 9315 record (18 = 3 [2] + 14 + 1) - glimpses#0,SET test value formatter: 1 - 9333 record (15 = 3 [2] + 11 + 1) - globe#0,SET test value formatter: 1 - 9348 record (13 = 3 [3] + 9 + 1) - glow#0,SET test value formatter: 1 - 9361 record (14 = 3 [1] + 9 + 2) - go#0,SET test value formatter: 15 - 9375 record (16 = 3 [2] + 12 + 1) - goblin#0,SET test value formatter: 1 - 9391 record (13 = 3 [2] + 9 + 1) - god#0,SET test value formatter: 8 - 9404 record (16 = 3 [0] + 12 + 1) [restart] - goes#0,SET test value formatter: 3 - 9420 record (15 = 3 [2] + 11 + 1) - going#0,SET test value formatter: 1 - 9435 record (14 = 3 [2] + 10 + 1) - gone#0,SET test value formatter: 4 - 9449 record (15 = 3 [2] + 10 + 2) - good#0,SET test value formatter: 20 - 9464 record (14 = 3 [4] + 10 + 1) - goodly#0,SET test value formatter: 1 - 9478 record (16 = 3 [1] + 12 + 1) - grace#0,SET test value formatter: 6 - 9494 record (13 = 3 [5] + 9 + 1) - graces#0,SET test value formatter: 1 - 9507 record (16 = 3 [4] + 12 + 1) - gracious#0,SET test value formatter: 2 - 9523 record (16 = 3 [3] + 12 + 1) - grapple#0,SET test value formatter: 1 - 9539 record (14 = 3 [3] + 10 + 1) - grave#0,SET test value formatter: 1 - 9553 record (13 = 3 [5] + 9 + 1) - graves#0,SET test value formatter: 1 - 9566 record (15 = 3 [2] + 11 + 1) - great#0,SET test value formatter: 1 - 9581 record (16 = 3 [5] + 12 + 1) - greatness#0,SET test value formatter: 1 - 9597 record (14 = 3 [3] + 10 + 1) - green#0,SET test value formatter: 2 - 9611 record (16 = 3 [4] + 12 + 1) - greeting#0,SET test value formatter: 1 - 9627 record (15 = 3 [2] + 11 + 1) - grief#0,SET test value formatter: 3 - 9642 record (20 = 3 [0] + 16 + 1) [restart] - grizzled#0,SET test value formatter: 1 - 9662 record (15 = 3 [2] + 11 + 1) - gross#0,SET test value formatter: 2 - 9677 record (15 = 3 [3] + 11 + 1) - ground#0,SET test value formatter: 3 - 9692 record (13 = 3 [3] + 9 + 1) - grow#0,SET test value formatter: 2 - 9705 record (13 = 3 [4] + 9 + 1) - grown#0,SET test value formatter: 1 - 9718 record (13 = 3 [4] + 9 + 1) - grows#0,SET test value formatter: 2 - 9731 record (16 = 3 [1] + 12 + 1) - guard#0,SET test value formatter: 1 - 9747 record (16 = 3 [2] + 12 + 1) - guilty#0,SET test value formatter: 2 - 9763 record (14 = 3 [0] + 10 + 1) - ha#0,SET test value formatter: 1 - 9777 record (15 = 3 [2] + 11 + 1) - habit#0,SET test value formatter: 2 - 9792 record (14 = 3 [2] + 9 + 2) - had#0,SET test value formatter: 13 - 9806 record (14 = 3 [2] + 10 + 1) - hail#0,SET test value formatter: 1 - 9820 record (13 = 3 [3] + 9 + 1) - hair#0,SET test value formatter: 1 - 9833 record (16 = 3 [2] + 12 + 1) - hallow#0,SET test value formatter: 1 - 9849 record (18 = 3 [2] + 12 + 3) - hamlet#0,SET test value formatter: 100 - 9867 record (14 = 3 [2] + 10 + 1) - hand#0,SET test value formatter: 5 - 9881 record (17 = 3 [0] + 13 + 1) [restart] - hands#0,SET test value formatter: 4 - 9898 record (13 = 3 [3] + 9 + 1) - hang#0,SET test value formatter: 2 - 9911 record (13 = 3 [2] + 9 + 1) - hap#0,SET test value formatter: 1 - 9924 record (16 = 3 [3] + 12 + 1) - happily#0,SET test value formatter: 1 - 9940 record (20 = 3 [2] + 16 + 1) - harbingers#0,SET test value formatter: 1 - 9960 record (13 = 3 [3] + 9 + 1) - hard#0,SET test value formatter: 2 - 9973 record (13 = 3 [4] + 9 + 1) - hardy#0,SET test value formatter: 1 - 9986 record (15 = 3 [3] + 11 + 1) - harrow#0,SET test value formatter: 1 - 10001 record (13 = 3 [6] + 9 + 1) - harrows#0,SET test value formatter: 1 - 10014 record (13 = 3 [2] + 9 + 1) - has#0,SET test value formatter: 3 - 10027 record (13 = 3 [3] + 9 + 1) - hast#0,SET test value formatter: 4 - 10040 record (13 = 3 [4] + 9 + 1) - haste#0,SET test value formatter: 7 - 10053 record (15 = 3 [2] + 11 + 1) - hatch#0,SET test value formatter: 1 - 10068 record (14 = 3 [3] + 9 + 2) - hath#0,SET test value formatter: 15 - 10082 record (15 = 3 [2] + 10 + 2) - have#0,SET test value formatter: 31 - 10097 record (15 = 3 [3] + 11 + 1) - havior#0,SET test value formatter: 1 - 10112 record (15 = 3 [0] + 10 + 2) [restart] - he#0,SET test value formatter: 34 - 10127 record (14 = 3 [2] + 10 + 1) - head#0,SET test value formatter: 6 - 10141 record (14 = 3 [4] + 10 + 1) - headed#0,SET test value formatter: 1 - 10155 record (17 = 3 [4] + 13 + 1) - headshake#0,SET test value formatter: 1 - 10172 [restart 8180] - 10176 [restart 8421] - 10180 [restart 8664] - 10184 [restart 8914] - 10188 [restart 9165] - 10192 [restart 9404] - 10196 [restart 9642] - 10200 [restart 9881] - 10204 [restart 10112] - 10212 [trailer compression=none checksum=0x23db05a] - 10217 data (2042) - 10217 record (18 = 3 [0] + 14 + 1) [restart] - health#0,SET test value formatter: 3 - 10235 record (13 = 3 [3] + 9 + 1) - hear#0,SET test value formatter: 9 - 10248 record (13 = 3 [4] + 9 + 1) - heard#0,SET test value formatter: 4 - 10261 record (15 = 3 [4] + 11 + 1) - hearing#0,SET test value formatter: 1 - 10276 record (13 = 3 [4] + 9 + 1) - hears#0,SET test value formatter: 2 - 10289 record (14 = 3 [5] + 10 + 1) - hearsed#0,SET test value formatter: 1 - 10303 record (14 = 3 [4] + 9 + 2) - heart#0,SET test value formatter: 10 - 10317 record (15 = 3 [5] + 11 + 1) - heartily#0,SET test value formatter: 3 - 10332 record (13 = 3 [5] + 9 + 1) - hearts#0,SET test value formatter: 1 - 10345 record (13 = 3 [3] + 9 + 1) - heat#0,SET test value formatter: 1 - 10358 record (16 = 3 [3] + 11 + 2) - heaven#0,SET test value formatter: 21 - 10374 record (13 = 3 [6] + 9 + 1) - heavens#0,SET test value formatter: 1 - 10387 record (13 = 3 [4] + 9 + 1) - heavy#0,SET test value formatter: 1 - 10400 record (17 = 3 [2] + 13 + 1) - hebenon#0,SET test value formatter: 1 - 10417 record (16 = 3 [2] + 12 + 1) - height#0,SET test value formatter: 1 - 10433 record (14 = 3 [2] + 10 + 1) - held#0,SET test value formatter: 1 - 10447 record (16 = 3 [0] + 12 + 1) [restart] - hell#0,SET test value formatter: 3 - 10463 record (13 = 3 [3] + 9 + 1) - help#0,SET test value formatter: 2 - 10476 record (13 = 3 [2] + 9 + 1) - her#0,SET test value formatter: 8 - 10489 record (17 = 3 [3] + 13 + 1) - heraldry#0,SET test value formatter: 1 - 10506 record (17 = 3 [3] + 13 + 1) - hercules#0,SET test value formatter: 1 - 10523 record (14 = 3 [3] + 9 + 2) - here#0,SET test value formatter: 11 - 10537 record (17 = 3 [4] + 13 + 1) - hereafter#0,SET test value formatter: 1 - 10554 record (14 = 3 [4] + 10 + 1) - herein#0,SET test value formatter: 3 - 10568 record (14 = 3 [1] + 10 + 1) - hic#0,SET test value formatter: 1 - 10582 record (17 = 3 [2] + 13 + 1) - hideous#0,SET test value formatter: 1 - 10599 record (14 = 3 [2] + 10 + 1) - hies#0,SET test value formatter: 1 - 10613 record (14 = 3 [2] + 10 + 1) - high#0,SET test value formatter: 2 - 10627 record (14 = 3 [4] + 10 + 1) - higher#0,SET test value formatter: 1 - 10641 record (14 = 3 [2] + 10 + 1) - hill#0,SET test value formatter: 1 - 10655 record (13 = 3 [4] + 9 + 1) - hillo#0,SET test value formatter: 2 - 10668 record (14 = 3 [2] + 9 + 2) - him#0,SET test value formatter: 21 - 10682 record (19 = 3 [0] + 15 + 1) [restart] - himself#0,SET test value formatter: 3 - 10701 record (14 = 3 [2] + 9 + 2) - his#0,SET test value formatter: 57 - 10715 record (16 = 3 [2] + 12 + 1) - hither#0,SET test value formatter: 1 - 10731 record (14 = 3 [6] + 10 + 1) - hitherto#0,SET test value formatter: 1 - 10745 record (13 = 3 [1] + 9 + 1) - ho#0,SET test value formatter: 5 - 10758 record (14 = 3 [2] + 10 + 1) - hold#0,SET test value formatter: 9 - 10772 record (15 = 3 [4] + 11 + 1) - holding#0,SET test value formatter: 1 - 10787 record (13 = 3 [4] + 9 + 1) - holds#0,SET test value formatter: 2 - 10800 record (14 = 3 [3] + 10 + 1) - holla#0,SET test value formatter: 1 - 10814 record (13 = 3 [3] + 9 + 1) - holy#0,SET test value formatter: 1 - 10827 record (16 = 3 [2] + 12 + 1) - honest#0,SET test value formatter: 2 - 10843 record (15 = 3 [3] + 11 + 1) - honour#0,SET test value formatter: 5 - 10858 record (16 = 3 [6] + 12 + 1) - honourable#0,SET test value formatter: 1 - 10874 record (15 = 3 [2] + 11 + 1) - hoops#0,SET test value formatter: 1 - 10889 record (18 = 3 [2] + 13 + 2) - horatio#0,SET test value formatter: 85 - 10907 record (17 = 3 [3] + 13 + 1) - horrible#0,SET test value formatter: 4 - 10924 record (20 = 3 [0] + 16 + 1) [restart] - horridly#0,SET test value formatter: 1 - 10944 record (14 = 3 [2] + 10 + 1) - host#0,SET test value formatter: 1 - 10958 record (13 = 3 [2] + 9 + 1) - hot#0,SET test value formatter: 1 - 10971 record (14 = 3 [2] + 10 + 1) - hour#0,SET test value formatter: 6 - 10985 record (14 = 3 [3] + 10 + 1) - house#0,SET test value formatter: 2 - 10999 record (13 = 3 [2] + 9 + 1) - how#0,SET test value formatter: 7 - 11012 record (18 = 3 [3] + 14 + 1) - howsoever#0,SET test value formatter: 1 - 11030 record (17 = 3 [1] + 13 + 1) - humbly#0,SET test value formatter: 1 - 11047 record (17 = 3 [2] + 13 + 1) - hundred#0,SET test value formatter: 1 - 11064 record (19 = 3 [2] + 15 + 1) - husbandry#0,SET test value formatter: 1 - 11083 record (19 = 3 [1] + 15 + 1) - hyperion#0,SET test value formatter: 1 - 11102 record (15 = 3 [0] + 9 + 3) - i#0,SET test value formatter: 124 - 11117 record (14 = 3 [1] + 10 + 1) - ice#0,SET test value formatter: 1 - 11131 record (14 = 3 [1] + 9 + 2) - if#0,SET test value formatter: 22 - 11145 record (20 = 3 [1] + 16 + 1) - ignorance#0,SET test value formatter: 1 - 11165 record (13 = 3 [1] + 9 + 1) - ii#0,SET test value formatter: 1 - 11178 record (15 = 3 [0] + 11 + 1) [restart] - iii#0,SET test value formatter: 1 - 11193 record (17 = 3 [1] + 13 + 1) - illume#0,SET test value formatter: 1 - 11210 record (16 = 3 [4] + 12 + 1) - illusion#0,SET test value formatter: 1 - 11226 record (16 = 3 [1] + 12 + 1) - image#0,SET test value formatter: 1 - 11242 record (19 = 3 [4] + 15 + 1) - imagination#0,SET test value formatter: 1 - 11261 record (19 = 3 [2] + 15 + 1) - immediate#0,SET test value formatter: 1 - 11280 record (17 = 3 [3] + 13 + 1) - imminent#0,SET test value formatter: 1 - 11297 record (17 = 3 [3] + 13 + 1) - immortal#0,SET test value formatter: 1 - 11314 record (16 = 3 [2] + 12 + 1) - impart#0,SET test value formatter: 3 - 11330 record (16 = 3 [6] + 12 + 1) - impartment#0,SET test value formatter: 1 - 11346 record (17 = 3 [4] + 13 + 1) - impatient#0,SET test value formatter: 1 - 11363 record (22 = 3 [3] + 18 + 1) - imperfections#0,SET test value formatter: 1 - 11385 record (15 = 3 [5] + 11 + 1) - imperial#0,SET test value formatter: 1 - 11400 record (16 = 3 [3] + 12 + 1) - impious#0,SET test value formatter: 1 - 11416 record (19 = 3 [3] + 15 + 1) - implements#0,SET test value formatter: 1 - 11435 record (19 = 3 [4] + 15 + 1) - implorators#0,SET test value formatter: 1 - 11454 record (21 = 3 [0] + 17 + 1) [restart] - importing#0,SET test value formatter: 1 - 11475 record (16 = 3 [6] + 12 + 1) - importuned#0,SET test value formatter: 1 - 11491 record (15 = 3 [8] + 11 + 1) - importunity#0,SET test value formatter: 1 - 11506 record (16 = 3 [4] + 12 + 1) - impotent#0,SET test value formatter: 1 - 11522 record (16 = 3 [3] + 12 + 1) - impress#0,SET test value formatter: 1 - 11538 record (15 = 3 [1] + 9 + 3) - in#0,SET test value formatter: 118 - 11553 record (16 = 3 [2] + 12 + 1) - incest#0,SET test value formatter: 1 - 11569 record (16 = 3 [6] + 12 + 1) - incestuous#0,SET test value formatter: 2 - 11585 record (18 = 3 [3] + 14 + 1) - incorrect#0,SET test value formatter: 1 - 11603 record (17 = 3 [3] + 13 + 1) - increase#0,SET test value formatter: 1 - 11620 record (16 = 3 [2] + 12 + 1) - indeed#0,SET test value formatter: 8 - 11636 record (17 = 3 [2] + 13 + 1) - infants#0,SET test value formatter: 1 - 11653 record (17 = 3 [3] + 13 + 1) - infinite#0,SET test value formatter: 1 - 11670 record (18 = 3 [3] + 14 + 1) - influence#0,SET test value formatter: 1 - 11688 record (15 = 3 [3] + 11 + 1) - inform#0,SET test value formatter: 1 - 11703 record (21 = 3 [2] + 17 + 1) - inheritance#0,SET test value formatter: 1 - 11724 record (16 = 3 [0] + 12 + 1) [restart] - inky#0,SET test value formatter: 1 - 11740 record (17 = 3 [2] + 13 + 1) - instant#0,SET test value formatter: 2 - 11757 record (20 = 3 [4] + 16 + 1) - instrumental#0,SET test value formatter: 1 - 11777 record (16 = 3 [2] + 12 + 1) - intent#0,SET test value formatter: 1 - 11793 record (13 = 3 [6] + 9 + 1) - intents#0,SET test value formatter: 1 - 11806 record (13 = 3 [3] + 9 + 1) - into#0,SET test value formatter: 5 - 11819 record (15 = 3 [2] + 11 + 1) - inurn#0,SET test value formatter: 1 - 11834 record (21 = 3 [2] + 17 + 1) - investments#0,SET test value formatter: 1 - 11855 record (16 = 3 [3] + 12 + 1) - invites#0,SET test value formatter: 1 - 11871 record (21 = 3 [3] + 17 + 1) - invulnerable#0,SET test value formatter: 1 - 11892 record (16 = 3 [2] + 12 + 1) - inward#0,SET test value formatter: 1 - 11908 record (14 = 3 [1] + 9 + 2) - is#0,SET test value formatter: 62 - 11922 record (15 = 3 [2] + 11 + 1) - issue#0,SET test value formatter: 1 - 11937 record (15 = 3 [1] + 9 + 3) - it#0,SET test value formatter: 126 - 11952 record (13 = 3 [2] + 9 + 1) - its#0,SET test value formatter: 1 - 11965 record (15 = 3 [3] + 11 + 1) - itself#0,SET test value formatter: 9 - 11980 record (14 = 3 [0] + 10 + 1) [restart] - iv#0,SET test value formatter: 1 - 11994 record (16 = 3 [0] + 12 + 1) - jaws#0,SET test value formatter: 1 - 12010 record (16 = 3 [1] + 12 + 1) - jelly#0,SET test value formatter: 1 - 12026 record (17 = 3 [1] + 13 + 1) - jocund#0,SET test value formatter: 1 - 12043 record (15 = 3 [2] + 11 + 1) - joint#0,SET test value formatter: 2 - 12058 record (16 = 3 [5] + 12 + 1) - jointress#0,SET test value formatter: 1 - 12074 record (13 = 3 [2] + 9 + 1) - joy#0,SET test value formatter: 1 - 12087 record (19 = 3 [1] + 15 + 1) - judgment#0,SET test value formatter: 1 - 12106 record (15 = 3 [2] + 11 + 1) - juice#0,SET test value formatter: 1 - 12121 record (16 = 3 [2] + 12 + 1) - julius#0,SET test value formatter: 1 - 12137 record (14 = 3 [2] + 10 + 1) - jump#0,SET test value formatter: 1 - 12151 record (16 = 3 [0] + 12 + 1) - keep#0,SET test value formatter: 3 - 12167 record (13 = 3 [4] + 9 + 1) - keeps#0,SET test value formatter: 1 - 12180 record (14 = 3 [2] + 10 + 1) - kept#0,SET test value formatter: 1 - 12194 record (16 = 3 [2] + 12 + 1) - kettle#0,SET test value formatter: 1 - 12210 record (13 = 3 [2] + 9 + 1) - key#0,SET test value formatter: 1 - 12223 [restart 10217] - 12227 [restart 10447] - 12231 [restart 10682] - 12235 [restart 10924] - 12239 [restart 11178] - 12243 [restart 11454] - 12247 [restart 11724] - 12251 [restart 11980] - 12259 [trailer compression=none checksum=0x935ea812] - 12264 data (2039) - 12264 record (15 = 3 [0] + 11 + 1) [restart] - kin#0,SET test value formatter: 1 - 12279 record (13 = 3 [3] + 9 + 1) - kind#0,SET test value formatter: 1 - 12292 record (14 = 3 [3] + 9 + 2) - king#0,SET test value formatter: 23 - 12306 record (15 = 3 [4] + 11 + 1) - kingdom#0,SET test value formatter: 1 - 12321 record (16 = 3 [1] + 12 + 1) - knave#0,SET test value formatter: 1 - 12337 record (14 = 3 [2] + 10 + 1) - knew#0,SET test value formatter: 1 - 12351 record (17 = 3 [2] + 13 + 1) - knotted#0,SET test value formatter: 1 - 12368 record (14 = 3 [3] + 9 + 2) - know#0,SET test value formatter: 17 - 12382 record (13 = 3 [4] + 9 + 1) - known#0,SET test value formatter: 2 - 12395 record (13 = 3 [4] + 9 + 1) - knows#0,SET test value formatter: 1 - 12408 record (20 = 3 [0] + 16 + 1) - labourer#0,SET test value formatter: 1 - 12428 record (16 = 3 [6] + 12 + 1) - laboursome#0,SET test value formatter: 1 - 12444 record (14 = 3 [2] + 10 + 1) - lack#0,SET test value formatter: 1 - 12458 record (13 = 3 [4] + 9 + 1) - lacks#0,SET test value formatter: 1 - 12471 record (18 = 3 [2] + 13 + 2) - laertes#0,SET test value formatter: 16 - 12489 record (14 = 3 [2] + 10 + 1) - land#0,SET test value formatter: 2 - 12503 record (17 = 3 [0] + 13 + 1) [restart] - lands#0,SET test value formatter: 3 - 12520 record (16 = 3 [2] + 12 + 1) - larger#0,SET test value formatter: 1 - 12536 record (14 = 3 [2] + 10 + 1) - last#0,SET test value formatter: 3 - 12550 record (15 = 3 [4] + 11 + 1) - lasting#0,SET test value formatter: 1 - 12565 record (14 = 3 [2] + 10 + 1) - late#0,SET test value formatter: 3 - 12579 record (13 = 3 [2] + 9 + 1) - law#0,SET test value formatter: 2 - 12592 record (16 = 3 [3] + 12 + 1) - lawless#0,SET test value formatter: 1 - 12608 record (13 = 3 [2] + 9 + 1) - lay#0,SET test value formatter: 1 - 12621 record (15 = 3 [2] + 11 + 1) - lazar#0,SET test value formatter: 1 - 12636 record (15 = 3 [1] + 11 + 1) - lead#0,SET test value formatter: 1 - 12651 record (14 = 3 [3] + 10 + 1) - least#0,SET test value formatter: 2 - 12665 record (14 = 3 [3] + 10 + 1) - leave#0,SET test value formatter: 8 - 12679 record (14 = 3 [5] + 10 + 1) - leavens#0,SET test value formatter: 1 - 12693 record (14 = 3 [2] + 10 + 1) - left#0,SET test value formatter: 1 - 12707 record (17 = 3 [2] + 13 + 1) - leisure#0,SET test value formatter: 1 - 12724 record (14 = 3 [2] + 10 + 1) - lend#0,SET test value formatter: 1 - 12738 record (18 = 3 [0] + 14 + 1) [restart] - lender#0,SET test value formatter: 1 - 12756 record (13 = 3 [4] + 9 + 1) - lends#0,SET test value formatter: 1 - 12769 record (15 = 3 [3] + 11 + 1) - length#0,SET test value formatter: 1 - 12784 record (18 = 3 [2] + 14 + 1) - leperous#0,SET test value formatter: 1 - 12802 record (14 = 3 [2] + 10 + 1) - less#0,SET test value formatter: 2 - 12816 record (14 = 3 [4] + 10 + 1) - lesson#0,SET test value formatter: 1 - 12830 record (14 = 3 [2] + 9 + 2) - let#0,SET test value formatter: 23 - 12844 record (14 = 3 [3] + 10 + 1) - lethe#0,SET test value formatter: 1 - 12858 record (13 = 3 [3] + 9 + 1) - lets#0,SET test value formatter: 1 - 12871 record (16 = 3 [2] + 12 + 1) - levies#0,SET test value formatter: 1 - 12887 record (18 = 3 [2] + 14 + 1) - lewdness#0,SET test value formatter: 1 - 12905 record (20 = 3 [1] + 16 + 1) - libertine#0,SET test value formatter: 1 - 12925 record (14 = 3 [2] + 10 + 1) - lids#0,SET test value formatter: 1 - 12939 record (18 = 3 [2] + 14 + 1) - liegemen#0,SET test value formatter: 1 - 12957 record (13 = 3 [3] + 9 + 1) - lies#0,SET test value formatter: 1 - 12970 record (14 = 3 [2] + 10 + 1) - life#0,SET test value formatter: 7 - 12984 record (18 = 3 [0] + 14 + 1) [restart] - lifted#0,SET test value formatter: 1 - 13002 record (15 = 3 [2] + 11 + 1) - light#0,SET test value formatter: 1 - 13017 record (15 = 3 [5] + 11 + 1) - lightest#0,SET test value formatter: 1 - 13032 record (15 = 3 [2] + 10 + 2) - like#0,SET test value formatter: 23 - 13047 record (14 = 3 [2] + 10 + 1) - link#0,SET test value formatter: 1 - 13061 record (14 = 3 [2] + 10 + 1) - lion#0,SET test value formatter: 1 - 13075 record (14 = 3 [2] + 10 + 1) - lips#0,SET test value formatter: 1 - 13089 record (16 = 3 [2] + 12 + 1) - liquid#0,SET test value formatter: 1 - 13105 record (14 = 3 [2] + 10 + 1) - list#0,SET test value formatter: 6 - 13119 record (13 = 3 [4] + 9 + 1) - lists#0,SET test value formatter: 1 - 13132 record (16 = 3 [2] + 12 + 1) - little#0,SET test value formatter: 3 - 13148 record (14 = 3 [2] + 10 + 1) - live#0,SET test value formatter: 3 - 13162 record (14 = 3 [4] + 10 + 1) - livery#0,SET test value formatter: 1 - 13176 record (13 = 3 [4] + 9 + 1) - lives#0,SET test value formatter: 1 - 13189 record (14 = 3 [1] + 9 + 2) - ll#0,SET test value formatter: 18 - 13203 record (13 = 3 [1] + 9 + 1) - lo#0,SET test value formatter: 1 - 13216 record (16 = 3 [0] + 12 + 1) [restart] - loan#0,SET test value formatter: 1 - 13232 record (18 = 3 [3] + 14 + 1) - loathsome#0,SET test value formatter: 1 - 13250 record (14 = 3 [2] + 10 + 1) - lock#0,SET test value formatter: 1 - 13264 record (13 = 3 [4] + 9 + 1) - locks#0,SET test value formatter: 1 - 13277 record (15 = 3 [2] + 11 + 1) - lodge#0,SET test value formatter: 1 - 13292 record (15 = 3 [2] + 11 + 1) - lofty#0,SET test value formatter: 1 - 13307 record (14 = 3 [2] + 10 + 1) - long#0,SET test value formatter: 4 - 13321 record (14 = 3 [4] + 10 + 1) - longer#0,SET test value formatter: 3 - 13335 record (15 = 3 [2] + 10 + 2) - look#0,SET test value formatter: 10 - 13350 record (13 = 3 [4] + 9 + 1) - looks#0,SET test value formatter: 2 - 13363 record (14 = 3 [3] + 10 + 1) - loose#0,SET test value formatter: 1 - 13377 record (15 = 3 [2] + 10 + 2) - lord#0,SET test value formatter: 60 - 13392 record (13 = 3 [4] + 9 + 1) - lords#0,SET test value formatter: 1 - 13405 record (15 = 3 [5] + 11 + 1) - lordship#0,SET test value formatter: 1 - 13420 record (14 = 3 [2] + 10 + 1) - lose#0,SET test value formatter: 2 - 13434 record (13 = 3 [4] + 9 + 1) - loses#0,SET test value formatter: 1 - 13447 record (16 = 3 [0] + 12 + 1) [restart] - loss#0,SET test value formatter: 1 - 13463 record (13 = 3 [3] + 9 + 1) - lost#0,SET test value formatter: 5 - 13476 record (14 = 3 [2] + 10 + 1) - loud#0,SET test value formatter: 1 - 13490 record (14 = 3 [2] + 10 + 1) - love#0,SET test value formatter: 8 - 13504 record (13 = 3 [4] + 9 + 1) - loves#0,SET test value formatter: 5 - 13517 record (15 = 3 [3] + 11 + 1) - loving#0,SET test value formatter: 2 - 13532 record (15 = 3 [1] + 11 + 1) - lust#0,SET test value formatter: 2 - 13547 record (16 = 3 [2] + 12 + 1) - luxury#0,SET test value formatter: 1 - 13563 record (13 = 3 [0] + 9 + 1) - m#0,SET test value formatter: 2 - 13576 record (16 = 3 [1] + 12 + 1) - madam#0,SET test value formatter: 4 - 13592 record (13 = 3 [3] + 9 + 1) - made#0,SET test value formatter: 8 - 13605 record (16 = 3 [3] + 12 + 1) - madness#0,SET test value formatter: 1 - 13621 record (14 = 3 [2] + 10 + 1) - maid#0,SET test value formatter: 1 - 13635 record (14 = 3 [4] + 10 + 1) - maiden#0,SET test value formatter: 1 - 13649 record (13 = 3 [3] + 9 + 1) - main#0,SET test value formatter: 2 - 13662 record (20 = 3 [2] + 16 + 1) - majestical#0,SET test value formatter: 1 - 13682 record (19 = 3 [0] + 15 + 1) [restart] - majesty#0,SET test value formatter: 1 - 13701 record (14 = 3 [2] + 10 + 1) - make#0,SET test value formatter: 8 - 13715 record (13 = 3 [4] + 9 + 1) - makes#0,SET test value formatter: 2 - 13728 record (15 = 3 [3] + 11 + 1) - making#0,SET test value formatter: 2 - 13743 record (19 = 3 [2] + 15 + 1) - malicious#0,SET test value formatter: 1 - 13762 record (14 = 3 [2] + 9 + 2) - man#0,SET test value formatter: 11 - 13776 record (15 = 3 [3] + 11 + 1) - manner#0,SET test value formatter: 1 - 13791 record (13 = 3 [6] + 9 + 1) - manners#0,SET test value formatter: 1 - 13804 record (15 = 3 [3] + 11 + 1) - mantle#0,SET test value formatter: 1 - 13819 record (13 = 3 [3] + 9 + 1) - many#0,SET test value formatter: 2 - 13832 record (16 = 3 [2] + 12 + 1) - marble#0,SET test value formatter: 1 - 13848 record (19 = 3 [3] + 14 + 2) - marcellus#0,SET test value formatter: 46 - 13867 record (13 = 3 [4] + 9 + 1) - march#0,SET test value formatter: 2 - 13880 record (13 = 3 [3] + 9 + 1) - mark#0,SET test value formatter: 2 - 13893 record (17 = 3 [3] + 13 + 1) - marriage#0,SET test value formatter: 3 - 13910 record (14 = 3 [5] + 10 + 1) - married#0,SET test value formatter: 2 - 13924 record (18 = 3 [0] + 14 + 1) [restart] - marrow#0,SET test value formatter: 1 - 13942 record (13 = 3 [4] + 9 + 1) - marry#0,SET test value formatter: 3 - 13955 record (13 = 3 [3] + 9 + 1) - mart#0,SET test value formatter: 1 - 13968 record (15 = 3 [4] + 11 + 1) - martial#0,SET test value formatter: 1 - 13983 record (15 = 3 [3] + 11 + 1) - marvel#0,SET test value formatter: 1 - 13998 record (15 = 3 [2] + 11 + 1) - matin#0,SET test value formatter: 1 - 14013 record (15 = 3 [3] + 11 + 1) - matter#0,SET test value formatter: 1 - 14028 record (14 = 3 [2] + 9 + 2) - may#0,SET test value formatter: 19 - 14042 record (14 = 3 [1] + 9 + 2) - me#0,SET test value formatter: 47 - 14056 record (14 = 3 [2] + 10 + 1) - mean#0,SET test value formatter: 2 - 14070 record (13 = 3 [4] + 9 + 1) - means#0,SET test value formatter: 2 - 14083 record (14 = 3 [3] + 10 + 1) - meats#0,SET test value formatter: 1 - 14097 record (20 = 3 [2] + 16 + 1) - meditation#0,SET test value formatter: 1 - 14117 record (14 = 3 [2] + 10 + 1) - meet#0,SET test value formatter: 3 - 14131 record (15 = 3 [4] + 11 + 1) - meeting#0,SET test value formatter: 1 - 14146 record (14 = 3 [2] + 10 + 1) - melt#0,SET test value formatter: 1 - 14160 record (18 = 3 [0] + 14 + 1) [restart] - memory#0,SET test value formatter: 5 - 14178 record (13 = 3 [2] + 9 + 1) - men#0,SET test value formatter: 3 - 14191 record (15 = 3 [2] + 11 + 1) - mercy#0,SET test value formatter: 2 - 14206 record (13 = 3 [3] + 9 + 1) - mere#0,SET test value formatter: 1 - 14219 record (14 = 3 [4] + 10 + 1) - merely#0,SET test value formatter: 1 - 14233 record (17 = 3 [2] + 13 + 1) - message#0,SET test value formatter: 1 - 14250 record (13 = 3 [2] + 9 + 1) - met#0,SET test value formatter: 1 - 14263 [restart 12264] - 14267 [restart 12503] - 14271 [restart 12738] - 14275 [restart 12984] - 14279 [restart 13216] - 14283 [restart 13447] - 14287 [restart 13682] - 14291 [restart 13924] - 14295 [restart 14160] - 14303 [trailer compression=none checksum=0xb57d9fa6] - 14308 data (2037) - 14308 record (20 = 3 [0] + 16 + 1) [restart] - methinks#0,SET test value formatter: 2 - 14328 record (17 = 3 [4] + 13 + 1) - methought#0,SET test value formatter: 1 - 14345 record (15 = 3 [3] + 11 + 1) - mettle#0,SET test value formatter: 1 - 14360 record (17 = 3 [1] + 13 + 1) - middle#0,SET test value formatter: 1 - 14377 record (15 = 3 [2] + 11 + 1) - might#0,SET test value formatter: 7 - 14392 record (16 = 3 [5] + 12 + 1) - mightiest#0,SET test value formatter: 1 - 14408 record (14 = 3 [2] + 10 + 1) - milk#0,SET test value formatter: 1 - 14422 record (14 = 3 [2] + 10 + 1) - mind#0,SET test value formatter: 6 - 14436 record (13 = 3 [3] + 9 + 1) - mine#0,SET test value formatter: 6 - 14449 record (18 = 3 [3] + 14 + 1) - ministers#0,SET test value formatter: 1 - 14467 record (15 = 3 [3] + 11 + 1) - minute#0,SET test value formatter: 1 - 14482 record (13 = 3 [6] + 9 + 1) - minutes#0,SET test value formatter: 1 - 14495 record (15 = 3 [2] + 11 + 1) - mirth#0,SET test value formatter: 1 - 14510 record (15 = 3 [1] + 11 + 1) - mock#0,SET test value formatter: 1 - 14525 record (15 = 3 [4] + 11 + 1) - mockery#0,SET test value formatter: 1 - 14540 record (18 = 3 [2] + 14 + 1) - moderate#0,SET test value formatter: 1 - 14558 record (18 = 3 [0] + 14 + 1) [restart] - moiety#0,SET test value formatter: 1 - 14576 record (14 = 3 [3] + 10 + 1) - moist#0,SET test value formatter: 1 - 14590 record (14 = 3 [2] + 10 + 1) - mole#0,SET test value formatter: 2 - 14604 record (16 = 3 [2] + 12 + 1) - moment#0,SET test value formatter: 1 - 14620 record (15 = 3 [2] + 11 + 1) - month#0,SET test value formatter: 3 - 14635 record (13 = 3 [5] + 9 + 1) - months#0,SET test value formatter: 1 - 14648 record (15 = 3 [2] + 11 + 1) - moods#0,SET test value formatter: 1 - 14663 record (13 = 3 [3] + 9 + 1) - moon#0,SET test value formatter: 2 - 14676 record (15 = 3 [2] + 10 + 2) - more#0,SET test value formatter: 19 - 14691 record (13 = 3 [3] + 9 + 1) - morn#0,SET test value formatter: 3 - 14704 record (15 = 3 [4] + 11 + 1) - morning#0,SET test value formatter: 3 - 14719 record (15 = 3 [2] + 10 + 2) - most#0,SET test value formatter: 28 - 14734 record (14 = 3 [2] + 10 + 1) - mote#0,SET test value formatter: 1 - 14748 record (15 = 3 [3] + 11 + 1) - mother#0,SET test value formatter: 5 - 14763 record (15 = 3 [3] + 11 + 1) - motion#0,SET test value formatter: 1 - 14778 record (14 = 3 [4] + 10 + 1) - motive#0,SET test value formatter: 2 - 14792 record (17 = 3 [0] + 13 + 1) [restart] - mourn#0,SET test value formatter: 1 - 14809 record (15 = 3 [5] + 11 + 1) - mourning#0,SET test value formatter: 1 - 14824 record (14 = 3 [3] + 10 + 1) - mouse#0,SET test value formatter: 1 - 14838 record (14 = 3 [3] + 10 + 1) - mouth#0,SET test value formatter: 1 - 14852 record (15 = 3 [2] + 11 + 1) - moved#0,SET test value formatter: 1 - 14867 record (15 = 3 [1] + 11 + 1) - much#0,SET test value formatter: 9 - 14882 record (16 = 3 [2] + 12 + 1) - murder#0,SET test value formatter: 3 - 14898 record (15 = 3 [2] + 10 + 2) - must#0,SET test value formatter: 14 - 14913 record (15 = 3 [1] + 9 + 3) - my#0,SET test value formatter: 126 - 14928 record (16 = 3 [2] + 12 + 1) - myself#0,SET test value formatter: 4 - 14944 record (16 = 3 [0] + 12 + 1) - name#0,SET test value formatter: 2 - 14960 record (17 = 3 [2] + 13 + 1) - nations#0,SET test value formatter: 1 - 14977 record (14 = 3 [4] + 10 + 1) - native#0,SET test value formatter: 2 - 14991 record (16 = 3 [3] + 12 + 1) - natural#0,SET test value formatter: 2 - 15007 record (14 = 3 [5] + 9 + 2) - nature#0,SET test value formatter: 13 - 15021 record (13 = 3 [2] + 9 + 1) - nay#0,SET test value formatter: 7 - 15034 record (14 = 3 [0] + 10 + 1) [restart] - ne#0,SET test value formatter: 1 - 15048 record (14 = 3 [2] + 10 + 1) - near#0,SET test value formatter: 3 - 15062 record (21 = 3 [2] + 17 + 1) - necessaries#0,SET test value formatter: 1 - 15083 record (14 = 3 [2] + 10 + 1) - need#0,SET test value formatter: 1 - 15097 record (15 = 3 [4] + 11 + 1) - needful#0,SET test value formatter: 1 - 15112 record (13 = 3 [4] + 9 + 1) - needs#0,SET test value formatter: 1 - 15125 record (17 = 3 [2] + 13 + 1) - neither#0,SET test value formatter: 1 - 15142 record (16 = 3 [2] + 12 + 1) - nemean#0,SET test value formatter: 1 - 15158 record (16 = 3 [2] + 12 + 1) - nephew#0,SET test value formatter: 1 - 15174 record (16 = 3 [3] + 12 + 1) - neptune#0,SET test value formatter: 1 - 15190 record (15 = 3 [2] + 11 + 1) - nerve#0,SET test value formatter: 1 - 15205 record (15 = 3 [2] + 11 + 1) - never#0,SET test value formatter: 6 - 15220 record (13 = 3 [2] + 9 + 1) - new#0,SET test value formatter: 1 - 15233 record (13 = 3 [3] + 9 + 1) - news#0,SET test value formatter: 2 - 15246 record (17 = 3 [1] + 12 + 2) - night#0,SET test value formatter: 22 - 15263 record (14 = 3 [5] + 10 + 1) - nighted#0,SET test value formatter: 1 - 15277 record (19 = 3 [0] + 15 + 1) [restart] - nightly#0,SET test value formatter: 1 - 15296 record (13 = 3 [5] + 9 + 1) - nights#0,SET test value formatter: 3 - 15309 record (15 = 3 [2] + 11 + 1) - niobe#0,SET test value formatter: 1 - 15324 record (17 = 3 [2] + 13 + 1) - nipping#0,SET test value formatter: 1 - 15341 record (14 = 3 [1] + 9 + 2) - no#0,SET test value formatter: 28 - 15355 record (18 = 3 [2] + 14 + 1) - nobility#0,SET test value formatter: 1 - 15373 record (14 = 3 [3] + 10 + 1) - noble#0,SET test value formatter: 5 - 15387 record (14 = 3 [2] + 10 + 1) - none#0,SET test value formatter: 2 - 15401 record (14 = 3 [2] + 9 + 2) - nor#0,SET test value formatter: 14 - 15415 record (15 = 3 [3] + 11 + 1) - norway#0,SET test value formatter: 5 - 15430 record (14 = 3 [2] + 9 + 2) - not#0,SET test value formatter: 80 - 15444 record (13 = 3 [3] + 9 + 1) - note#0,SET test value formatter: 2 - 15457 record (16 = 3 [3] + 12 + 1) - nothing#0,SET test value formatter: 2 - 15473 record (14 = 3 [2] + 9 + 2) - now#0,SET test value formatter: 19 - 15487 record (14 = 3 [0] + 9 + 2) - o#0,SET test value formatter: 30 - 15501 record (15 = 3 [1] + 11 + 1) - oath#0,SET test value formatter: 1 - 15516 record (16 = 3 [0] + 12 + 1) [restart] - obey#0,SET test value formatter: 3 - 15532 record (16 = 3 [2] + 12 + 1) - object#0,SET test value formatter: 1 - 15548 record (20 = 3 [2] + 16 + 1) - obligation#0,SET test value formatter: 1 - 15568 record (20 = 3 [2] + 16 + 1) - obsequious#0,SET test value formatter: 1 - 15588 record (18 = 3 [4] + 14 + 1) - observance#0,SET test value formatter: 1 - 15606 record (13 = 3 [8] + 9 + 1) - observant#0,SET test value formatter: 1 - 15619 record (16 = 3 [7] + 12 + 1) - observation#0,SET test value formatter: 1 - 15635 record (18 = 3 [3] + 14 + 1) - obstinate#0,SET test value formatter: 1 - 15653 record (19 = 3 [1] + 15 + 1) - occasion#0,SET test value formatter: 1 - 15672 record (14 = 3 [1] + 10 + 1) - odd#0,SET test value formatter: 1 - 15686 record (15 = 3 [1] + 9 + 3) - of#0,SET test value formatter: 176 - 15701 record (13 = 3 [2] + 9 + 1) - off#0,SET test value formatter: 6 - 15714 record (16 = 3 [3] + 12 + 1) - offence#0,SET test value formatter: 2 - 15730 record (13 = 3 [5] + 9 + 1) - offend#0,SET test value formatter: 1 - 15743 record (14 = 3 [6] + 10 + 1) - offended#0,SET test value formatter: 1 - 15757 record (13 = 3 [4] + 9 + 1) - offer#0,SET test value formatter: 2 - 15770 record (15 = 3 [0] + 11 + 1) [restart] - oft#0,SET test value formatter: 7 - 15785 record (14 = 3 [1] + 10 + 1) - old#0,SET test value formatter: 4 - 15799 record (15 = 3 [1] + 11 + 1) - omen#0,SET test value formatter: 1 - 15814 record (14 = 3 [1] + 9 + 2) - on#0,SET test value formatter: 25 - 15828 record (14 = 3 [2] + 10 + 1) - once#0,SET test value formatter: 8 - 15842 record (13 = 3 [2] + 9 + 1) - one#0,SET test value formatter: 6 - 15855 record (15 = 3 [1] + 11 + 1) - oped#0,SET test value formatter: 1 - 15870 record (13 = 3 [3] + 9 + 1) - open#0,SET test value formatter: 1 - 15883 record (18 = 3 [2] + 13 + 2) - ophelia#0,SET test value formatter: 15 - 15901 record (17 = 3 [2] + 13 + 1) - opinion#0,SET test value formatter: 1 - 15918 record (17 = 3 [2] + 13 + 1) - opposed#0,SET test value formatter: 1 - 15935 record (17 = 3 [5] + 13 + 1) - opposition#0,SET test value formatter: 1 - 15952 record (16 = 3 [3] + 12 + 1) - oppress#0,SET test value formatter: 1 - 15968 record (14 = 3 [1] + 9 + 2) - or#0,SET test value formatter: 28 - 15982 record (17 = 3 [2] + 13 + 1) - orchard#0,SET test value formatter: 2 - 15999 record (18 = 3 [2] + 14 + 1) - ordnance#0,SET test value formatter: 1 - 16017 record (18 = 3 [0] + 14 + 1) [restart] - origin#0,SET test value formatter: 1 - 16035 record (16 = 3 [1] + 12 + 1) - other#0,SET test value formatter: 4 - 16051 record (15 = 3 [1] + 10 + 2) - our#0,SET test value formatter: 45 - 16066 record (16 = 3 [3] + 12 + 1) - ourself#0,SET test value formatter: 2 - 16082 record (15 = 3 [6] + 11 + 1) - ourselves#0,SET test value formatter: 1 - 16097 record (13 = 3 [2] + 9 + 1) - out#0,SET test value formatter: 8 - 16110 record (14 = 3 [1] + 10 + 1) - own#0,SET test value formatter: 6 - 16124 record (16 = 3 [3] + 12 + 1) - ownself#0,SET test value formatter: 1 - 16140 record (16 = 3 [0] + 12 + 1) - pale#0,SET test value formatter: 4 - 16156 record (13 = 3 [4] + 9 + 1) - pales#0,SET test value formatter: 1 - 16169 record (13 = 3 [3] + 9 + 1) - palm#0,SET test value formatter: 1 - 16182 record (13 = 3 [4] + 9 + 1) - palmy#0,SET test value formatter: 1 - 16195 record (16 = 3 [2] + 12 + 1) - pardon#0,SET test value formatter: 1 - 16211 record (14 = 3 [3] + 10 + 1) - parle#0,SET test value formatter: 1 - 16225 record (13 = 3 [5] + 9 + 1) - parley#0,SET test value formatter: 1 - 16238 record (13 = 3 [3] + 9 + 1) - part#0,SET test value formatter: 6 - 16251 record (22 = 3 [0] + 18 + 1) [restart] - particular#0,SET test value formatter: 6 - 16273 record (15 = 3 [5] + 11 + 1) - partisan#0,SET test value formatter: 1 - 16288 record (17 = 3 [2] + 13 + 1) - passeth#0,SET test value formatter: 1 - 16305 [restart 14308] - 16309 [restart 14558] - 16313 [restart 14792] - 16317 [restart 15034] - 16321 [restart 15277] - 16325 [restart 15516] - 16329 [restart 15770] - 16333 [restart 16017] - 16337 [restart 16251] - 16345 [trailer compression=none checksum=0x88e82f4b] - 16350 data (2029) - 16350 record (19 = 3 [0] + 15 + 1) [restart] - passing#0,SET test value formatter: 1 - 16369 record (13 = 3 [3] + 9 + 1) - past#0,SET test value formatter: 1 - 16382 record (15 = 3 [4] + 11 + 1) - pastors#0,SET test value formatter: 1 - 16397 record (14 = 3 [2] + 10 + 1) - path#0,SET test value formatter: 1 - 16411 record (16 = 3 [3] + 12 + 1) - patrick#0,SET test value formatter: 1 - 16427 record (13 = 3 [2] + 9 + 1) - pay#0,SET test value formatter: 1 - 16440 record (13 = 3 [1] + 9 + 1) - pe#0,SET test value formatter: 1 - 16453 record (15 = 3 [2] + 11 + 1) - peace#0,SET test value formatter: 2 - 16468 record (17 = 3 [2] + 13 + 1) - peevish#0,SET test value formatter: 1 - 16485 record (19 = 3 [2] + 15 + 1) - perchance#0,SET test value formatter: 2 - 16504 record (16 = 3 [3] + 12 + 1) - perform#0,SET test value formatter: 1 - 16520 record (15 = 3 [4] + 11 + 1) - perfume#0,SET test value formatter: 1 - 16535 record (16 = 3 [3] + 12 + 1) - perhaps#0,SET test value formatter: 1 - 16551 record (17 = 3 [3] + 13 + 1) - perilous#0,SET test value formatter: 1 - 16568 record (18 = 3 [3] + 14 + 1) - permanent#0,SET test value formatter: 1 - 16586 record (19 = 3 [3] + 15 + 1) - pernicious#0,SET test value formatter: 1 - 16605 record (20 = 3 [0] + 16 + 1) [restart] - persever#0,SET test value formatter: 1 - 16625 record (14 = 3 [4] + 10 + 1) - person#0,SET test value formatter: 1 - 16639 record (14 = 3 [6] + 10 + 1) - personal#0,SET test value formatter: 1 - 16653 record (13 = 3 [6] + 9 + 1) - persons#0,SET test value formatter: 1 - 16666 record (18 = 3 [3] + 14 + 1) - perturbed#0,SET test value formatter: 1 - 16684 record (16 = 3 [2] + 12 + 1) - pester#0,SET test value formatter: 1 - 16700 record (18 = 3 [2] + 14 + 1) - petition#0,SET test value formatter: 1 - 16718 record (14 = 3 [3] + 10 + 1) - petty#0,SET test value formatter: 1 - 16732 record (21 = 3 [1] + 17 + 1) - philosophy#0,SET test value formatter: 1 - 16753 record (16 = 3 [2] + 12 + 1) - phrase#0,SET test value formatter: 3 - 16769 record (16 = 3 [1] + 12 + 1) - piece#0,SET test value formatter: 1 - 16785 record (13 = 3 [2] + 9 + 1) - pin#0,SET test value formatter: 1 - 16798 record (16 = 3 [2] + 12 + 1) - pioner#0,SET test value formatter: 1 - 16814 record (14 = 3 [3] + 10 + 1) - pious#0,SET test value formatter: 1 - 16828 record (14 = 3 [2] + 10 + 1) - pith#0,SET test value formatter: 1 - 16842 record (13 = 3 [3] + 9 + 1) - pity#0,SET test value formatter: 1 - 16855 record (17 = 3 [0] + 13 + 1) [restart] - place#0,SET test value formatter: 3 - 16872 record (14 = 3 [3] + 10 + 1) - plain#0,SET test value formatter: 1 - 16886 record (16 = 3 [3] + 12 + 1) - planets#0,SET test value formatter: 1 - 16902 record (17 = 3 [3] + 13 + 1) - platform#0,SET test value formatter: 5 - 16919 record (17 = 3 [3] + 13 + 1) - plausive#0,SET test value formatter: 1 - 16936 record (13 = 3 [3] + 9 + 1) - play#0,SET test value formatter: 2 - 16949 record (16 = 3 [2] + 12 + 1) - please#0,SET test value formatter: 1 - 16965 record (15 = 3 [3] + 11 + 1) - pledge#0,SET test value formatter: 1 - 16980 record (16 = 3 [1] + 12 + 1) - point#0,SET test value formatter: 2 - 16996 record (17 = 3 [2] + 13 + 1) - polacks#0,SET test value formatter: 1 - 17013 record (13 = 3 [3] + 9 + 1) - pole#0,SET test value formatter: 1 - 17026 record (18 = 3 [3] + 13 + 2) - polonius#0,SET test value formatter: 13 - 17044 record (19 = 3 [2] + 15 + 1) - ponderous#0,SET test value formatter: 1 - 17063 record (14 = 3 [2] + 10 + 1) - pooh#0,SET test value formatter: 1 - 17077 record (13 = 3 [3] + 9 + 1) - poor#0,SET test value formatter: 9 - 17090 record (17 = 3 [2] + 13 + 1) - porches#0,SET test value formatter: 1 - 17107 record (22 = 3 [0] + 18 + 1) [restart] - porpentine#0,SET test value formatter: 1 - 17129 record (19 = 3 [3] + 15 + 1) - portentous#0,SET test value formatter: 1 - 17148 record (17 = 3 [2] + 13 + 1) - possess#0,SET test value formatter: 1 - 17165 record (13 = 3 [5] + 9 + 1) - posset#0,SET test value formatter: 1 - 17178 record (13 = 3 [3] + 9 + 1) - post#0,SET test value formatter: 3 - 17191 record (14 = 3 [2] + 10 + 1) - pour#0,SET test value formatter: 1 - 17205 record (15 = 3 [2] + 11 + 1) - power#0,SET test value formatter: 3 - 17220 record (15 = 3 [1] + 11 + 1) - pray#0,SET test value formatter: 7 - 17235 record (15 = 3 [4] + 11 + 1) - prayers#0,SET test value formatter: 1 - 17250 record (19 = 3 [2] + 15 + 1) - preceding#0,SET test value formatter: 1 - 17269 record (15 = 3 [5] + 11 + 1) - precepts#0,SET test value formatter: 1 - 17284 record (16 = 3 [4] + 12 + 1) - precurse#0,SET test value formatter: 1 - 17300 record (21 = 3 [3] + 17 + 1) - preparations#0,SET test value formatter: 1 - 17321 record (17 = 3 [3] + 13 + 1) - presence#0,SET test value formatter: 1 - 17338 record (13 = 3 [6] + 9 + 1) - present#0,SET test value formatter: 1 - 17351 record (17 = 3 [4] + 13 + 1) - pressures#0,SET test value formatter: 1 - 17368 record (16 = 3 [0] + 12 + 1) [restart] - prey#0,SET test value formatter: 1 - 17384 record (15 = 3 [2] + 11 + 1) - prick#0,SET test value formatter: 2 - 17399 record (14 = 3 [3] + 10 + 1) - pride#0,SET test value formatter: 1 - 17413 record (17 = 3 [3] + 13 + 1) - primrose#0,SET test value formatter: 1 - 17430 record (13 = 3 [4] + 9 + 1) - primy#0,SET test value formatter: 1 - 17443 record (15 = 3 [3] + 11 + 1) - prince#0,SET test value formatter: 1 - 17458 record (15 = 3 [3] + 11 + 1) - prison#0,SET test value formatter: 1 - 17473 record (16 = 3 [3] + 12 + 1) - private#0,SET test value formatter: 1 - 17489 record (13 = 3 [4] + 9 + 1) - privy#0,SET test value formatter: 1 - 17502 record (19 = 3 [2] + 15 + 1) - probation#0,SET test value formatter: 1 - 17521 record (16 = 3 [3] + 12 + 1) - process#0,SET test value formatter: 1 - 17537 record (17 = 3 [4] + 13 + 1) - proclaims#0,SET test value formatter: 1 - 17554 record (17 = 3 [3] + 13 + 1) - prodigal#0,SET test value formatter: 2 - 17571 record (17 = 3 [3] + 13 + 1) - prologue#0,SET test value formatter: 1 - 17588 record (16 = 3 [3] + 12 + 1) - promise#0,SET test value formatter: 1 - 17604 record (20 = 3 [3] + 16 + 1) - pronouncing#0,SET test value formatter: 1 - 17624 record (21 = 3 [0] + 17 + 1) [restart] - prophetic#0,SET test value formatter: 1 - 17645 record (19 = 3 [4] + 15 + 1) - proportions#0,SET test value formatter: 1 - 17664 record (14 = 3 [5] + 10 + 1) - propose#0,SET test value formatter: 1 - 17678 record (15 = 3 [1] + 11 + 1) - puff#0,SET test value formatter: 1 - 17693 record (14 = 3 [2] + 10 + 1) - pure#0,SET test value formatter: 1 - 17707 record (15 = 3 [3] + 11 + 1) - purged#0,SET test value formatter: 1 - 17722 record (16 = 3 [3] + 12 + 1) - purpose#0,SET test value formatter: 1 - 17738 record (14 = 3 [3] + 10 + 1) - purse#0,SET test value formatter: 1 - 17752 record (16 = 3 [4] + 12 + 1) - pursuest#0,SET test value formatter: 1 - 17768 record (13 = 3 [2] + 9 + 1) - put#0,SET test value formatter: 2 - 17781 record (13 = 3 [3] + 9 + 1) - puts#0,SET test value formatter: 1 - 17794 record (19 = 3 [0] + 15 + 1) - quarrel#0,SET test value formatter: 1 - 17813 record (15 = 3 [2] + 11 + 1) - queen#0,SET test value formatter: 7 - 17828 record (17 = 3 [3] + 13 + 1) - question#0,SET test value formatter: 2 - 17845 record (16 = 3 [8] + 12 + 1) - questionable#0,SET test value formatter: 1 - 17861 record (21 = 3 [2] + 17 + 1) - quicksilver#0,SET test value formatter: 1 - 17882 record (17 = 3 [0] + 13 + 1) [restart] - quiet#0,SET test value formatter: 1 - 17899 record (14 = 3 [5] + 10 + 1) - quietly#0,SET test value formatter: 1 - 17913 record (15 = 3 [3] + 11 + 1) - quills#0,SET test value formatter: 1 - 17928 record (19 = 3 [0] + 15 + 1) - radiant#0,SET test value formatter: 1 - 17947 record (14 = 3 [2] + 10 + 1) - rank#0,SET test value formatter: 2 - 17961 record (14 = 3 [4] + 10 + 1) - rankly#0,SET test value formatter: 1 - 17975 record (14 = 3 [2] + 10 + 1) - rate#0,SET test value formatter: 1 - 17989 record (17 = 3 [3] + 13 + 1) - ratified#0,SET test value formatter: 1 - 18006 record (13 = 3 [1] + 9 + 1) - re#0,SET test value formatter: 2 - 18019 record (17 = 3 [2] + 13 + 1) - reaches#0,SET test value formatter: 1 - 18036 record (13 = 3 [3] + 9 + 1) - rear#0,SET test value formatter: 1 - 18049 record (15 = 3 [3] + 11 + 1) - reason#0,SET test value formatter: 5 - 18064 record (16 = 3 [2] + 12 + 1) - rebels#0,SET test value formatter: 1 - 18080 record (18 = 3 [2] + 14 + 1) - reckless#0,SET test value formatter: 1 - 18098 record (17 = 3 [4] + 13 + 1) - reckoning#0,SET test value formatter: 1 - 18115 record (13 = 3 [4] + 9 + 1) - recks#0,SET test value formatter: 1 - 18128 record (19 = 3 [0] + 15 + 1) [restart] - records#0,SET test value formatter: 1 - 18147 record (15 = 3 [4] + 11 + 1) - recover#0,SET test value formatter: 1 - 18162 record (13 = 3 [2] + 9 + 1) - red#0,SET test value formatter: 1 - 18175 record (13 = 3 [3] + 9 + 1) - rede#0,SET test value formatter: 1 - 18188 record (15 = 3 [2] + 11 + 1) - reels#0,SET test value formatter: 1 - 18203 record (16 = 3 [2] + 12 + 1) - relief#0,SET test value formatter: 1 - 18219 record (15 = 3 [5] + 11 + 1) - relieved#0,SET test value formatter: 1 - 18234 record (16 = 3 [2] + 12 + 1) - remain#0,SET test value formatter: 1 - 18250 record (17 = 3 [3] + 13 + 1) - remember#0,SET test value formatter: 6 - 18267 record (17 = 3 [6] + 13 + 1) - remembrance#0,SET test value formatter: 1 - 18284 record (15 = 3 [3] + 11 + 1) - remove#0,SET test value formatter: 1 - 18299 record (13 = 3 [6] + 9 + 1) - removed#0,SET test value formatter: 1 - 18312 record (16 = 3 [2] + 12 + 1) - render#0,SET test value formatter: 1 - 18328 record (15 = 3 [2] + 11 + 1) - reply#0,SET test value formatter: 1 - 18343 [restart 16350] - 18347 [restart 16605] - 18351 [restart 16855] - 18355 [restart 17107] - 18359 [restart 17368] - 18363 [restart 17624] - 18367 [restart 17882] - 18371 [restart 18128] - 18379 [trailer compression=none checksum=0xa251cc65] - 18384 data (2040) - 18384 record (18 = 3 [0] + 14 + 1) [restart] - report#0,SET test value formatter: 1 - 18402 record (17 = 3 [2] + 13 + 1) - request#0,SET test value formatter: 1 - 18419 record (15 = 3 [4] + 11 + 1) - requite#0,SET test value formatter: 1 - 18434 record (17 = 3 [2] + 13 + 1) - reserve#0,SET test value formatter: 1 - 18451 record (18 = 3 [3] + 14 + 1) - resolutes#0,SET test value formatter: 1 - 18469 record (14 = 3 [5] + 10 + 1) - resolve#0,SET test value formatter: 1 - 18483 record (13 = 3 [3] + 9 + 1) - rest#0,SET test value formatter: 2 - 18496 record (20 = 3 [2] + 16 + 1) - retrograde#0,SET test value formatter: 1 - 18516 record (15 = 3 [3] + 11 + 1) - return#0,SET test value formatter: 2 - 18531 record (16 = 3 [2] + 12 + 1) - reveal#0,SET test value formatter: 1 - 18547 record (13 = 3 [4] + 9 + 1) - revel#0,SET test value formatter: 1 - 18560 record (15 = 3 [4] + 11 + 1) - revenge#0,SET test value formatter: 3 - 18575 record (16 = 3 [3] + 12 + 1) - revisit#0,SET test value formatter: 1 - 18591 record (18 = 3 [1] + 14 + 1) - rhenish#0,SET test value formatter: 1 - 18609 record (15 = 3 [1] + 11 + 1) - rich#0,SET test value formatter: 1 - 18624 record (13 = 3 [2] + 9 + 1) - rid#0,SET test value formatter: 1 - 18637 record (17 = 3 [0] + 13 + 1) [restart] - right#0,SET test value formatter: 3 - 18654 record (14 = 3 [2] + 10 + 1) - rise#0,SET test value formatter: 1 - 18668 record (16 = 3 [2] + 12 + 1) - rivals#0,SET test value formatter: 1 - 18684 record (14 = 3 [3] + 10 + 1) - river#0,SET test value formatter: 1 - 18698 record (15 = 3 [1] + 11 + 1) - roar#0,SET test value formatter: 1 - 18713 record (16 = 3 [2] + 12 + 1) - romage#0,SET test value formatter: 1 - 18729 record (13 = 3 [4] + 9 + 1) - roman#0,SET test value formatter: 1 - 18742 record (13 = 3 [3] + 9 + 1) - rome#0,SET test value formatter: 1 - 18755 record (14 = 3 [2] + 10 + 1) - room#0,SET test value formatter: 2 - 18769 record (14 = 3 [3] + 10 + 1) - roots#0,SET test value formatter: 1 - 18783 record (16 = 3 [2] + 12 + 1) - rotten#0,SET test value formatter: 1 - 18799 record (17 = 3 [2] + 13 + 1) - roughly#0,SET test value formatter: 1 - 18816 record (14 = 3 [3] + 10 + 1) - rouse#0,SET test value formatter: 2 - 18830 record (15 = 3 [2] + 11 + 1) - royal#0,SET test value formatter: 2 - 18845 record (16 = 3 [1] + 12 + 1) - ruled#0,SET test value formatter: 1 - 18861 record (17 = 3 [2] + 13 + 1) - running#0,SET test value formatter: 1 - 18878 record (18 = 3 [0] + 14 + 1) [restart] - russet#0,SET test value formatter: 1 - 18896 record (14 = 3 [0] + 9 + 2) - s#0,SET test value formatter: 39 - 18910 record (16 = 3 [1] + 12 + 1) - sable#0,SET test value formatter: 1 - 18926 record (16 = 3 [2] + 12 + 1) - safety#0,SET test value formatter: 2 - 18942 record (14 = 3 [2] + 10 + 1) - said#0,SET test value formatter: 3 - 18956 record (13 = 3 [3] + 9 + 1) - sail#0,SET test value formatter: 1 - 18969 record (14 = 3 [3] + 10 + 1) - saint#0,SET test value formatter: 1 - 18983 record (14 = 3 [2] + 10 + 1) - salt#0,SET test value formatter: 1 - 18997 record (14 = 3 [2] + 10 + 1) - same#0,SET test value formatter: 5 - 19011 record (20 = 3 [2] + 16 + 1) - sanctified#0,SET test value formatter: 1 - 19031 record (14 = 3 [2] + 10 + 1) - sate#0,SET test value formatter: 1 - 19045 record (14 = 3 [3] + 10 + 1) - satyr#0,SET test value formatter: 1 - 19059 record (17 = 3 [2] + 13 + 1) - saviour#0,SET test value formatter: 1 - 19076 record (13 = 3 [2] + 9 + 1) - saw#0,SET test value formatter: 6 - 19089 record (13 = 3 [3] + 9 + 1) - saws#0,SET test value formatter: 1 - 19102 record (14 = 3 [2] + 9 + 2) - say#0,SET test value formatter: 11 - 19116 record (18 = 3 [0] + 14 + 1) [restart] - saying#0,SET test value formatter: 1 - 19134 record (13 = 3 [3] + 9 + 1) - says#0,SET test value formatter: 3 - 19147 record (16 = 3 [1] + 12 + 1) - scale#0,SET test value formatter: 1 - 19163 record (16 = 3 [3] + 12 + 1) - scandal#0,SET test value formatter: 1 - 19179 record (15 = 3 [4] + 11 + 1) - scanter#0,SET test value formatter: 1 - 19194 record (15 = 3 [3] + 11 + 1) - scapes#0,SET test value formatter: 1 - 19209 record (17 = 3 [3] + 13 + 1) - scarcely#0,SET test value formatter: 1 - 19226 record (15 = 3 [2] + 11 + 1) - scene#0,SET test value formatter: 5 - 19241 record (13 = 3 [4] + 9 + 1) - scent#0,SET test value formatter: 1 - 19254 record (17 = 3 [2] + 13 + 1) - scholar#0,SET test value formatter: 1 - 19271 record (13 = 3 [7] + 9 + 1) - scholars#0,SET test value formatter: 1 - 19284 record (14 = 3 [4] + 10 + 1) - school#0,SET test value formatter: 1 - 19298 record (15 = 3 [2] + 11 + 1) - scope#0,SET test value formatter: 2 - 19313 record (14 = 3 [1] + 10 + 1) - sea#0,SET test value formatter: 3 - 19327 record (13 = 3 [3] + 9 + 1) - seal#0,SET test value formatter: 2 - 19340 record (15 = 3 [3] + 11 + 1) - season#0,SET test value formatter: 4 - 19355 record (16 = 3 [0] + 12 + 1) [restart] - seat#0,SET test value formatter: 1 - 19371 record (16 = 3 [2] + 12 + 1) - second#0,SET test value formatter: 1 - 19387 record (16 = 3 [3] + 12 + 1) - secrecy#0,SET test value formatter: 1 - 19403 record (13 = 3 [5] + 9 + 1) - secret#0,SET test value formatter: 1 - 19416 record (13 = 3 [6] + 9 + 1) - secrets#0,SET test value formatter: 1 - 19429 record (15 = 3 [3] + 11 + 1) - secure#0,SET test value formatter: 2 - 19444 record (16 = 3 [2] + 12 + 1) - seduce#0,SET test value formatter: 1 - 19460 record (13 = 3 [2] + 9 + 1) - see#0,SET test value formatter: 7 - 19473 record (13 = 3 [3] + 9 + 1) - seed#0,SET test value formatter: 1 - 19486 record (15 = 3 [3] + 11 + 1) - seeing#0,SET test value formatter: 1 - 19501 record (13 = 3 [3] + 9 + 1) - seek#0,SET test value formatter: 1 - 19514 record (13 = 3 [3] + 9 + 1) - seem#0,SET test value formatter: 2 - 19527 record (15 = 3 [4] + 11 + 1) - seeming#0,SET test value formatter: 1 - 19542 record (13 = 3 [4] + 9 + 1) - seems#0,SET test value formatter: 3 - 19555 record (13 = 3 [3] + 9 + 1) - seen#0,SET test value formatter: 8 - 19568 record (16 = 3 [2] + 12 + 1) - seized#0,SET test value formatter: 1 - 19584 record (18 = 3 [0] + 14 + 1) [restart] - select#0,SET test value formatter: 1 - 19602 record (13 = 3 [3] + 9 + 1) - self#0,SET test value formatter: 1 - 19615 record (15 = 3 [2] + 11 + 1) - sense#0,SET test value formatter: 1 - 19630 record (16 = 3 [4] + 12 + 1) - sensible#0,SET test value formatter: 1 - 19646 record (13 = 3 [3] + 9 + 1) - sent#0,SET test value formatter: 1 - 19659 record (19 = 3 [2] + 15 + 1) - sepulchre#0,SET test value formatter: 1 - 19678 record (17 = 3 [2] + 13 + 1) - serious#0,SET test value formatter: 1 - 19695 record (16 = 3 [3] + 12 + 1) - serpent#0,SET test value formatter: 2 - 19711 record (16 = 3 [3] + 12 + 1) - servant#0,SET test value formatter: 1 - 19727 record (13 = 3 [7] + 9 + 1) - servants#0,SET test value formatter: 1 - 19740 record (15 = 3 [4] + 11 + 1) - service#0,SET test value formatter: 1 - 19755 record (13 = 3 [2] + 9 + 1) - set#0,SET test value formatter: 4 - 19768 record (16 = 3 [1] + 12 + 1) - shake#0,SET test value formatter: 2 - 19784 record (15 = 3 [3] + 10 + 2) - shall#0,SET test value formatter: 22 - 19799 record (13 = 3 [4] + 9 + 1) - shalt#0,SET test value formatter: 1 - 19812 record (14 = 3 [3] + 10 + 1) - shame#0,SET test value formatter: 1 - 19826 record (20 = 3 [0] + 16 + 1) [restart] - shameful#0,SET test value formatter: 1 - 19846 record (14 = 3 [3] + 10 + 1) - shape#0,SET test value formatter: 2 - 19860 record (13 = 3 [5] + 9 + 1) - shapes#0,SET test value formatter: 1 - 19873 record (14 = 3 [3] + 10 + 1) - shark#0,SET test value formatter: 1 - 19887 record (13 = 3 [2] + 9 + 1) - she#0,SET test value formatter: 6 - 19900 record (16 = 3 [3] + 12 + 1) - sheeted#0,SET test value formatter: 1 - 19916 record (13 = 3 [5] + 9 + 1) - sheets#0,SET test value formatter: 1 - 19929 record (15 = 3 [2] + 11 + 1) - shift#0,SET test value formatter: 1 - 19944 record (20 = 3 [3] + 16 + 1) - shipwrights#0,SET test value formatter: 1 - 19964 record (15 = 3 [2] + 11 + 1) - shoes#0,SET test value formatter: 1 - 19979 record (13 = 3 [3] + 9 + 1) - shot#0,SET test value formatter: 2 - 19992 record (15 = 3 [3] + 11 + 1) - should#0,SET test value formatter: 6 - 20007 record (14 = 3 [6] + 10 + 1) - shoulder#0,SET test value formatter: 1 - 20021 record (14 = 3 [6] + 10 + 1) - shouldst#0,SET test value formatter: 1 - 20035 record (13 = 3 [3] + 9 + 1) - show#0,SET test value formatter: 6 - 20048 record (13 = 3 [4] + 9 + 1) - shows#0,SET test value formatter: 2 - 20061 record (20 = 3 [0] + 16 + 1) [restart] - shrewdly#0,SET test value formatter: 1 - 20081 record (15 = 3 [3] + 11 + 1) - shrill#0,SET test value formatter: 1 - 20096 record (15 = 3 [3] + 11 + 1) - shrunk#0,SET test value formatter: 1 - 20111 record (15 = 3 [1] + 11 + 1) - sick#0,SET test value formatter: 2 - 20126 record (14 = 3 [2] + 10 + 1) - side#0,SET test value formatter: 1 - 20140 record (15 = 3 [2] + 11 + 1) - sight#0,SET test value formatter: 3 - 20155 record (17 = 3 [2] + 13 + 1) - silence#0,SET test value formatter: 1 - 20172 record (15 = 3 [3] + 11 + 1) - silver#0,SET test value formatter: 1 - 20187 record (16 = 3 [2] + 12 + 1) - simple#0,SET test value formatter: 1 - 20203 record (13 = 3 [2] + 9 + 1) - sin#0,SET test value formatter: 1 - 20216 record (14 = 3 [3] + 10 + 1) - since#0,SET test value formatter: 1 - 20230 record (15 = 3 [3] + 11 + 1) - sinews#0,SET test value formatter: 1 - 20245 record (16 = 3 [3] + 12 + 1) - singeth#0,SET test value formatter: 1 - 20261 record (13 = 3 [2] + 9 + 1) - sir#0,SET test value formatter: 3 - 20274 record (13 = 3 [3] + 9 + 1) - sirs#0,SET test value formatter: 1 - 20287 record (16 = 3 [2] + 12 + 1) - sister#0,SET test value formatter: 3 - 20303 record (15 = 3 [0] + 11 + 1) [restart] - sit#0,SET test value formatter: 4 - 20318 record (13 = 3 [3] + 9 + 1) - sits#0,SET test value formatter: 2 - 20331 record (17 = 3 [1] + 13 + 1) - skirts#0,SET test value formatter: 1 - 20348 record (18 = 3 [1] + 14 + 1) - slander#0,SET test value formatter: 1 - 20366 record (18 = 3 [3] + 14 + 1) - slaughter#0,SET test value formatter: 1 - 20384 [restart 18384] - 20388 [restart 18637] - 20392 [restart 18878] - 20396 [restart 19116] - 20400 [restart 19355] - 20404 [restart 19584] - 20408 [restart 19826] - 20412 [restart 20061] - 20416 [restart 20303] - 20424 [trailer compression=none checksum=0x8953c396] - 20429 data (2030) - 20429 record (16 = 3 [0] + 12 + 1) [restart] - slay#0,SET test value formatter: 1 - 20445 record (17 = 3 [2] + 13 + 1) - sledded#0,SET test value formatter: 1 - 20462 record (14 = 3 [3] + 10 + 1) - sleep#0,SET test value formatter: 1 - 20476 record (15 = 3 [5] + 11 + 1) - sleeping#0,SET test value formatter: 3 - 20491 record (14 = 3 [2] + 10 + 1) - slow#0,SET test value formatter: 2 - 20505 record (16 = 3 [1] + 12 + 1) - smile#0,SET test value formatter: 2 - 20521 record (13 = 3 [5] + 9 + 1) - smiles#0,SET test value formatter: 1 - 20534 record (15 = 3 [4] + 11 + 1) - smiling#0,SET test value formatter: 2 - 20549 record (16 = 3 [2] + 12 + 1) - smooth#0,SET test value formatter: 1 - 20565 record (14 = 3 [3] + 10 + 1) - smote#0,SET test value formatter: 1 - 20579 record (14 = 3 [1] + 9 + 2) - so#0,SET test value formatter: 48 - 20593 record (13 = 3 [2] + 9 + 1) - soe#0,SET test value formatter: 1 - 20606 record (14 = 3 [2] + 10 + 1) - soft#0,SET test value formatter: 2 - 20620 record (14 = 3 [2] + 10 + 1) - soil#0,SET test value formatter: 2 - 20634 record (17 = 3 [2] + 13 + 1) - soldier#0,SET test value formatter: 1 - 20651 record (13 = 3 [7] + 9 + 1) - soldiers#0,SET test value formatter: 1 - 20664 record (18 = 3 [0] + 14 + 1) [restart] - solemn#0,SET test value formatter: 2 - 20682 record (14 = 3 [3] + 10 + 1) - solid#0,SET test value formatter: 1 - 20696 record (15 = 3 [2] + 10 + 2) - some#0,SET test value formatter: 13 - 20711 record (17 = 3 [4] + 13 + 1) - something#0,SET test value formatter: 3 - 20728 record (15 = 3 [5] + 11 + 1) - sometime#0,SET test value formatter: 1 - 20743 record (13 = 3 [8] + 9 + 1) - sometimes#0,SET test value formatter: 1 - 20756 record (16 = 3 [4] + 12 + 1) - somewhat#0,SET test value formatter: 1 - 20772 record (13 = 3 [2] + 9 + 1) - son#0,SET test value formatter: 3 - 20785 record (14 = 3 [3] + 10 + 1) - songs#0,SET test value formatter: 1 - 20799 record (14 = 3 [2] + 10 + 1) - sore#0,SET test value formatter: 1 - 20813 record (15 = 3 [3] + 11 + 1) - sorrow#0,SET test value formatter: 3 - 20828 record (13 = 3 [4] + 9 + 1) - sorry#0,SET test value formatter: 1 - 20841 record (13 = 3 [3] + 9 + 1) - sort#0,SET test value formatter: 1 - 20854 record (14 = 3 [2] + 10 + 1) - soul#0,SET test value formatter: 8 - 20868 record (13 = 3 [4] + 9 + 1) - souls#0,SET test value formatter: 1 - 20881 record (14 = 3 [3] + 10 + 1) - sound#0,SET test value formatter: 2 - 20895 record (20 = 3 [0] + 16 + 1) [restart] - sounding#0,SET test value formatter: 1 - 20915 record (15 = 3 [3] + 11 + 1) - source#0,SET test value formatter: 1 - 20930 record (21 = 3 [2] + 17 + 1) - sovereignty#0,SET test value formatter: 1 - 20951 record (17 = 3 [1] + 12 + 2) - speak#0,SET test value formatter: 27 - 20968 record (15 = 3 [5] + 11 + 1) - speaking#0,SET test value formatter: 1 - 20983 record (15 = 3 [3] + 11 + 1) - speech#0,SET test value formatter: 1 - 20998 record (13 = 3 [4] + 9 + 1) - speed#0,SET test value formatter: 1 - 21011 record (14 = 3 [3] + 10 + 1) - spend#0,SET test value formatter: 1 - 21025 record (17 = 3 [2] + 13 + 1) - spheres#0,SET test value formatter: 1 - 21042 record (16 = 3 [2] + 12 + 1) - spirit#0,SET test value formatter: 8 - 21058 record (13 = 3 [6] + 9 + 1) - spirits#0,SET test value formatter: 1 - 21071 record (14 = 3 [3] + 10 + 1) - spite#0,SET test value formatter: 1 - 21085 record (15 = 3 [2] + 11 + 1) - spoke#0,SET test value formatter: 1 - 21100 record (16 = 3 [2] + 12 + 1) - spring#0,SET test value formatter: 2 - 21116 record (14 = 3 [6] + 10 + 1) - springes#0,SET test value formatter: 1 - 21130 record (17 = 3 [1] + 13 + 1) - squeak#0,SET test value formatter: 1 - 21147 record (14 = 3 [0] + 10 + 1) [restart] - st#0,SET test value formatter: 4 - 21161 record (15 = 3 [2] + 11 + 1) - stale#0,SET test value formatter: 1 - 21176 record (13 = 3 [4] + 9 + 1) - stalk#0,SET test value formatter: 1 - 21189 record (13 = 3 [5] + 9 + 1) - stalks#0,SET test value formatter: 1 - 21202 record (14 = 3 [3] + 10 + 1) - stamp#0,SET test value formatter: 1 - 21216 record (14 = 3 [3] + 10 + 1) - stand#0,SET test value formatter: 5 - 21230 record (13 = 3 [5] + 9 + 1) - stands#0,SET test value formatter: 1 - 21243 record (13 = 3 [3] + 9 + 1) - star#0,SET test value formatter: 3 - 21256 record (13 = 3 [4] + 9 + 1) - stars#0,SET test value formatter: 2 - 21269 record (13 = 3 [4] + 9 + 1) - start#0,SET test value formatter: 1 - 21282 record (14 = 3 [5] + 10 + 1) - started#0,SET test value formatter: 1 - 21296 record (14 = 3 [3] + 10 + 1) - state#0,SET test value formatter: 8 - 21310 record (14 = 3 [5] + 10 + 1) - stately#0,SET test value formatter: 1 - 21324 record (15 = 3 [4] + 11 + 1) - station#0,SET test value formatter: 1 - 21339 record (13 = 3 [3] + 9 + 1) - stay#0,SET test value formatter: 7 - 21352 record (15 = 3 [2] + 11 + 1) - steel#0,SET test value formatter: 2 - 21367 record (17 = 3 [0] + 13 + 1) [restart] - steep#0,SET test value formatter: 1 - 21384 record (17 = 3 [3] + 13 + 1) - sterling#0,SET test value formatter: 1 - 21401 record (17 = 3 [2] + 13 + 1) - stiffly#0,SET test value formatter: 1 - 21418 record (14 = 3 [3] + 10 + 1) - still#0,SET test value formatter: 8 - 21432 record (14 = 3 [3] + 10 + 1) - sting#0,SET test value formatter: 2 - 21446 record (13 = 3 [3] + 9 + 1) - stir#0,SET test value formatter: 2 - 21459 record (16 = 3 [4] + 12 + 1) - stirring#0,SET test value formatter: 1 - 21475 record (15 = 3 [2] + 11 + 1) - stole#0,SET test value formatter: 1 - 21490 record (16 = 3 [3] + 12 + 1) - stomach#0,SET test value formatter: 1 - 21506 record (14 = 3 [3] + 10 + 1) - stood#0,SET test value formatter: 2 - 21520 record (13 = 3 [3] + 9 + 1) - stop#0,SET test value formatter: 1 - 21533 record (14 = 3 [3] + 10 + 1) - story#0,SET test value formatter: 1 - 21547 record (17 = 3 [2] + 13 + 1) - strange#0,SET test value formatter: 6 - 21564 record (13 = 3 [7] + 9 + 1) - stranger#0,SET test value formatter: 1 - 21577 record (16 = 3 [3] + 12 + 1) - streets#0,SET test value formatter: 1 - 21593 record (15 = 3 [3] + 11 + 1) - strict#0,SET test value formatter: 1 - 21608 record (18 = 3 [0] + 14 + 1) [restart] - strike#0,SET test value formatter: 2 - 21626 record (16 = 3 [3] + 12 + 1) - strokes#0,SET test value formatter: 1 - 21642 record (14 = 3 [4] + 10 + 1) - strong#0,SET test value formatter: 1 - 21656 record (15 = 3 [3] + 11 + 1) - struck#0,SET test value formatter: 2 - 21671 record (22 = 3 [2] + 18 + 1) - stubbornness#0,SET test value formatter: 1 - 21693 record (16 = 3 [3] + 12 + 1) - student#0,SET test value formatter: 1 - 21709 record (14 = 3 [3] + 10 + 1) - stung#0,SET test value formatter: 1 - 21723 record (18 = 3 [1] + 14 + 1) - subject#0,SET test value formatter: 3 - 21741 record (18 = 3 [3] + 14 + 1) - substance#0,SET test value formatter: 1 - 21759 record (15 = 3 [2] + 10 + 2) - such#0,SET test value formatter: 10 - 21774 record (16 = 3 [2] + 12 + 1) - sudden#0,SET test value formatter: 1 - 21790 record (14 = 3 [2] + 10 + 1) - suit#0,SET test value formatter: 1 - 21804 record (13 = 3 [4] + 9 + 1) - suits#0,SET test value formatter: 3 - 21817 record (20 = 3 [2] + 16 + 1) - sulphurous#0,SET test value formatter: 1 - 21837 record (16 = 3 [2] + 12 + 1) - summit#0,SET test value formatter: 1 - 21853 record (15 = 3 [4] + 11 + 1) - summons#0,SET test value formatter: 1 - 21868 record (15 = 3 [0] + 11 + 1) [restart] - sun#0,SET test value formatter: 2 - 21883 record (15 = 3 [3] + 11 + 1) - sunday#0,SET test value formatter: 1 - 21898 record (20 = 3 [2] + 16 + 1) - suppliance#0,SET test value formatter: 1 - 21918 record (16 = 3 [4] + 12 + 1) - supposal#0,SET test value formatter: 1 - 21934 record (16 = 3 [4] + 12 + 1) - suppress#0,SET test value formatter: 1 - 21950 record (14 = 3 [2] + 10 + 1) - sure#0,SET test value formatter: 1 - 21964 record (18 = 3 [3] + 14 + 1) - surprised#0,SET test value formatter: 1 - 21982 record (18 = 3 [3] + 14 + 1) - surrender#0,SET test value formatter: 1 - 22000 record (17 = 3 [3] + 13 + 1) - survivor#0,SET test value formatter: 1 - 22017 record (21 = 3 [2] + 17 + 1) - suspiration#0,SET test value formatter: 1 - 22038 record (16 = 3 [3] + 12 + 1) - sustain#0,SET test value formatter: 1 - 22054 record (21 = 3 [1] + 17 + 1) - swaggering#0,SET test value formatter: 1 - 22075 record (16 = 3 [2] + 11 + 2) - swear#0,SET test value formatter: 10 - 22091 record (14 = 3 [4] + 10 + 1) - sweaty#0,SET test value formatter: 1 - 22105 record (14 = 3 [3] + 10 + 1) - sweep#0,SET test value formatter: 1 - 22119 record (13 = 3 [4] + 9 + 1) - sweet#0,SET test value formatter: 2 - 22132 record (17 = 3 [0] + 13 + 1) [restart] - swift#0,SET test value formatter: 2 - 22149 record (16 = 3 [3] + 12 + 1) - swinish#0,SET test value formatter: 1 - 22165 record (15 = 3 [2] + 11 + 1) - sword#0,SET test value formatter: 5 - 22180 record (13 = 3 [4] + 9 + 1) - sworn#0,SET test value formatter: 2 - 22193 record (14 = 3 [0] + 9 + 2) - t#0,SET test value formatter: 18 - 22207 record (13 = 3 [1] + 9 + 1) - ta#0,SET test value formatter: 1 - 22220 record (15 = 3 [2] + 11 + 1) - table#0,SET test value formatter: 1 - 22235 record (13 = 3 [5] + 9 + 1) - tables#0,SET test value formatter: 2 - 22248 record (15 = 3 [2] + 11 + 1) - taint#0,SET test value formatter: 1 - 22263 record (15 = 3 [2] + 10 + 2) - take#0,SET test value formatter: 10 - 22278 record (13 = 3 [4] + 9 + 1) - taken#0,SET test value formatter: 1 - 22291 record (13 = 3 [4] + 9 + 1) - takes#0,SET test value formatter: 3 - 22304 record (14 = 3 [2] + 10 + 1) - tale#0,SET test value formatter: 1 - 22318 record (13 = 3 [3] + 9 + 1) - talk#0,SET test value formatter: 1 - 22331 record (14 = 3 [2] + 10 + 1) - task#0,SET test value formatter: 1 - 22345 record (13 = 3 [2] + 9 + 1) - tax#0,SET test value formatter: 1 - 22358 record (17 = 3 [0] + 13 + 1) [restart] - teach#0,SET test value formatter: 2 - 22375 record (14 = 3 [3] + 10 + 1) - tears#0,SET test value formatter: 2 - 22389 record (14 = 3 [2] + 10 + 1) - tell#0,SET test value formatter: 9 - 22403 record (16 = 3 [2] + 12 + 1) - temple#0,SET test value formatter: 1 - 22419 [restart 20429] - 22423 [restart 20664] - 22427 [restart 20895] - 22431 [restart 21147] - 22435 [restart 21367] - 22439 [restart 21608] - 22443 [restart 21868] - 22447 [restart 22132] - 22451 [restart 22358] - 22459 [trailer compression=none checksum=0x53c39637] - 22464 data (2035) - 22464 record (17 = 3 [0] + 13 + 1) [restart] - tempt#0,SET test value formatter: 1 - 22481 record (17 = 3 [2] + 13 + 1) - tenable#0,SET test value formatter: 1 - 22498 record (18 = 3 [4] + 14 + 1) - tenantless#0,SET test value formatter: 1 - 22516 record (13 = 3 [3] + 9 + 1) - tend#0,SET test value formatter: 1 - 22529 record (14 = 3 [4] + 10 + 1) - tender#0,SET test value formatter: 2 - 22543 record (13 = 3 [6] + 9 + 1) - tenders#0,SET test value formatter: 3 - 22556 record (14 = 3 [2] + 10 + 1) - term#0,SET test value formatter: 2 - 22570 record (13 = 3 [4] + 9 + 1) - terms#0,SET test value formatter: 2 - 22583 record (16 = 3 [2] + 12 + 1) - tether#0,SET test value formatter: 1 - 22599 record (15 = 3 [3] + 11 + 1) - tetter#0,SET test value formatter: 1 - 22614 record (16 = 3 [1] + 11 + 2) - than#0,SET test value formatter: 15 - 22630 record (14 = 3 [4] + 10 + 1) - thanks#0,SET test value formatter: 2 - 22644 record (14 = 3 [3] + 9 + 2) - that#0,SET test value formatter: 83 - 22658 record (13 = 3 [3] + 9 + 1) - thaw#0,SET test value formatter: 1 - 22671 record (15 = 3 [2] + 9 + 3) - the#0,SET test value formatter: 237 - 22686 record (14 = 3 [3] + 9 + 2) - thee#0,SET test value formatter: 23 - 22700 record (18 = 3 [0] + 13 + 2) [restart] - their#0,SET test value formatter: 10 - 22718 record (14 = 3 [3] + 9 + 2) - them#0,SET test value formatter: 10 - 22732 record (13 = 3 [4] + 9 + 1) - theme#0,SET test value formatter: 1 - 22745 record (14 = 3 [3] + 9 + 2) - then#0,SET test value formatter: 15 - 22759 record (15 = 3 [3] + 10 + 2) - there#0,SET test value formatter: 18 - 22774 record (16 = 3 [5] + 12 + 1) - therefore#0,SET test value formatter: 4 - 22790 record (14 = 3 [5] + 10 + 1) - thereto#0,SET test value formatter: 1 - 22804 record (15 = 3 [3] + 10 + 2) - these#0,SET test value formatter: 13 - 22819 record (14 = 3 [3] + 10 + 1) - thews#0,SET test value formatter: 1 - 22833 record (14 = 3 [3] + 9 + 2) - they#0,SET test value formatter: 14 - 22847 record (14 = 3 [2] + 10 + 1) - thin#0,SET test value formatter: 1 - 22861 record (13 = 3 [4] + 9 + 1) - thine#0,SET test value formatter: 3 - 22874 record (13 = 3 [4] + 9 + 1) - thing#0,SET test value formatter: 6 - 22887 record (13 = 3 [5] + 9 + 1) - things#0,SET test value formatter: 3 - 22900 record (14 = 3 [4] + 9 + 2) - think#0,SET test value formatter: 16 - 22914 record (15 = 3 [5] + 11 + 1) - thinking#0,SET test value formatter: 1 - 22929 record (17 = 3 [0] + 13 + 1) [restart] - third#0,SET test value formatter: 1 - 22946 record (14 = 3 [3] + 9 + 2) - this#0,SET test value formatter: 67 - 22960 record (16 = 3 [2] + 12 + 1) - thorns#0,SET test value formatter: 1 - 22976 record (13 = 3 [5] + 9 + 1) - thorny#0,SET test value formatter: 1 - 22989 record (14 = 3 [3] + 10 + 1) - those#0,SET test value formatter: 7 - 23003 record (14 = 3 [3] + 9 + 2) - thou#0,SET test value formatter: 28 - 23017 record (15 = 3 [4] + 10 + 2) - though#0,SET test value formatter: 10 - 23032 record (13 = 3 [6] + 9 + 1) - thought#0,SET test value formatter: 2 - 23045 record (13 = 3 [7] + 9 + 1) - thoughts#0,SET test value formatter: 4 - 23058 record (16 = 3 [2] + 12 + 1) - thrice#0,SET test value formatter: 1 - 23074 record (14 = 3 [4] + 10 + 1) - thrift#0,SET test value formatter: 2 - 23088 record (15 = 3 [3] + 11 + 1) - throat#0,SET test value formatter: 1 - 23103 record (14 = 3 [4] + 10 + 1) - throne#0,SET test value formatter: 2 - 23117 record (15 = 3 [4] + 11 + 1) - through#0,SET test value formatter: 3 - 23132 record (13 = 3 [4] + 9 + 1) - throw#0,SET test value formatter: 1 - 23145 record (17 = 3 [2] + 13 + 1) - thunder#0,SET test value formatter: 1 - 23162 record (16 = 3 [0] + 12 + 1) [restart] - thus#0,SET test value formatter: 9 - 23178 record (14 = 3 [2] + 9 + 2) - thy#0,SET test value formatter: 36 - 23192 record (16 = 3 [3] + 12 + 1) - thyself#0,SET test value formatter: 1 - 23208 record (15 = 3 [1] + 11 + 1) - till#0,SET test value formatter: 4 - 23223 record (15 = 3 [2] + 10 + 2) - time#0,SET test value formatter: 10 - 23238 record (13 = 3 [4] + 9 + 1) - times#0,SET test value formatter: 1 - 23251 record (14 = 3 [2] + 9 + 2) - tis#0,SET test value formatter: 22 - 23265 record (15 = 3 [1] + 9 + 3) - to#0,SET test value formatter: 192 - 23280 record (13 = 3 [2] + 9 + 1) - toe#0,SET test value formatter: 1 - 23293 record (18 = 3 [2] + 14 + 1) - together#0,SET test value formatter: 7 - 23311 record (15 = 3 [2] + 11 + 1) - toils#0,SET test value formatter: 1 - 23326 record (14 = 3 [2] + 10 + 1) - told#0,SET test value formatter: 2 - 23340 record (16 = 3 [2] + 12 + 1) - tongue#0,SET test value formatter: 4 - 23356 record (13 = 3 [2] + 9 + 1) - too#0,SET test value formatter: 9 - 23369 record (13 = 3 [2] + 9 + 1) - top#0,SET test value formatter: 1 - 23382 record (20 = 3 [2] + 16 + 1) - tormenting#0,SET test value formatter: 1 - 23402 record (20 = 3 [0] + 16 + 1) [restart] - touching#0,SET test value formatter: 3 - 23422 record (16 = 3 [2] + 12 + 1) - toward#0,SET test value formatter: 4 - 23438 record (13 = 3 [2] + 9 + 1) - toy#0,SET test value formatter: 1 - 23451 record (13 = 3 [3] + 9 + 1) - toys#0,SET test value formatter: 1 - 23464 record (19 = 3 [1] + 15 + 1) - traduced#0,SET test value formatter: 1 - 23483 record (16 = 3 [3] + 12 + 1) - tragedy#0,SET test value formatter: 1 - 23499 record (15 = 3 [3] + 11 + 1) - trains#0,SET test value formatter: 1 - 23514 record (18 = 3 [4] + 14 + 1) - traitorous#0,SET test value formatter: 1 - 23532 record (18 = 3 [3] + 14 + 1) - trappings#0,SET test value formatter: 1 - 23550 record (16 = 3 [2] + 12 + 1) - treads#0,SET test value formatter: 1 - 23566 record (16 = 3 [4] + 12 + 1) - treasure#0,SET test value formatter: 2 - 23582 record (16 = 3 [3] + 12 + 1) - tremble#0,SET test value formatter: 1 - 23598 record (15 = 3 [2] + 11 + 1) - tried#0,SET test value formatter: 1 - 23613 record (17 = 3 [3] + 13 + 1) - trifling#0,SET test value formatter: 1 - 23630 record (16 = 3 [3] + 12 + 1) - triumph#0,SET test value formatter: 1 - 23646 record (16 = 3 [3] + 12 + 1) - trivial#0,SET test value formatter: 1 - 23662 record (19 = 3 [0] + 15 + 1) [restart] - trouble#0,SET test value formatter: 1 - 23681 record (13 = 3 [7] + 9 + 1) - troubles#0,SET test value formatter: 1 - 23694 record (16 = 3 [2] + 12 + 1) - truant#0,SET test value formatter: 2 - 23710 record (13 = 3 [3] + 9 + 1) - true#0,SET test value formatter: 5 - 23723 record (17 = 3 [4] + 13 + 1) - truepenny#0,SET test value formatter: 1 - 23740 record (14 = 3 [3] + 10 + 1) - truly#0,SET test value formatter: 1 - 23754 record (16 = 3 [3] + 12 + 1) - trumpet#0,SET test value formatter: 2 - 23770 record (13 = 3 [7] + 9 + 1) - trumpets#0,SET test value formatter: 1 - 23783 record (18 = 3 [3] + 14 + 1) - truncheon#0,SET test value formatter: 1 - 23801 record (16 = 3 [3] + 12 + 1) - truster#0,SET test value formatter: 1 - 23817 record (14 = 3 [3] + 10 + 1) - truth#0,SET test value formatter: 2 - 23831 record (15 = 3 [1] + 11 + 1) - tush#0,SET test value formatter: 2 - 23846 record (17 = 3 [1] + 13 + 1) - twelve#0,SET test value formatter: 3 - 23863 record (14 = 3 [3] + 10 + 1) - twere#0,SET test value formatter: 1 - 23877 record (15 = 3 [2] + 11 + 1) - twice#0,SET test value formatter: 2 - 23892 record (14 = 3 [3] + 10 + 1) - twill#0,SET test value formatter: 2 - 23906 record (17 = 3 [0] + 13 + 1) [restart] - twixt#0,SET test value formatter: 1 - 23923 record (13 = 3 [2] + 9 + 1) - two#0,SET test value formatter: 5 - 23936 record (18 = 3 [0] + 14 + 1) - ubique#0,SET test value formatter: 1 - 23954 record (17 = 3 [1] + 13 + 1) - unanel#0,SET test value formatter: 1 - 23971 record (15 = 3 [2] + 11 + 1) - uncle#0,SET test value formatter: 5 - 23986 record (17 = 3 [2] + 13 + 1) - undergo#0,SET test value formatter: 1 - 24003 record (17 = 3 [5] + 13 + 1) - understand#0,SET test value formatter: 1 - 24020 record (15 = 3 [10] + 11 + 1) - understanding#0,SET test value formatter: 2 - 24035 record (21 = 3 [2] + 17 + 1) - uneffectual#0,SET test value formatter: 1 - 24056 record (19 = 3 [2] + 15 + 1) - unfledged#0,SET test value formatter: 1 - 24075 record (15 = 3 [3] + 11 + 1) - unfold#0,SET test value formatter: 3 - 24090 record (16 = 3 [4] + 12 + 1) - unforced#0,SET test value formatter: 1 - 24106 record (18 = 3 [5] + 14 + 1) - unfortified#0,SET test value formatter: 1 - 24124 record (20 = 3 [2] + 16 + 1) - ungracious#0,SET test value formatter: 1 - 24144 record (16 = 3 [2] + 12 + 1) - unhand#0,SET test value formatter: 1 - 24160 record (15 = 3 [3] + 11 + 1) - unholy#0,SET test value formatter: 1 - 24175 record (20 = 3 [0] + 16 + 1) [restart] - unhousel#0,SET test value formatter: 1 - 24195 record (20 = 3 [2] + 16 + 1) - unimproved#0,SET test value formatter: 1 - 24215 record (17 = 3 [2] + 13 + 1) - unmanly#0,SET test value formatter: 1 - 24232 record (14 = 3 [4] + 10 + 1) - unmask#0,SET test value formatter: 1 - 24246 record (15 = 3 [5] + 11 + 1) - unmaster#0,SET test value formatter: 1 - 24261 record (14 = 3 [3] + 10 + 1) - unmix#0,SET test value formatter: 1 - 24275 record (19 = 3 [2] + 15 + 1) - unnatural#0,SET test value formatter: 2 - 24294 record (22 = 3 [2] + 18 + 1) - unprevailing#0,SET test value formatter: 1 - 24316 record (20 = 3 [4] + 16 + 1) - unprofitable#0,SET test value formatter: 1 - 24336 record (21 = 3 [5] + 17 + 1) - unproportioned#0,SET test value formatter: 1 - 24357 record (21 = 3 [2] + 17 + 1) - unrighteous#0,SET test value formatter: 1 - 24378 record (18 = 3 [2] + 14 + 1) - unschool#0,SET test value formatter: 1 - 24396 record (17 = 3 [3] + 13 + 1) - unsifted#0,SET test value formatter: 1 - 24413 record (14 = 3 [2] + 10 + 1) - unto#0,SET test value formatter: 4 - 24427 record (18 = 3 [2] + 14 + 1) - unvalued#0,SET test value formatter: 1 - 24445 record (18 = 3 [2] + 14 + 1) - unweeded#0,SET test value formatter: 1 - 24463 [restart 22464] - 24467 [restart 22700] - 24471 [restart 22929] - 24475 [restart 23162] - 24479 [restart 23402] - 24483 [restart 23662] - 24487 [restart 23906] - 24491 [restart 24175] - 24499 [trailer compression=none checksum=0xe12c134e] - 24504 data (2036) - 24504 record (15 = 3 [0] + 10 + 2) [restart] - up#0,SET test value formatter: 10 - 24519 record (19 = 3 [2] + 15 + 1) - uphoarded#0,SET test value formatter: 1 - 24538 record (15 = 3 [2] + 10 + 2) - upon#0,SET test value formatter: 18 - 24553 record (14 = 3 [1] + 9 + 2) - us#0,SET test value formatter: 19 - 24567 record (13 = 3 [2] + 9 + 1) - use#0,SET test value formatter: 1 - 24580 record (13 = 3 [3] + 9 + 1) - uses#0,SET test value formatter: 1 - 24593 record (15 = 3 [2] + 11 + 1) - usurp#0,SET test value formatter: 1 - 24608 record (13 = 3 [0] + 9 + 1) - v#0,SET test value formatter: 1 - 24621 record (17 = 3 [1] + 13 + 1) - vailed#0,SET test value formatter: 1 - 24638 record (13 = 3 [3] + 9 + 1) - vain#0,SET test value formatter: 1 - 24651 record (17 = 3 [2] + 13 + 1) - valiant#0,SET test value formatter: 2 - 24668 record (16 = 3 [2] + 12 + 1) - vanish#0,SET test value formatter: 1 - 24684 record (19 = 3 [3] + 15 + 1) - vanquisher#0,SET test value formatter: 1 - 24703 record (14 = 3 [2] + 10 + 1) - vast#0,SET test value formatter: 1 - 24717 record (15 = 3 [1] + 11 + 1) - very#0,SET test value formatter: 9 - 24732 record (15 = 3 [1] + 11 + 1) - vial#0,SET test value formatter: 1 - 24747 record (19 = 3 [0] + 15 + 1) [restart] - vicious#0,SET test value formatter: 1 - 24766 record (16 = 3 [2] + 12 + 1) - vigour#0,SET test value formatter: 1 - 24782 record (14 = 3 [2] + 10 + 1) - vile#0,SET test value formatter: 1 - 24796 record (16 = 3 [3] + 12 + 1) - villain#0,SET test value formatter: 5 - 24812 record (18 = 3 [2] + 14 + 1) - violence#0,SET test value formatter: 2 - 24830 record (13 = 3 [5] + 9 + 1) - violet#0,SET test value formatter: 1 - 24843 record (16 = 3 [2] + 12 + 1) - virtue#0,SET test value formatter: 3 - 24859 record (13 = 3 [6] + 9 + 1) - virtues#0,SET test value formatter: 1 - 24872 record (15 = 3 [5] + 11 + 1) - virtuous#0,SET test value formatter: 1 - 24887 record (16 = 3 [2] + 12 + 1) - visage#0,SET test value formatter: 1 - 24903 record (15 = 3 [3] + 11 + 1) - vision#0,SET test value formatter: 1 - 24918 record (13 = 3 [4] + 9 + 1) - visit#0,SET test value formatter: 2 - 24931 record (16 = 3 [1] + 12 + 1) - voice#0,SET test value formatter: 5 - 24947 record (19 = 3 [2] + 15 + 1) - voltimand#0,SET test value formatter: 4 - 24966 record (15 = 3 [3] + 11 + 1) - volume#0,SET test value formatter: 1 - 24981 record (13 = 3 [2] + 9 + 1) - vow#0,SET test value formatter: 1 - 24994 record (16 = 3 [0] + 12 + 1) [restart] - vows#0,SET test value formatter: 3 - 25010 record (17 = 3 [1] + 13 + 1) - vulgar#0,SET test value formatter: 2 - 25027 record (16 = 3 [0] + 12 + 1) - wake#0,SET test value formatter: 1 - 25043 record (14 = 3 [2] + 10 + 1) - walk#0,SET test value formatter: 6 - 25057 record (13 = 3 [4] + 9 + 1) - walks#0,SET test value formatter: 1 - 25070 record (15 = 3 [2] + 11 + 1) - wants#0,SET test value formatter: 1 - 25085 record (13 = 3 [2] + 9 + 1) - war#0,SET test value formatter: 1 - 25098 record (16 = 3 [3] + 12 + 1) - warlike#0,SET test value formatter: 2 - 25114 record (16 = 3 [3] + 12 + 1) - warning#0,SET test value formatter: 1 - 25130 record (16 = 3 [3] + 12 + 1) - warrant#0,SET test value formatter: 1 - 25146 record (13 = 3 [3] + 9 + 1) - wars#0,SET test value formatter: 1 - 25159 record (13 = 3 [3] + 9 + 1) - wary#0,SET test value formatter: 1 - 25172 record (14 = 3 [2] + 9 + 2) - was#0,SET test value formatter: 17 - 25186 record (16 = 3 [3] + 12 + 1) - wassail#0,SET test value formatter: 1 - 25202 record (16 = 3 [2] + 11 + 2) - watch#0,SET test value formatter: 12 - 25218 record (15 = 3 [5] + 11 + 1) - watchman#0,SET test value formatter: 1 - 25233 record (17 = 3 [0] + 13 + 1) [restart] - waves#0,SET test value formatter: 3 - 25250 record (15 = 3 [2] + 11 + 1) - waxes#0,SET test value formatter: 2 - 25265 record (13 = 3 [2] + 9 + 1) - way#0,SET test value formatter: 2 - 25278 record (13 = 3 [3] + 9 + 1) - ways#0,SET test value formatter: 1 - 25291 record (14 = 3 [1] + 9 + 2) - we#0,SET test value formatter: 34 - 25305 record (14 = 3 [2] + 10 + 1) - weak#0,SET test value formatter: 1 - 25319 record (14 = 3 [3] + 10 + 1) - wears#0,SET test value formatter: 1 - 25333 record (13 = 3 [4] + 9 + 1) - weary#0,SET test value formatter: 1 - 25346 record (17 = 3 [2] + 13 + 1) - wedding#0,SET test value formatter: 1 - 25363 record (14 = 3 [2] + 10 + 1) - weed#0,SET test value formatter: 1 - 25377 record (13 = 3 [3] + 9 + 1) - week#0,SET test value formatter: 1 - 25390 record (15 = 3 [2] + 11 + 1) - weigh#0,SET test value formatter: 2 - 25405 record (15 = 3 [5] + 11 + 1) - weighing#0,SET test value formatter: 1 - 25420 record (17 = 3 [2] + 13 + 1) - welcome#0,SET test value formatter: 3 - 25437 record (14 = 3 [3] + 9 + 2) - well#0,SET test value formatter: 14 - 25451 record (14 = 3 [2] + 10 + 1) - went#0,SET test value formatter: 1 - 25465 record (16 = 3 [0] + 12 + 1) [restart] - were#0,SET test value formatter: 3 - 25481 record (14 = 3 [2] + 10 + 1) - west#0,SET test value formatter: 1 - 25495 record (16 = 3 [4] + 12 + 1) - westward#0,SET test value formatter: 1 - 25511 record (16 = 3 [1] + 12 + 1) - wharf#0,SET test value formatter: 1 - 25527 record (14 = 3 [3] + 9 + 2) - what#0,SET test value formatter: 42 - 25541 record (18 = 3 [4] + 14 + 1) - whatsoever#0,SET test value formatter: 1 - 25559 record (14 = 3 [2] + 10 + 1) - when#0,SET test value formatter: 8 - 25573 record (14 = 3 [4] + 10 + 1) - whence#0,SET test value formatter: 1 - 25587 record (14 = 3 [3] + 10 + 1) - where#0,SET test value formatter: 9 - 25601 record (16 = 3 [5] + 12 + 1) - wherefore#0,SET test value formatter: 1 - 25617 record (14 = 3 [5] + 10 + 1) - wherein#0,SET test value formatter: 4 - 25631 record (14 = 3 [5] + 10 + 1) - whereof#0,SET test value formatter: 2 - 25645 record (16 = 3 [3] + 12 + 1) - whether#0,SET test value formatter: 1 - 25661 record (16 = 3 [2] + 11 + 2) - which#0,SET test value formatter: 16 - 25677 record (14 = 3 [3] + 10 + 1) - while#0,SET test value formatter: 2 - 25691 record (13 = 3 [5] + 9 + 1) - whiles#0,SET test value formatter: 1 - 25704 record (18 = 3 [0] + 14 + 1) [restart] - whilst#0,SET test value formatter: 1 - 25722 record (17 = 3 [3] + 13 + 1) - whirling#0,SET test value formatter: 1 - 25739 record (16 = 3 [3] + 12 + 1) - whisper#0,SET test value formatter: 1 - 25755 record (13 = 3 [2] + 9 + 1) - who#0,SET test value formatter: 8 - 25768 record (14 = 3 [3] + 10 + 1) - whole#0,SET test value formatter: 3 - 25782 record (16 = 3 [5] + 12 + 1) - wholesome#0,SET test value formatter: 2 - 25798 record (14 = 3 [3] + 10 + 1) - whose#0,SET test value formatter: 8 - 25812 record (14 = 3 [2] + 9 + 2) - why#0,SET test value formatter: 13 - 25826 record (17 = 3 [1] + 13 + 1) - wicked#0,SET test value formatter: 3 - 25843 record (14 = 3 [2] + 10 + 1) - wide#0,SET test value formatter: 1 - 25857 record (14 = 3 [2] + 10 + 1) - wife#0,SET test value formatter: 1 - 25871 record (14 = 3 [2] + 10 + 1) - wild#0,SET test value formatter: 1 - 25885 record (14 = 3 [3] + 9 + 2) - will#0,SET test value formatter: 25 - 25899 record (15 = 3 [4] + 11 + 1) - willing#0,SET test value formatter: 1 - 25914 record (14 = 3 [7] + 10 + 1) - willingly#0,SET test value formatter: 1 - 25928 record (13 = 3 [3] + 9 + 1) - wilt#0,SET test value formatter: 1 - 25941 record (16 = 3 [0] + 12 + 1) [restart] - wind#0,SET test value formatter: 2 - 25957 record (13 = 3 [4] + 9 + 1) - winds#0,SET test value formatter: 2 - 25970 record (13 = 3 [4] + 9 + 1) - windy#0,SET test value formatter: 1 - 25983 record (14 = 3 [3] + 10 + 1) - wings#0,SET test value formatter: 1 - 25997 record (14 = 3 [2] + 10 + 1) - wipe#0,SET test value formatter: 1 - 26011 record (16 = 3 [2] + 12 + 1) - wisdom#0,SET test value formatter: 1 - 26027 record (13 = 3 [6] + 9 + 1) - wisdoms#0,SET test value formatter: 1 - 26040 record (15 = 3 [3] + 11 + 1) - wisest#0,SET test value formatter: 1 - 26055 record (15 = 3 [3] + 11 + 1) - wishes#0,SET test value formatter: 1 - 26070 record (13 = 3 [2] + 9 + 1) - wit#0,SET test value formatter: 2 - 26083 record (14 = 3 [3] + 10 + 1) - witch#0,SET test value formatter: 1 - 26097 record (17 = 3 [5] + 13 + 1) - witchcraft#0,SET test value formatter: 1 - 26114 record (14 = 3 [3] + 9 + 2) - with#0,SET test value formatter: 65 - 26128 record (14 = 3 [4] + 10 + 1) - withal#0,SET test value formatter: 2 - 26142 record (15 = 3 [4] + 10 + 2) - within#0,SET test value formatter: 11 - 26157 record (15 = 3 [4] + 11 + 1) - without#0,SET test value formatter: 3 - 26172 record (19 = 3 [0] + 15 + 1) [restart] - witness#0,SET test value formatter: 1 - 26191 record (19 = 3 [3] + 15 + 1) - wittenberg#0,SET test value formatter: 4 - 26210 record (14 = 3 [1] + 10 + 1) - woe#0,SET test value formatter: 3 - 26224 record (15 = 3 [2] + 11 + 1) - woman#0,SET test value formatter: 2 - 26239 record (13 = 3 [3] + 9 + 1) - womb#0,SET test value formatter: 1 - 26252 record (13 = 3 [2] + 9 + 1) - won#0,SET test value formatter: 1 - 26265 record (15 = 3 [3] + 11 + 1) - wonder#0,SET test value formatter: 1 - 26280 record (15 = 3 [6] + 11 + 1) - wonderful#0,SET test value formatter: 1 - 26295 record (16 = 3 [4] + 12 + 1) - wondrous#0,SET test value formatter: 1 - 26311 record (13 = 3 [3] + 9 + 1) - wont#0,SET test value formatter: 1 - 26324 record (19 = 3 [2] + 15 + 1) - woodcocks#0,SET test value formatter: 1 - 26343 record (14 = 3 [2] + 10 + 1) - word#0,SET test value formatter: 3 - 26357 record (13 = 3 [4] + 9 + 1) - words#0,SET test value formatter: 2 - 26370 record (13 = 3 [3] + 9 + 1) - wore#0,SET test value formatter: 1 - 26383 record (13 = 3 [3] + 9 + 1) - work#0,SET test value formatter: 2 - 26396 record (14 = 3 [3] + 10 + 1) - world#0,SET test value formatter: 3 - 26410 record (16 = 3 [0] + 12 + 1) [restart] - worm#0,SET test value formatter: 1 - 26426 record (14 = 3 [3] + 10 + 1) - worth#0,SET test value formatter: 1 - 26440 record (13 = 3 [5] + 9 + 1) - worthy#0,SET test value formatter: 1 - 26453 record (16 = 3 [2] + 11 + 2) - would#0,SET test value formatter: 14 - 26469 record (14 = 3 [5] + 10 + 1) - wouldst#0,SET test value formatter: 3 - 26483 record (17 = 3 [1] + 13 + 1) - wretch#0,SET test value formatter: 1 - 26500 [restart 24504] - 26504 [restart 24747] - 26508 [restart 24994] - 26512 [restart 25233] - 26516 [restart 25465] - 26520 [restart 25704] - 26524 [restart 25941] - 26528 [restart 26172] - 26532 [restart 26410] - 26540 [trailer compression=none checksum=0x99c293d8] - 26545 data (249) - 26545 record (16 = 3 [0] + 12 + 1) [restart] - writ#0,SET test value formatter: 2 - 26561 record (15 = 3 [4] + 11 + 1) - writing#0,SET test value formatter: 1 - 26576 record (15 = 3 [2] + 11 + 1) - wrong#0,SET test value formatter: 1 - 26591 record (15 = 3 [2] + 11 + 1) - wrung#0,SET test value formatter: 1 - 26606 record (15 = 3 [0] + 11 + 1) - yea#0,SET test value formatter: 1 - 26621 record (13 = 3 [2] + 9 + 1) - yes#0,SET test value formatter: 4 - 26634 record (20 = 3 [3] + 16 + 1) - yesternight#0,SET test value formatter: 1 - 26654 record (13 = 3 [2] + 9 + 1) - yet#0,SET test value formatter: 7 - 26667 record (19 = 3 [1] + 15 + 1) - yielding#0,SET test value formatter: 1 - 26686 record (14 = 3 [1] + 10 + 1) - yon#0,SET test value formatter: 1 - 26700 record (13 = 3 [3] + 9 + 1) - yond#0,SET test value formatter: 1 - 26713 record (15 = 3 [2] + 9 + 3) - you#0,SET test value formatter: 110 - 26728 record (14 = 3 [3] + 10 + 1) - young#0,SET test value formatter: 6 - 26742 record (14 = 3 [3] + 9 + 2) - your#0,SET test value formatter: 49 - 26756 record (16 = 3 [4] + 12 + 1) - yourself#0,SET test value formatter: 7 - 26772 record (14 = 3 [3] + 10 + 1) - youth#0,SET test value formatter: 5 - 26786 [restart 26545] - 26794 [trailer compression=none checksum=0x2bb2856] - 26799 index (120) - 26799 block:0/2041 [restart] - 26817 block:2046/2044 [restart] - 26839 block:4095/2039 [restart] - 26858 block:6139/2036 [restart] - 26876 block:8180/2032 [restart] - 26895 [restart 26799] - 26899 [restart 26817] - 26903 [restart 26839] - 26907 [restart 26858] - 26911 [restart 26876] - 26919 [trailer compression=none checksum=0x4b1bc52e] - 26924 index (118) - 26924 block:10217/2042 [restart] - 26941 block:12264/2039 [restart] - 26959 block:14308/2037 [restart] - 26979 block:16350/2029 [restart] - 26998 block:18384/2040 [restart] - 27018 [restart 26924] - 27022 [restart 26941] - 27026 [restart 26959] - 27030 [restart 26979] - 27034 [restart 26998] - 27042 [trailer compression=none checksum=0xe1dd6a77] - 27047 index (95) - 27047 block:20429/2030 [restart] - 27068 block:22464/2035 [restart] - 27086 block:24504/2036 [restart] - 27105 block:26545/249 [restart] - 27122 [restart 27047] - 27126 [restart 27068] - 27130 [restart 27086] - 27134 [restart 27105] - 27142 [trailer compression=none checksum=0x3b1313e3] - 27147 top-index (70) - 27147 block:26799/120 [restart] - 27166 block:26924/118 [restart] - 27185 block:27047/95 [restart] - 27201 [restart 27147] - 27205 [restart 27166] - 27209 [restart 27185] - 27217 [trailer compression=none checksum=0xd20fdc47] - 27222 range-del (421) - 27222 record (13 = 3 [0] + 9 + 1) [restart] - a-a#0,RANGEDEL - 27235 record (23 = 3 [0] + 13 + 7) [restart] - beard-bearers#0,RANGEDEL - 27258 record (24 = 3 [0] + 16 + 5) [restart] - carriage-carve#0,RANGEDEL - 27282 record (21 = 3 [0] + 13 + 5) [restart] - cross-crows#0,RANGEDEL - 27303 record (23 = 3 [0] + 14 + 6) [restart] - duller-duties#0,RANGEDEL - 27326 record (21 = 3 [0] + 14 + 4) [restart] - fierce-fire#0,RANGEDEL - 27347 record (21 = 3 [0] + 13 + 5) [restart] - grace-great#0,RANGEDEL - 27368 record (17 = 3 [0] + 11 + 3) [restart] - how-ice#0,RANGEDEL - 27385 record (20 = 3 [0] + 12 + 5) [restart] - lead-lends#0,RANGEDEL - 27405 record (18 = 3 [0] + 12 + 3) [restart] - meet-met#0,RANGEDEL - 27423 record (17 = 3 [0] + 10 + 4) [restart] - of-once#0,RANGEDEL - 27440 record (25 = 3 [0] + 16 + 6) [restart] - precurse-prison#0,RANGEDEL - 27465 record (15 = 3 [0] + 9 + 3) [restart] - s-saw#0,RANGEDEL - 27480 record (19 = 3 [0] + 12 + 4) [restart] - slay-soil#0,RANGEDEL - 27499 record (24 = 3 [0] + 16 + 5) [restart] - suppress-sword#0,RANGEDEL - 27523 record (23 = 3 [0] + 16 + 4) [restart] - traduced-true#0,RANGEDEL - 27546 record (25 = 3 [0] + 15 + 7) [restart] - warning-wedding#0,RANGEDEL - 27571 [restart 27222] - 27575 [restart 27235] - 27579 [restart 27258] - 27583 [restart 27282] - 27587 [restart 27303] - 27591 [restart 27326] - 27595 [restart 27347] - 27599 [restart 27368] - 27603 [restart 27385] - 27607 [restart 27405] - 27611 [restart 27423] - 27615 [restart 27440] - 27619 [restart 27465] - 27623 [restart 27480] - 27627 [restart 27499] - 27631 [restart 27523] - 27635 [restart 27546] - 27643 [trailer compression=none checksum=0xb93b31c5] - 27648 properties (455) - 27648 rocksdb.block.based.table.index.type (43) [restart] - 27691 rocksdb.comparator (39) - 27730 rocksdb.compression (23) - 27753 rocksdb.compression_options (106) - 27859 rocksdb.data.size (15) - 27874 rocksdb.deleted.keys (15) - 27889 rocksdb.filter.size (15) - 27904 rocksdb.index.partitions (20) - 27924 rocksdb.index.size (9) - 27933 rocksdb.merge.operands (18) - 27951 rocksdb.merge.operator (13) - 27964 rocksdb.num.data.blocks (19) - 27983 rocksdb.num.entries (12) - 27995 rocksdb.num.range-deletions (19) - 28014 rocksdb.property.collectors (24) - 28038 rocksdb.raw.key.size (18) - 28056 rocksdb.raw.value.size (15) - 28071 rocksdb.top-level.index.size (24) - 28095 [restart 27648] - 28103 [trailer compression=none checksum=0x3c8612a0] - 28108 meta-index (64) - 28108 rocksdb.properties block:27648/455 [restart] - 28134 rocksdb.range_del2 block:27222/421 [restart] - 28160 [restart 28108] - 28164 [restart 28134] - 28172 [trailer compression=none checksum=0x8809b4f7] - 28177 footer (53) - 28177 checksum type: crc32c - 28178 meta: offset=28108, length=64 - 28182 index: offset=27147, length=70 - 28186 [padding] - 28218 version: 1 - 28222 magic number: 0xf09faab3f09faab3 - 28230 EOF +sstable + ├── data offset: 0 length: 2041 + │ ├── 00000 record (14 = 3 [0] + 9 + 2) [restart] + │ │ a#0,SET test value formatter: 97 + │ ├── 00014 record (17 = 3 [1] + 13 + 1) + │ │ aboard#0,SET test value formatter: 2 + │ ├── 00031 record (14 = 3 [3] + 10 + 1) + │ │ about#0,SET test value formatter: 2 + │ ├── 00045 record (14 = 3 [3] + 10 + 1) + │ │ above#0,SET test value formatter: 1 + │ ├── 00059 record (16 = 3 [2] + 12 + 1) + │ │ abroad#0,SET test value formatter: 1 + │ ├── 00075 record (16 = 3 [2] + 12 + 1) + │ │ absurd#0,SET test value formatter: 1 + │ ├── 00091 record (16 = 3 [2] + 12 + 1) + │ │ abused#0,SET test value formatter: 1 + │ ├── 00107 record (17 = 3 [1] + 13 + 1) + │ │ accord#0,SET test value formatter: 1 + │ ├── 00124 record (15 = 3 [4] + 11 + 1) + │ │ account#0,SET test value formatter: 1 + │ ├── 00139 record (22 = 3 [2] + 18 + 1) + │ │ achievements#0,SET test value formatter: 1 + │ ├── 00161 record (18 = 3 [2] + 14 + 1) + │ │ acquaint#0,SET test value formatter: 1 + │ ├── 00179 record (13 = 3 [2] + 9 + 1) + │ │ act#0,SET test value formatter: 5 + │ ├── 00192 record (15 = 3 [3] + 11 + 1) + │ │ action#0,SET test value formatter: 1 + │ ├── 00207 record (13 = 3 [6] + 9 + 1) + │ │ actions#0,SET test value formatter: 1 + │ ├── 00220 record (19 = 3 [1] + 15 + 1) + │ │ addition#0,SET test value formatter: 1 + │ ├── 00239 record (16 = 3 [3] + 12 + 1) + │ │ address#0,SET test value formatter: 1 + │ ├── 00255 record (17 = 3 [0] + 13 + 1) [restart] + │ │ adieu#0,SET test value formatter: 4 + │ ├── 00272 record (20 = 3 [2] + 16 + 1) + │ │ admiration#0,SET test value formatter: 1 + │ ├── 00292 record (18 = 3 [2] + 14 + 1) + │ │ adoption#0,SET test value formatter: 1 + │ ├── 00310 record (20 = 3 [2] + 16 + 1) + │ │ adulterate#0,SET test value formatter: 1 + │ ├── 00330 record (19 = 3 [2] + 15 + 1) + │ │ advantage#0,SET test value formatter: 1 + │ ├── 00349 record (15 = 3 [3] + 11 + 1) + │ │ advice#0,SET test value formatter: 1 + │ ├── 00364 record (17 = 3 [1] + 13 + 1) + │ │ affair#0,SET test value formatter: 2 + │ ├── 00381 record (18 = 3 [3] + 14 + 1) + │ │ affection#0,SET test value formatter: 3 + │ ├── 00399 record (15 = 3 [2] + 11 + 1) + │ │ after#0,SET test value formatter: 1 + │ ├── 00414 record (16 = 3 [5] + 12 + 1) + │ │ afternoon#0,SET test value formatter: 1 + │ ├── 00430 record (17 = 3 [1] + 12 + 2) + │ │ again#0,SET test value formatter: 13 + │ ├── 00447 record (14 = 3 [5] + 10 + 1) + │ │ against#0,SET test value formatter: 5 + │ ├── 00461 record (13 = 3 [1] + 9 + 1) + │ │ ah#0,SET test value formatter: 2 + │ ├── 00474 record (14 = 3 [1] + 10 + 1) + │ │ air#0,SET test value formatter: 5 + │ ├── 00488 record (13 = 3 [3] + 9 + 1) + │ │ airs#0,SET test value formatter: 1 + │ ├── 00501 record (15 = 3 [1] + 11 + 1) + │ │ alas#0,SET test value formatter: 1 + │ ├── 00516 record (16 = 3 [0] + 11 + 2) [restart] + │ │ all#0,SET test value formatter: 36 + │ ├── 00532 record (15 = 3 [3] + 11 + 1) + │ │ alleys#0,SET test value formatter: 1 + │ ├── 00547 record (14 = 3 [3] + 10 + 1) + │ │ allow#0,SET test value formatter: 1 + │ ├── 00561 record (16 = 3 [2] + 12 + 1) + │ │ almost#0,SET test value formatter: 4 + │ ├── 00577 record (15 = 3 [2] + 11 + 1) + │ │ alone#0,SET test value formatter: 4 + │ ├── 00592 record (13 = 3 [4] + 9 + 1) + │ │ along#0,SET test value formatter: 2 + │ ├── 00605 record (17 = 3 [2] + 13 + 1) + │ │ already#0,SET test value formatter: 1 + │ ├── 00622 record (16 = 3 [2] + 12 + 1) + │ │ always#0,SET test value formatter: 1 + │ ├── 00638 record (13 = 3 [1] + 9 + 1) + │ │ am#0,SET test value formatter: 9 + │ ├── 00651 record (16 = 3 [2] + 12 + 1) + │ │ amazed#0,SET test value formatter: 1 + │ ├── 00667 record (19 = 3 [2] + 15 + 1) + │ │ ambiguous#0,SET test value formatter: 1 + │ ├── 00686 record (17 = 3 [4] + 13 + 1) + │ │ ambitious#0,SET test value formatter: 1 + │ ├── 00703 record (14 = 3 [1] + 9 + 2) + │ │ an#0,SET test value formatter: 13 + │ ├── 00717 record (15 = 3 [2] + 9 + 3) + │ │ and#0,SET test value formatter: 227 + │ ├── 00732 record (15 = 3 [2] + 11 + 1) + │ │ angel#0,SET test value formatter: 1 + │ ├── 00747 record (13 = 3 [5] + 9 + 1) + │ │ angels#0,SET test value formatter: 1 + │ ├── 00760 record (17 = 3 [0] + 13 + 1) [restart] + │ │ anger#0,SET test value formatter: 1 + │ ├── 00777 record (14 = 3 [3] + 10 + 1) + │ │ angry#0,SET test value formatter: 1 + │ ├── 00791 record (17 = 3 [2] + 13 + 1) + │ │ another#0,SET test value formatter: 1 + │ ├── 00808 record (16 = 3 [2] + 12 + 1) + │ │ answer#0,SET test value formatter: 4 + │ ├── 00824 record (15 = 3 [2] + 11 + 1) + │ │ antic#0,SET test value formatter: 1 + │ ├── 00839 record (13 = 3 [2] + 9 + 1) + │ │ any#0,SET test value formatter: 6 + │ ├── 00852 record (18 = 3 [1] + 14 + 1) + │ │ apparel#0,SET test value formatter: 1 + │ ├── 00870 record (17 = 3 [5] + 13 + 1) + │ │ apparition#0,SET test value formatter: 2 + │ ├── 00887 record (15 = 3 [3] + 11 + 1) + │ │ appear#0,SET test value formatter: 4 + │ ├── 00902 record (13 = 3 [6] + 9 + 1) + │ │ appears#0,SET test value formatter: 1 + │ ├── 00915 record (16 = 3 [4] + 12 + 1) + │ │ appetite#0,SET test value formatter: 1 + │ ├── 00931 record (16 = 3 [3] + 12 + 1) + │ │ approve#0,SET test value formatter: 1 + │ ├── 00947 record (13 = 3 [2] + 9 + 1) + │ │ apt#0,SET test value formatter: 1 + │ ├── 00960 record (15 = 3 [1] + 10 + 2) + │ │ are#0,SET test value formatter: 21 + │ ├── 00975 record (13 = 3 [2] + 9 + 1) + │ │ arm#0,SET test value formatter: 2 + │ ├── 00988 record (14 = 3 [3] + 10 + 1) + │ │ armed#0,SET test value formatter: 2 + │ ├── 01002 record (18 = 3 [0] + 14 + 1) [restart] + │ │ armour#0,SET test value formatter: 1 + │ ├── 01020 record (13 = 3 [3] + 9 + 1) + │ │ arms#0,SET test value formatter: 2 + │ ├── 01033 record (16 = 3 [2] + 12 + 1) + │ │ arrant#0,SET test value formatter: 1 + │ ├── 01049 record (13 = 3 [2] + 9 + 1) + │ │ art#0,SET test value formatter: 6 + │ ├── 01062 record (15 = 3 [3] + 11 + 1) + │ │ artery#0,SET test value formatter: 1 + │ ├── 01077 record (16 = 3 [3] + 12 + 1) + │ │ article#0,SET test value formatter: 1 + │ ├── 01093 record (13 = 3 [7] + 9 + 1) + │ │ articles#0,SET test value formatter: 1 + │ ├── 01106 record (14 = 3 [1] + 9 + 2) + │ │ as#0,SET test value formatter: 56 + │ ├── 01120 record (15 = 3 [2] + 11 + 1) + │ │ aside#0,SET test value formatter: 1 + │ ├── 01135 record (16 = 3 [2] + 12 + 1) + │ │ asking#0,SET test value formatter: 1 + │ ├── 01151 record (16 = 3 [2] + 12 + 1) + │ │ assail#0,SET test value formatter: 1 + │ ├── 01167 record (18 = 3 [3] + 14 + 1) + │ │ assistant#0,SET test value formatter: 1 + │ ├── 01185 record (15 = 3 [3] + 11 + 1) + │ │ assume#0,SET test value formatter: 2 + │ ├── 01200 record (14 = 3 [1] + 9 + 2) + │ │ at#0,SET test value formatter: 18 + │ ├── 01214 record (20 = 3 [2] + 16 + 1) + │ │ attendants#0,SET test value formatter: 1 + │ ├── 01234 record (13 = 3 [5] + 9 + 1) + │ │ attent#0,SET test value formatter: 1 + │ ├── 01247 record (21 = 3 [0] + 17 + 1) [restart] + │ │ attribute#0,SET test value formatter: 1 + │ ├── 01268 record (19 = 3 [1] + 15 + 1) + │ │ audience#0,SET test value formatter: 1 + │ ├── 01287 record (15 = 3 [2] + 11 + 1) + │ │ aught#0,SET test value formatter: 2 + │ ├── 01302 record (20 = 3 [2] + 16 + 1) + │ │ auspicious#0,SET test value formatter: 1 + │ ├── 01322 record (16 = 3 [1] + 12 + 1) + │ │ avoid#0,SET test value formatter: 1 + │ ├── 01338 record (15 = 3 [3] + 11 + 1) + │ │ avouch#0,SET test value formatter: 1 + │ ├── 01353 record (16 = 3 [1] + 12 + 1) + │ │ awake#0,SET test value formatter: 1 + │ ├── 01369 record (13 = 3 [3] + 9 + 1) + │ │ away#0,SET test value formatter: 7 + │ ├── 01382 record (16 = 3 [2] + 12 + 1) + │ │ awhile#0,SET test value formatter: 2 + │ ├── 01398 record (13 = 3 [1] + 9 + 1) + │ │ ay#0,SET test value formatter: 7 + │ ├── 01411 record (16 = 3 [0] + 12 + 1) + │ │ baby#0,SET test value formatter: 1 + │ ├── 01427 record (14 = 3 [2] + 10 + 1) + │ │ back#0,SET test value formatter: 1 + │ ├── 01441 record (15 = 3 [2] + 11 + 1) + │ │ baked#0,SET test value formatter: 1 + │ ├── 01456 record (14 = 3 [2] + 10 + 1) + │ │ bark#0,SET test value formatter: 1 + │ ├── 01470 record (13 = 3 [3] + 9 + 1) + │ │ barr#0,SET test value formatter: 1 + │ ├── 01483 record (14 = 3 [2] + 10 + 1) + │ │ base#0,SET test value formatter: 1 + │ ├── 01497 record (17 = 3 [0] + 13 + 1) [restart] + │ │ baser#0,SET test value formatter: 1 + │ ├── 01514 record (15 = 3 [2] + 11 + 1) + │ │ bawds#0,SET test value formatter: 1 + │ ├── 01529 record (14 = 3 [1] + 9 + 2) + │ │ be#0,SET test value formatter: 42 + │ ├── 01543 record (14 = 3 [2] + 10 + 1) + │ │ bear#0,SET test value formatter: 5 + │ ├── 01557 record (13 = 3 [4] + 9 + 1) + │ │ beard#0,SET test value formatter: 1 + │ ├── 01570 record (15 = 3 [4] + 11 + 1) + │ │ bearers#0,SET test value formatter: 1 + │ ├── 01585 record (13 = 3 [4] + 9 + 1) + │ │ bears#0,SET test value formatter: 1 + │ ├── 01598 record (14 = 3 [3] + 10 + 1) + │ │ beast#0,SET test value formatter: 2 + │ ├── 01612 record (16 = 3 [3] + 12 + 1) + │ │ beating#0,SET test value formatter: 1 + │ ├── 01628 record (15 = 3 [3] + 11 + 1) + │ │ beauty#0,SET test value formatter: 1 + │ ├── 01643 record (15 = 3 [3] + 11 + 1) + │ │ beaver#0,SET test value formatter: 1 + │ ├── 01658 record (17 = 3 [2] + 13 + 1) + │ │ beckons#0,SET test value formatter: 2 + │ ├── 01675 record (13 = 3 [2] + 9 + 1) + │ │ bed#0,SET test value formatter: 4 + │ ├── 01688 record (14 = 3 [2] + 10 + 1) + │ │ been#0,SET test value formatter: 4 + │ ├── 01702 record (16 = 3 [3] + 12 + 1) + │ │ beetles#0,SET test value formatter: 1 + │ ├── 01718 record (18 = 3 [2] + 14 + 1) + │ │ befitted#0,SET test value formatter: 1 + │ ├── 01736 record (18 = 3 [0] + 14 + 1) [restart] + │ │ before#0,SET test value formatter: 6 + │ ├── 01754 record (13 = 3 [2] + 9 + 1) + │ │ beg#0,SET test value formatter: 1 + │ ├── 01767 record (16 = 3 [3] + 12 + 1) + │ │ beguile#0,SET test value formatter: 1 + │ ├── 01783 record (16 = 3 [2] + 12 + 1) + │ │ behold#0,SET test value formatter: 1 + │ ├── 01799 record (15 = 3 [4] + 11 + 1) + │ │ behoves#0,SET test value formatter: 1 + │ ├── 01814 record (15 = 3 [2] + 11 + 1) + │ │ being#0,SET test value formatter: 4 + │ ├── 01829 record (16 = 3 [2] + 12 + 1) + │ │ belief#0,SET test value formatter: 1 + │ ├── 01845 record (14 = 3 [5] + 10 + 1) + │ │ believe#0,SET test value formatter: 6 + │ ├── 01859 record (13 = 3 [3] + 9 + 1) + │ │ bell#0,SET test value formatter: 1 + │ ├── 01872 record (14 = 3 [2] + 10 + 1) + │ │ bend#0,SET test value formatter: 2 + │ ├── 01886 record (16 = 3 [3] + 12 + 1) + │ │ beneath#0,SET test value formatter: 5 + │ ├── 01902 record (15 = 3 [4] + 11 + 1) + │ │ benefit#0,SET test value formatter: 1 + │ ├── 01917 record (19 = 3 [2] + 14 + 2) + │ │ bernardo#0,SET test value formatter: 30 + │ ├── 01936 record (17 = 3 [2] + 13 + 1) + │ │ beseech#0,SET test value formatter: 2 + │ ├── 01953 record (17 = 3 [3] + 13 + 1) + │ │ besmirch#0,SET test value formatter: 1 + │ ├── 01970 record (13 = 3 [3] + 9 + 1) + │ │ best#0,SET test value formatter: 5 + │ ├── 01983 record (18 = 3 [0] + 14 + 1) [restart] + │ │ beteem#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 02001 [restart 0] + │ │ ├── 02005 [restart 255] + │ │ ├── 02009 [restart 516] + │ │ ├── 02013 [restart 760] + │ │ ├── 02017 [restart 1002] + │ │ ├── 02021 [restart 1247] + │ │ ├── 02025 [restart 1497] + │ │ ├── 02029 [restart 1736] + │ │ └── 02033 [restart 1983] + │ └── trailer [compression=none checksum=0x13c15fb] + ├── data offset: 2046 length: 2044 + │ ├── 00000 record (21 = 3 [0] + 17 + 1) [restart] + │ │ bethought#0,SET test value formatter: 1 + │ ├── 00021 record (15 = 3 [3] + 11 + 1) + │ │ better#0,SET test value formatter: 2 + │ ├── 00036 record (16 = 3 [3] + 12 + 1) + │ │ between#0,SET test value formatter: 2 + │ ├── 00052 record (16 = 3 [2] + 12 + 1) + │ │ beware#0,SET test value formatter: 2 + │ ├── 00068 record (16 = 3 [2] + 12 + 1) + │ │ beyond#0,SET test value formatter: 1 + │ ├── 00084 record (14 = 3 [1] + 10 + 1) + │ │ bid#0,SET test value formatter: 2 + │ ├── 00098 record (14 = 3 [2] + 10 + 1) + │ │ bird#0,SET test value formatter: 2 + │ ├── 00112 record (14 = 3 [3] + 10 + 1) + │ │ birth#0,SET test value formatter: 3 + │ ├── 00126 record (15 = 3 [2] + 11 + 1) + │ │ bites#0,SET test value formatter: 1 + │ ├── 00141 record (15 = 3 [3] + 11 + 1) + │ │ bitter#0,SET test value formatter: 1 + │ ├── 00156 record (16 = 3 [1] + 12 + 1) + │ │ black#0,SET test value formatter: 1 + │ ├── 00172 record (14 = 3 [3] + 10 + 1) + │ │ blast#0,SET test value formatter: 1 + │ ├── 00186 record (17 = 3 [5] + 13 + 1) + │ │ blastments#0,SET test value formatter: 1 + │ ├── 00203 record (13 = 3 [5] + 9 + 1) + │ │ blasts#0,SET test value formatter: 1 + │ ├── 00216 record (15 = 3 [3] + 11 + 1) + │ │ blazes#0,SET test value formatter: 1 + │ ├── 00231 record (14 = 3 [4] + 10 + 1) + │ │ blazon#0,SET test value formatter: 1 + │ ├── 00245 record (20 = 3 [0] + 16 + 1) [restart] + │ │ blessing#0,SET test value formatter: 3 + │ ├── 00265 record (15 = 3 [2] + 11 + 1) + │ │ blood#0,SET test value formatter: 7 + │ ├── 00280 record (17 = 3 [3] + 13 + 1) + │ │ blossoms#0,SET test value formatter: 1 + │ ├── 00297 record (14 = 3 [3] + 10 + 1) + │ │ blows#0,SET test value formatter: 1 + │ ├── 00311 record (16 = 3 [1] + 12 + 1) + │ │ bodes#0,SET test value formatter: 1 + │ ├── 00327 record (13 = 3 [3] + 9 + 1) + │ │ body#0,SET test value formatter: 5 + │ ├── 00340 record (15 = 3 [2] + 11 + 1) + │ │ bonds#0,SET test value formatter: 1 + │ ├── 00355 record (14 = 3 [3] + 10 + 1) + │ │ bones#0,SET test value formatter: 1 + │ ├── 00369 record (14 = 3 [2] + 10 + 1) + │ │ book#0,SET test value formatter: 1 + │ ├── 00383 record (13 = 3 [4] + 9 + 1) + │ │ books#0,SET test value formatter: 1 + │ ├── 00396 record (14 = 3 [2] + 10 + 1) + │ │ born#0,SET test value formatter: 2 + │ ├── 00410 record (17 = 3 [3] + 13 + 1) + │ │ borrower#0,SET test value formatter: 1 + │ ├── 00427 record (15 = 3 [6] + 11 + 1) + │ │ borrowing#0,SET test value formatter: 1 + │ ├── 00442 record (15 = 3 [2] + 11 + 1) + │ │ bosom#0,SET test value formatter: 1 + │ ├── 00457 record (14 = 3 [2] + 10 + 1) + │ │ both#0,SET test value formatter: 3 + │ ├── 00471 record (15 = 3 [2] + 11 + 1) + │ │ bound#0,SET test value formatter: 2 + │ ├── 00486 record (21 = 3 [0] + 17 + 1) [restart] + │ │ bounteous#0,SET test value formatter: 1 + │ ├── 00507 record (13 = 3 [2] + 9 + 1) + │ │ bow#0,SET test value formatter: 1 + │ ├── 00520 record (13 = 3 [2] + 9 + 1) + │ │ boy#0,SET test value formatter: 2 + │ ├── 00533 record (16 = 3 [1] + 12 + 1) + │ │ brain#0,SET test value formatter: 2 + │ ├── 00549 record (13 = 3 [3] + 9 + 1) + │ │ bray#0,SET test value formatter: 1 + │ ├── 00562 record (15 = 3 [3] + 11 + 1) + │ │ brazen#0,SET test value formatter: 1 + │ ├── 00577 record (16 = 3 [2] + 12 + 1) + │ │ breach#0,SET test value formatter: 1 + │ ├── 00593 record (13 = 3 [4] + 9 + 1) + │ │ break#0,SET test value formatter: 3 + │ ├── 00606 record (15 = 3 [5] + 11 + 1) + │ │ breaking#0,SET test value formatter: 1 + │ ├── 00621 record (14 = 3 [4] + 10 + 1) + │ │ breath#0,SET test value formatter: 1 + │ ├── 00635 record (15 = 3 [6] + 11 + 1) + │ │ breathing#0,SET test value formatter: 1 + │ ├── 00650 record (15 = 3 [2] + 11 + 1) + │ │ brief#0,SET test value formatter: 1 + │ ├── 00665 record (14 = 3 [3] + 10 + 1) + │ │ bring#0,SET test value formatter: 1 + │ ├── 00679 record (17 = 3 [2] + 13 + 1) + │ │ brokers#0,SET test value formatter: 1 + │ ├── 00696 record (16 = 3 [3] + 12 + 1) + │ │ brother#0,SET test value formatter: 6 + │ ├── 00712 record (13 = 3 [3] + 9 + 1) + │ │ brow#0,SET test value formatter: 1 + │ ├── 00725 record (17 = 3 [0] + 13 + 1) [restart] + │ │ bruit#0,SET test value formatter: 1 + │ ├── 00742 record (15 = 3 [1] + 11 + 1) + │ │ bulk#0,SET test value formatter: 1 + │ ├── 00757 record (16 = 3 [2] + 12 + 1) + │ │ buried#0,SET test value formatter: 1 + │ ├── 00773 record (14 = 3 [3] + 10 + 1) + │ │ burns#0,SET test value formatter: 2 + │ ├── 00787 record (13 = 3 [4] + 9 + 1) + │ │ burnt#0,SET test value formatter: 1 + │ ├── 00800 record (14 = 3 [3] + 10 + 1) + │ │ burst#0,SET test value formatter: 2 + │ ├── 00814 record (18 = 3 [2] + 14 + 1) + │ │ business#0,SET test value formatter: 4 + │ ├── 00832 record (14 = 3 [2] + 9 + 2) + │ │ but#0,SET test value formatter: 58 + │ ├── 00846 record (16 = 3 [3] + 12 + 1) + │ │ buttons#0,SET test value formatter: 1 + │ ├── 00862 record (13 = 3 [2] + 9 + 1) + │ │ buy#0,SET test value formatter: 1 + │ ├── 00875 record (14 = 3 [1] + 9 + 2) + │ │ by#0,SET test value formatter: 31 + │ ├── 00889 record (16 = 3 [0] + 12 + 1) + │ │ call#0,SET test value formatter: 4 + │ ├── 00905 record (19 = 3 [3] + 15 + 1) + │ │ calumnious#0,SET test value formatter: 1 + │ ├── 00924 record (14 = 3 [2] + 10 + 1) + │ │ came#0,SET test value formatter: 2 + │ ├── 00938 record (13 = 3 [2] + 9 + 1) + │ │ can#0,SET test value formatter: 5 + │ ├── 00951 record (15 = 3 [3] + 11 + 1) + │ │ canker#0,SET test value formatter: 1 + │ ├── 00966 record (18 = 3 [0] + 14 + 1) [restart] + │ │ cannon#0,SET test value formatter: 2 + │ ├── 00984 record (13 = 3 [5] + 9 + 1) + │ │ cannot#0,SET test value formatter: 3 + │ ├── 00997 record (14 = 3 [3] + 10 + 1) + │ │ canon#0,SET test value formatter: 1 + │ ├── 01011 record (16 = 3 [5] + 12 + 1) + │ │ canonized#0,SET test value formatter: 1 + │ ├── 01027 record (14 = 3 [3] + 10 + 1) + │ │ canst#0,SET test value formatter: 2 + │ ├── 01041 record (13 = 3 [2] + 9 + 1) + │ │ cap#0,SET test value formatter: 1 + │ ├── 01054 record (19 = 3 [2] + 15 + 1) + │ │ carefully#0,SET test value formatter: 1 + │ ├── 01073 record (17 = 3 [3] + 13 + 1) + │ │ carriage#0,SET test value formatter: 1 + │ ├── 01090 record (16 = 3 [4] + 12 + 1) + │ │ carrying#0,SET test value formatter: 1 + │ ├── 01106 record (14 = 3 [3] + 10 + 1) + │ │ carve#0,SET test value formatter: 1 + │ ├── 01120 record (14 = 3 [2] + 10 + 1) + │ │ cast#0,SET test value formatter: 3 + │ ├── 01134 record (14 = 3 [4] + 10 + 1) + │ │ castle#0,SET test value formatter: 2 + │ ├── 01148 record (15 = 3 [2] + 11 + 1) + │ │ catch#0,SET test value formatter: 1 + │ ├── 01163 record (16 = 3 [2] + 12 + 1) + │ │ cautel#0,SET test value formatter: 1 + │ ├── 01179 record (15 = 3 [4] + 11 + 1) + │ │ caution#0,SET test value formatter: 1 + │ ├── 01194 record (21 = 3 [1] + 17 + 1) + │ │ celebrated#0,SET test value formatter: 1 + │ ├── 01215 record (21 = 3 [0] + 17 + 1) [restart] + │ │ celestial#0,SET test value formatter: 1 + │ ├── 01236 record (18 = 3 [3] + 14 + 1) + │ │ cellarage#0,SET test value formatter: 1 + │ ├── 01254 record (17 = 3 [2] + 13 + 1) + │ │ censure#0,SET test value formatter: 2 + │ ├── 01271 record (19 = 3 [2] + 15 + 1) + │ │ cerements#0,SET test value formatter: 1 + │ ├── 01290 record (16 = 3 [3] + 12 + 1) + │ │ certain#0,SET test value formatter: 1 + │ ├── 01306 record (18 = 3 [1] + 14 + 1) + │ │ chances#0,SET test value formatter: 1 + │ ├── 01324 record (14 = 3 [4] + 10 + 1) + │ │ change#0,SET test value formatter: 1 + │ ├── 01338 record (18 = 3 [3] + 14 + 1) + │ │ character#0,SET test value formatter: 1 + │ ├── 01356 record (14 = 3 [4] + 10 + 1) + │ │ charge#0,SET test value formatter: 3 + │ ├── 01370 record (16 = 3 [4] + 12 + 1) + │ │ chariest#0,SET test value formatter: 1 + │ ├── 01386 record (17 = 3 [5] + 13 + 1) + │ │ charitable#0,SET test value formatter: 1 + │ ├── 01403 record (13 = 3 [4] + 9 + 1) + │ │ charm#0,SET test value formatter: 1 + │ ├── 01416 record (15 = 3 [3] + 11 + 1) + │ │ chaste#0,SET test value formatter: 1 + │ ├── 01431 record (15 = 3 [2] + 11 + 1) + │ │ cheer#0,SET test value formatter: 1 + │ ├── 01446 record (15 = 3 [2] + 11 + 1) + │ │ chief#0,SET test value formatter: 2 + │ ├── 01461 record (15 = 3 [5] + 11 + 1) + │ │ chiefest#0,SET test value formatter: 1 + │ ├── 01476 record (18 = 3 [0] + 14 + 1) [restart] + │ │ choice#0,SET test value formatter: 2 + │ ├── 01494 record (15 = 3 [3] + 11 + 1) + │ │ choose#0,SET test value formatter: 1 + │ ├── 01509 record (24 = 3 [1] + 20 + 1) + │ │ circumscribed#0,SET test value formatter: 1 + │ ├── 01533 record (17 = 3 [7] + 13 + 1) + │ │ circumstance#0,SET test value formatter: 2 + │ ├── 01550 record (15 = 3 [1] + 11 + 1) + │ │ clad#0,SET test value formatter: 1 + │ ├── 01565 record (17 = 3 [3] + 13 + 1) + │ │ claudius#0,SET test value formatter: 8 + │ ├── 01582 record (17 = 3 [2] + 13 + 1) + │ │ clearly#0,SET test value formatter: 1 + │ ├── 01599 record (14 = 3 [3] + 10 + 1) + │ │ clepe#0,SET test value formatter: 1 + │ ├── 01613 record (15 = 3 [2] + 11 + 1) + │ │ cliff#0,SET test value formatter: 1 + │ ├── 01628 record (19 = 3 [3] + 15 + 1) + │ │ climatures#0,SET test value formatter: 1 + │ ├── 01647 record (15 = 3 [2] + 11 + 1) + │ │ cloak#0,SET test value formatter: 1 + │ ├── 01662 record (15 = 3 [3] + 11 + 1) + │ │ clouds#0,SET test value formatter: 2 + │ ├── 01677 record (15 = 3 [1] + 11 + 1) + │ │ cock#0,SET test value formatter: 5 + │ ├── 01692 record (14 = 3 [2] + 10 + 1) + │ │ cold#0,SET test value formatter: 2 + │ ├── 01706 record (14 = 3 [4] + 10 + 1) + │ │ coldly#0,SET test value formatter: 1 + │ ├── 01720 record (19 = 3 [3] + 15 + 1) + │ │ colleagued#0,SET test value formatter: 1 + │ ├── 01739 record (18 = 3 [0] + 14 + 1) [restart] + │ │ colour#0,SET test value formatter: 1 + │ ├── 01757 record (16 = 3 [2] + 12 + 1) + │ │ combat#0,SET test value formatter: 1 + │ ├── 01773 record (14 = 3 [6] + 10 + 1) + │ │ combated#0,SET test value formatter: 1 + │ ├── 01787 record (16 = 3 [4] + 12 + 1) + │ │ combined#0,SET test value formatter: 1 + │ ├── 01803 record (14 = 3 [3] + 9 + 2) + │ │ come#0,SET test value formatter: 17 + │ ├── 01817 record (13 = 3 [4] + 9 + 1) + │ │ comes#0,SET test value formatter: 7 + │ ├── 01830 record (13 = 3 [5] + 9 + 1) + │ │ comest#0,SET test value formatter: 1 + │ ├── 01843 record (16 = 3 [3] + 12 + 1) + │ │ comfort#0,SET test value formatter: 1 + │ ├── 01859 record (15 = 3 [3] + 11 + 1) + │ │ coming#0,SET test value formatter: 1 + │ ├── 01874 record (16 = 3 [3] + 12 + 1) + │ │ command#0,SET test value formatter: 1 + │ ├── 01890 record (16 = 3 [7] + 12 + 1) + │ │ commandment#0,SET test value formatter: 1 + │ ├── 01906 record (15 = 3 [4] + 11 + 1) + │ │ commend#0,SET test value formatter: 2 + │ ├── 01921 record (16 = 3 [7] + 12 + 1) + │ │ commendable#0,SET test value formatter: 1 + │ ├── 01937 record (14 = 3 [4] + 10 + 1) + │ │ common#0,SET test value formatter: 4 + │ ├── 01951 record (16 = 3 [3] + 12 + 1) + │ │ compact#0,SET test value formatter: 1 + │ ├── 01967 record (17 = 3 [4] + 13 + 1) + │ │ competent#0,SET test value formatter: 1 + │ ├── 01984 record (20 = 3 [0] + 16 + 1) [restart] + │ │ complete#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 02004 [restart 0] + │ │ ├── 02008 [restart 245] + │ │ ├── 02012 [restart 486] + │ │ ├── 02016 [restart 725] + │ │ ├── 02020 [restart 966] + │ │ ├── 02024 [restart 1215] + │ │ ├── 02028 [restart 1476] + │ │ ├── 02032 [restart 1739] + │ │ └── 02036 [restart 1984] + │ └── trailer [compression=none checksum=0x334c5e54] + ├── data offset: 4095 length: 2039 + │ ├── 00000 record (22 = 3 [0] + 18 + 1) [restart] + │ │ complexion#0,SET test value formatter: 1 + │ ├── 00022 record (20 = 3 [4] + 16 + 1) + │ │ compulsatory#0,SET test value formatter: 1 + │ ├── 00042 record (16 = 3 [3] + 12 + 1) + │ │ comrade#0,SET test value formatter: 1 + │ ├── 00058 record (17 = 3 [2] + 13 + 1) + │ │ conceal#0,SET test value formatter: 1 + │ ├── 00075 record (20 = 3 [3] + 16 + 1) + │ │ condolement#0,SET test value formatter: 1 + │ ├── 00095 record (16 = 3 [3] + 12 + 1) + │ │ confess#0,SET test value formatter: 1 + │ ├── 00111 record (15 = 3 [4] + 11 + 1) + │ │ confine#0,SET test value formatter: 1 + │ ├── 00126 record (13 = 3 [7] + 9 + 1) + │ │ confined#0,SET test value formatter: 1 + │ ├── 00139 record (18 = 3 [3] + 14 + 1) + │ │ conqueror#0,SET test value formatter: 1 + │ ├── 00157 record (16 = 3 [3] + 12 + 1) + │ │ consent#0,SET test value formatter: 3 + │ ├── 00173 record (18 = 3 [4] + 14 + 1) + │ │ constantly#0,SET test value formatter: 1 + │ ├── 00191 record (19 = 3 [3] + 15 + 1) + │ │ contagious#0,SET test value formatter: 1 + │ ├── 00210 record (18 = 3 [4] + 14 + 1) + │ │ contracted#0,SET test value formatter: 1 + │ ├── 00228 record (15 = 3 [5] + 11 + 1) + │ │ contrive#0,SET test value formatter: 1 + │ ├── 00243 record (21 = 3 [3] + 17 + 1) + │ │ conveniently#0,SET test value formatter: 1 + │ ├── 00264 record (14 = 3 [4] + 10 + 1) + │ │ convoy#0,SET test value formatter: 1 + │ ├── 00278 record (18 = 3 [0] + 14 + 1) [restart] + │ │ copied#0,SET test value formatter: 1 + │ ├── 00296 record (19 = 3 [2] + 15 + 1) + │ │ cornelius#0,SET test value formatter: 4 + │ ├── 00315 record (19 = 3 [3] + 15 + 1) + │ │ coronation#0,SET test value formatter: 1 + │ ├── 00334 record (19 = 3 [3] + 15 + 1) + │ │ corruption#0,SET test value formatter: 1 + │ ├── 00353 record (14 = 3 [3] + 10 + 1) + │ │ corse#0,SET test value formatter: 2 + │ ├── 00367 record (16 = 3 [2] + 12 + 1) + │ │ costly#0,SET test value formatter: 1 + │ ├── 00383 record (15 = 3 [2] + 11 + 1) + │ │ couch#0,SET test value formatter: 1 + │ ├── 00398 record (14 = 3 [3] + 10 + 1) + │ │ could#0,SET test value formatter: 2 + │ ├── 00412 record (20 = 3 [3] + 16 + 1) + │ │ countenance#0,SET test value formatter: 2 + │ ├── 00432 record (14 = 3 [5] + 10 + 1) + │ │ country#0,SET test value formatter: 1 + │ ├── 00446 record (15 = 3 [7] + 11 + 1) + │ │ countrymen#0,SET test value formatter: 1 + │ ├── 00461 record (15 = 3 [3] + 11 + 1) + │ │ couple#0,SET test value formatter: 1 + │ ├── 00476 record (15 = 3 [3] + 11 + 1) + │ │ course#0,SET test value formatter: 2 + │ ├── 00491 record (13 = 3 [6] + 9 + 1) + │ │ courses#0,SET test value formatter: 1 + │ ├── 00504 record (13 = 3 [4] + 9 + 1) + │ │ court#0,SET test value formatter: 1 + │ ├── 00517 record (16 = 3 [5] + 12 + 1) + │ │ courteous#0,SET test value formatter: 1 + │ ├── 00533 record (20 = 3 [0] + 16 + 1) [restart] + │ │ courtier#0,SET test value formatter: 1 + │ ├── 00553 record (15 = 3 [3] + 11 + 1) + │ │ cousin#0,SET test value formatter: 2 + │ ├── 00568 record (18 = 3 [2] + 14 + 1) + │ │ covenant#0,SET test value formatter: 1 + │ ├── 00586 record (16 = 3 [1] + 12 + 1) + │ │ crack#0,SET test value formatter: 1 + │ ├── 00602 record (17 = 3 [2] + 13 + 1) + │ │ credent#0,SET test value formatter: 1 + │ ├── 00619 record (17 = 3 [3] + 13 + 1) + │ │ crescent#0,SET test value formatter: 1 + │ ├── 00636 record (13 = 3 [3] + 9 + 1) + │ │ crew#0,SET test value formatter: 2 + │ ├── 00649 record (15 = 3 [2] + 11 + 1) + │ │ cried#0,SET test value formatter: 1 + │ ├── 00664 record (13 = 3 [4] + 9 + 1) + │ │ cries#0,SET test value formatter: 1 + │ ├── 00677 record (15 = 3 [3] + 11 + 1) + │ │ crimes#0,SET test value formatter: 1 + │ ├── 00692 record (15 = 3 [2] + 11 + 1) + │ │ cross#0,SET test value formatter: 1 + │ ├── 00707 record (16 = 3 [3] + 12 + 1) + │ │ crowing#0,SET test value formatter: 1 + │ ├── 00723 record (13 = 3 [4] + 9 + 1) + │ │ crown#0,SET test value formatter: 2 + │ ├── 00736 record (13 = 3 [4] + 9 + 1) + │ │ crows#0,SET test value formatter: 1 + │ ├── 00749 record (15 = 3 [2] + 11 + 1) + │ │ crust#0,SET test value formatter: 1 + │ ├── 00764 record (15 = 3 [1] + 11 + 1) + │ │ curd#0,SET test value formatter: 1 + │ ├── 00779 record (18 = 3 [0] + 14 + 1) [restart] + │ │ cursed#0,SET test value formatter: 2 + │ ├── 00797 record (16 = 3 [2] + 12 + 1) + │ │ custom#0,SET test value formatter: 3 + │ ├── 00813 record (15 = 3 [6] + 11 + 1) + │ │ customary#0,SET test value formatter: 1 + │ ├── 00828 record (13 = 3 [2] + 9 + 1) + │ │ cut#0,SET test value formatter: 1 + │ ├── 00841 record (14 = 3 [0] + 9 + 2) + │ │ d#0,SET test value formatter: 54 + │ ├── 00855 record (16 = 3 [1] + 12 + 1) + │ │ daily#0,SET test value formatter: 1 + │ ├── 00871 record (19 = 3 [2] + 15 + 1) + │ │ dalliance#0,SET test value formatter: 1 + │ ├── 00890 record (14 = 3 [2] + 10 + 1) + │ │ damn#0,SET test value formatter: 1 + │ ├── 00904 record (14 = 3 [4] + 10 + 1) + │ │ damned#0,SET test value formatter: 2 + │ ├── 00918 record (14 = 3 [2] + 10 + 1) + │ │ dane#0,SET test value formatter: 3 + │ ├── 00932 record (15 = 3 [3] + 11 + 1) + │ │ danger#0,SET test value formatter: 1 + │ ├── 00947 record (15 = 3 [2] + 11 + 1) + │ │ dared#0,SET test value formatter: 1 + │ ├── 00962 record (13 = 3 [4] + 9 + 1) + │ │ dares#0,SET test value formatter: 1 + │ ├── 00975 record (18 = 3 [2] + 14 + 1) + │ │ daughter#0,SET test value formatter: 2 + │ ├── 00993 record (17 = 3 [2] + 13 + 1) + │ │ dawning#0,SET test value formatter: 1 + │ ├── 01010 record (13 = 3 [2] + 9 + 1) + │ │ day#0,SET test value formatter: 8 + │ ├── 01023 record (16 = 3 [0] + 12 + 1) [restart] + │ │ days#0,SET test value formatter: 1 + │ ├── 01039 record (15 = 3 [1] + 11 + 1) + │ │ dead#0,SET test value formatter: 7 + │ ├── 01054 record (13 = 3 [3] + 9 + 1) + │ │ dear#0,SET test value formatter: 4 + │ ├── 01067 record (15 = 3 [4] + 11 + 1) + │ │ dearest#0,SET test value formatter: 2 + │ ├── 01082 record (14 = 3 [4] + 10 + 1) + │ │ dearly#0,SET test value formatter: 1 + │ ├── 01096 record (14 = 3 [3] + 10 + 1) + │ │ death#0,SET test value formatter: 6 + │ ├── 01110 record (17 = 3 [2] + 13 + 1) + │ │ decline#0,SET test value formatter: 1 + │ ├── 01127 record (14 = 3 [2] + 10 + 1) + │ │ deed#0,SET test value formatter: 1 + │ ├── 01141 record (13 = 3 [4] + 9 + 1) + │ │ deeds#0,SET test value formatter: 1 + │ ├── 01154 record (13 = 3 [3] + 9 + 1) + │ │ deep#0,SET test value formatter: 1 + │ ├── 01167 record (18 = 3 [2] + 14 + 1) + │ │ defeated#0,SET test value formatter: 1 + │ ├── 01185 record (14 = 3 [4] + 10 + 1) + │ │ defect#0,SET test value formatter: 1 + │ ├── 01199 record (14 = 3 [4] + 10 + 1) + │ │ defend#0,SET test value formatter: 1 + │ ├── 01213 record (18 = 3 [2] + 14 + 1) + │ │ dejected#0,SET test value formatter: 1 + │ ├── 01231 record (17 = 3 [2] + 13 + 1) + │ │ delated#0,SET test value formatter: 1 + │ ├── 01248 record (16 = 3 [3] + 12 + 1) + │ │ delight#0,SET test value formatter: 1 + │ ├── 01264 record (19 = 3 [0] + 15 + 1) [restart] + │ │ deliver#0,SET test value formatter: 2 + │ ├── 01283 record (22 = 3 [2] + 18 + 1) + │ │ demonstrated#0,SET test value formatter: 1 + │ ├── 01305 record (18 = 3 [2] + 13 + 2) + │ │ denmark#0,SET test value formatter: 13 + │ ├── 01323 record (15 = 3 [3] + 11 + 1) + │ │ denote#0,SET test value formatter: 1 + │ ├── 01338 record (16 = 3 [2] + 12 + 1) + │ │ depart#0,SET test value formatter: 1 + │ ├── 01354 record (16 = 3 [3] + 12 + 1) + │ │ depends#0,SET test value formatter: 1 + │ ├── 01370 record (16 = 3 [3] + 12 + 1) + │ │ deprive#0,SET test value formatter: 1 + │ ├── 01386 record (16 = 3 [2] + 12 + 1) + │ │ design#0,SET test value formatter: 1 + │ ├── 01402 record (14 = 3 [4] + 10 + 1) + │ │ desire#0,SET test value formatter: 6 + │ ├── 01416 record (18 = 3 [3] + 14 + 1) + │ │ desperate#0,SET test value formatter: 1 + │ ├── 01434 record (15 = 3 [8] + 11 + 1) + │ │ desperation#0,SET test value formatter: 1 + │ ├── 01449 record (13 = 3 [2] + 9 + 1) + │ │ dew#0,SET test value formatter: 3 + │ ├── 01462 record (13 = 3 [3] + 9 + 1) + │ │ dews#0,SET test value formatter: 1 + │ ├── 01475 record (19 = 3 [2] + 15 + 1) + │ │ dexterity#0,SET test value formatter: 1 + │ ├── 01494 record (15 = 3 [1] + 10 + 2) + │ │ did#0,SET test value formatter: 14 + │ ├── 01509 record (14 = 3 [3] + 10 + 1) + │ │ didst#0,SET test value formatter: 1 + │ ├── 01523 record (15 = 3 [0] + 11 + 1) [restart] + │ │ die#0,SET test value formatter: 1 + │ ├── 01538 record (13 = 3 [3] + 9 + 1) + │ │ died#0,SET test value formatter: 1 + │ ├── 01551 record (13 = 3 [3] + 9 + 1) + │ │ diet#0,SET test value formatter: 1 + │ ├── 01564 record (17 = 3 [2] + 13 + 1) + │ │ dignity#0,SET test value formatter: 1 + │ ├── 01581 record (16 = 3 [2] + 12 + 1) + │ │ direct#0,SET test value formatter: 1 + │ ├── 01597 record (14 = 3 [3] + 10 + 1) + │ │ dirge#0,SET test value formatter: 1 + │ ├── 01611 record (22 = 3 [2] + 18 + 1) + │ │ disappointed#0,SET test value formatter: 1 + │ ├── 01633 record (17 = 3 [4] + 13 + 1) + │ │ disasters#0,SET test value formatter: 1 + │ ├── 01650 record (18 = 3 [3] + 14 + 1) + │ │ disclosed#0,SET test value formatter: 1 + │ ├── 01668 record (17 = 3 [4] + 13 + 1) + │ │ discourse#0,SET test value formatter: 1 + │ ├── 01685 record (18 = 3 [4] + 14 + 1) + │ │ discretion#0,SET test value formatter: 1 + │ ├── 01703 record (17 = 3 [3] + 13 + 1) + │ │ disjoint#0,SET test value formatter: 1 + │ ├── 01720 record (17 = 3 [3] + 13 + 1) + │ │ dispatch#0,SET test value formatter: 2 + │ ├── 01737 record (19 = 3 [4] + 15 + 1) + │ │ disposition#0,SET test value formatter: 3 + │ ├── 01756 record (18 = 3 [3] + 14 + 1) + │ │ distilled#0,SET test value formatter: 1 + │ ├── 01774 record (16 = 3 [6] + 12 + 1) + │ │ distilment#0,SET test value formatter: 1 + │ ├── 01790 record (22 = 3 [0] + 18 + 1) [restart] + │ │ distracted#0,SET test value formatter: 1 + │ ├── 01812 record (16 = 3 [2] + 12 + 1) + │ │ divide#0,SET test value formatter: 1 + │ ├── 01828 record (14 = 3 [1] + 9 + 2) + │ │ do#0,SET test value formatter: 36 + │ ├── 01842 record (14 = 3 [2] + 10 + 1) + │ │ does#0,SET test value formatter: 3 + │ ├── 01856 record (14 = 3 [2] + 10 + 1) + │ │ dole#0,SET test value formatter: 1 + │ ├── 01870 record (14 = 3 [2] + 10 + 1) + │ │ done#0,SET test value formatter: 3 + │ ├── 01884 record (14 = 3 [2] + 10 + 1) + │ │ doom#0,SET test value formatter: 1 + │ ├── 01898 record (16 = 3 [4] + 12 + 1) + │ │ doomsday#0,SET test value formatter: 1 + │ ├── 01914 record (14 = 3 [2] + 10 + 1) + │ │ doth#0,SET test value formatter: 7 + │ ├── 01928 record (16 = 3 [2] + 12 + 1) + │ │ double#0,SET test value formatter: 2 + │ ├── 01944 record (13 = 3 [4] + 9 + 1) + │ │ doubt#0,SET test value formatter: 4 + │ ├── 01957 record (15 = 3 [5] + 11 + 1) + │ │ doubtful#0,SET test value formatter: 1 + │ ├── 01972 record (14 = 3 [2] + 10 + 1) + │ │ down#0,SET test value formatter: 7 + │ ├── 01986 record (17 = 3 [1] + 13 + 1) + │ │ drains#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 02003 [restart 0] + │ │ ├── 02007 [restart 278] + │ │ ├── 02011 [restart 533] + │ │ ├── 02015 [restart 779] + │ │ ├── 02019 [restart 1023] + │ │ ├── 02023 [restart 1264] + │ │ ├── 02027 [restart 1523] + │ │ └── 02031 [restart 1790] + │ └── trailer [compression=none checksum=0xa3c2c00f] + ├── data offset: 6139 length: 2036 + │ ├── 00000 record (16 = 3 [0] + 12 + 1) [restart] + │ │ dram#0,SET test value formatter: 1 + │ ├── 00016 record (17 = 3 [3] + 13 + 1) + │ │ draughts#0,SET test value formatter: 1 + │ ├── 00033 record (13 = 3 [3] + 9 + 1) + │ │ draw#0,SET test value formatter: 1 + │ ├── 00046 record (13 = 3 [4] + 9 + 1) + │ │ draws#0,SET test value formatter: 1 + │ ├── 00059 record (15 = 3 [2] + 11 + 1) + │ │ dread#0,SET test value formatter: 1 + │ ├── 00074 record (14 = 3 [5] + 10 + 1) + │ │ dreaded#0,SET test value formatter: 1 + │ ├── 00088 record (15 = 3 [5] + 11 + 1) + │ │ dreadful#0,SET test value formatter: 2 + │ ├── 00103 record (13 = 3 [4] + 9 + 1) + │ │ dream#0,SET test value formatter: 1 + │ ├── 00116 record (13 = 3 [5] + 9 + 1) + │ │ dreamt#0,SET test value formatter: 1 + │ ├── 00129 record (15 = 3 [2] + 11 + 1) + │ │ drink#0,SET test value formatter: 1 + │ ├── 00144 record (13 = 3 [5] + 9 + 1) + │ │ drinks#0,SET test value formatter: 1 + │ ├── 00157 record (18 = 3 [2] + 14 + 1) + │ │ dropping#0,SET test value formatter: 1 + │ ├── 00175 record (13 = 3 [8] + 9 + 1) + │ │ droppings#0,SET test value formatter: 1 + │ ├── 00188 record (14 = 3 [2] + 10 + 1) + │ │ drum#0,SET test value formatter: 1 + │ ├── 00202 record (18 = 3 [3] + 14 + 1) + │ │ drunkards#0,SET test value formatter: 1 + │ ├── 00220 record (15 = 3 [1] + 11 + 1) + │ │ dull#0,SET test value formatter: 1 + │ ├── 00235 record (18 = 3 [0] + 14 + 1) [restart] + │ │ duller#0,SET test value formatter: 1 + │ ├── 00253 record (13 = 3 [4] + 9 + 1) + │ │ dulls#0,SET test value formatter: 1 + │ ├── 00266 record (14 = 3 [2] + 10 + 1) + │ │ dumb#0,SET test value formatter: 2 + │ ├── 00280 record (14 = 3 [2] + 10 + 1) + │ │ dust#0,SET test value formatter: 1 + │ ├── 00294 record (16 = 3 [2] + 12 + 1) + │ │ duties#0,SET test value formatter: 1 + │ ├── 00310 record (13 = 3 [3] + 9 + 1) + │ │ duty#0,SET test value formatter: 7 + │ ├── 00323 record (19 = 3 [1] + 15 + 1) + │ │ dwelling#0,SET test value formatter: 1 + │ ├── 00342 record (14 = 3 [1] + 10 + 1) + │ │ dye#0,SET test value formatter: 1 + │ ├── 00356 record (13 = 3 [0] + 9 + 1) + │ │ e#0,SET test value formatter: 1 + │ ├── 00369 record (15 = 3 [1] + 11 + 1) + │ │ each#0,SET test value formatter: 5 + │ ├── 00384 record (15 = 3 [2] + 11 + 1) + │ │ eager#0,SET test value formatter: 2 + │ ├── 00399 record (14 = 3 [2] + 10 + 1) + │ │ eale#0,SET test value formatter: 1 + │ ├── 00413 record (13 = 3 [2] + 9 + 1) + │ │ ear#0,SET test value formatter: 5 + │ ├── 00426 record (13 = 3 [3] + 9 + 1) + │ │ ears#0,SET test value formatter: 3 + │ ├── 00439 record (14 = 3 [3] + 10 + 1) + │ │ earth#0,SET test value formatter: 9 + │ ├── 00453 record (14 = 3 [5] + 10 + 1) + │ │ earthly#0,SET test value formatter: 1 + │ ├── 00467 record (16 = 3 [0] + 12 + 1) [restart] + │ │ ease#0,SET test value formatter: 2 + │ ├── 00483 record (13 = 3 [3] + 9 + 1) + │ │ east#0,SET test value formatter: 1 + │ ├── 00496 record (16 = 3 [4] + 12 + 1) + │ │ eastward#0,SET test value formatter: 1 + │ ├── 00512 record (18 = 3 [1] + 14 + 1) + │ │ eclipse#0,SET test value formatter: 1 + │ ├── 00530 record (15 = 3 [1] + 11 + 1) + │ │ edge#0,SET test value formatter: 1 + │ ├── 00545 record (17 = 3 [1] + 13 + 1) + │ │ effect#0,SET test value formatter: 2 + │ ├── 00562 record (17 = 3 [1] + 13 + 1) + │ │ eleven#0,SET test value formatter: 1 + │ ├── 00579 record (14 = 3 [2] + 10 + 1) + │ │ else#0,SET test value formatter: 4 + │ ├── 00593 record (17 = 3 [3] + 13 + 1) + │ │ elsinore#0,SET test value formatter: 2 + │ ├── 00610 record (17 = 3 [1] + 13 + 1) + │ │ embark#0,SET test value formatter: 1 + │ ├── 00627 record (16 = 3 [2] + 12 + 1) + │ │ empire#0,SET test value formatter: 1 + │ ├── 00643 record (17 = 3 [2] + 13 + 1) + │ │ emulate#0,SET test value formatter: 1 + │ ├── 00660 record (13 = 3 [1] + 9 + 1) + │ │ en#0,SET test value formatter: 2 + │ ├── 00673 record (19 = 3 [2] + 15 + 1) + │ │ encounter#0,SET test value formatter: 1 + │ ├── 00692 record (17 = 3 [3] + 13 + 1) + │ │ encumber#0,SET test value formatter: 1 + │ ├── 00709 record (13 = 3 [2] + 9 + 1) + │ │ end#0,SET test value formatter: 1 + │ ├── 00722 record (17 = 3 [0] + 13 + 1) [restart] + │ │ enemy#0,SET test value formatter: 1 + │ ├── 00739 record (16 = 3 [2] + 12 + 1) + │ │ enmity#0,SET test value formatter: 1 + │ ├── 00755 record (16 = 3 [2] + 12 + 1) + │ │ enough#0,SET test value formatter: 1 + │ ├── 00771 record (16 = 3 [2] + 11 + 2) + │ │ enter#0,SET test value formatter: 12 + │ ├── 00787 record (17 = 3 [5] + 13 + 1) + │ │ enterprise#0,SET test value formatter: 1 + │ ├── 00804 record (20 = 3 [5] + 16 + 1) + │ │ entertainment#0,SET test value formatter: 1 + │ ├── 00824 record (17 = 3 [3] + 13 + 1) + │ │ entrance#0,SET test value formatter: 1 + │ ├── 00841 record (17 = 3 [4] + 13 + 1) + │ │ entreated#0,SET test value formatter: 1 + │ ├── 00858 record (17 = 3 [7] + 13 + 1) + │ │ entreatments#0,SET test value formatter: 1 + │ ├── 00875 record (16 = 3 [1] + 12 + 1) + │ │ equal#0,SET test value formatter: 1 + │ ├── 00891 record (13 = 3 [1] + 9 + 1) + │ │ er#0,SET test value formatter: 5 + │ ├── 00904 record (13 = 3 [2] + 9 + 1) + │ │ ere#0,SET test value formatter: 4 + │ ├── 00917 record (18 = 3 [2] + 14 + 1) + │ │ ergrowth#0,SET test value formatter: 1 + │ ├── 00935 record (18 = 3 [2] + 14 + 1) + │ │ ermaster#0,SET test value formatter: 1 + │ ├── 00953 record (16 = 3 [2] + 12 + 1) + │ │ erring#0,SET test value formatter: 1 + │ ├── 00969 record (18 = 3 [2] + 14 + 1) + │ │ eruption#0,SET test value formatter: 1 + │ ├── 00987 record (19 = 3 [0] + 15 + 1) [restart] + │ │ erwhelm#0,SET test value formatter: 1 + │ ├── 01006 record (17 = 3 [1] + 13 + 1) + │ │ esteem#0,SET test value formatter: 1 + │ ├── 01023 record (13 = 3 [1] + 9 + 1) + │ │ et#0,SET test value formatter: 1 + │ ├── 01036 record (17 = 3 [2] + 13 + 1) + │ │ eternal#0,SET test value formatter: 1 + │ ├── 01053 record (15 = 3 [5] + 11 + 1) + │ │ eternity#0,SET test value formatter: 1 + │ ├── 01068 record (15 = 3 [1] + 11 + 1) + │ │ even#0,SET test value formatter: 8 + │ ├── 01083 record (14 = 3 [4] + 10 + 1) + │ │ events#0,SET test value formatter: 1 + │ ├── 01097 record (13 = 3 [3] + 9 + 1) + │ │ ever#0,SET test value formatter: 6 + │ ├── 01110 record (19 = 3 [4] + 15 + 1) + │ │ everlasting#0,SET test value formatter: 1 + │ ├── 01129 record (13 = 3 [4] + 9 + 1) + │ │ every#0,SET test value formatter: 3 + │ ├── 01142 record (18 = 3 [1] + 14 + 1) + │ │ exactly#0,SET test value formatter: 1 + │ ├── 01160 record (19 = 3 [2] + 15 + 1) + │ │ excellent#0,SET test value formatter: 1 + │ ├── 01179 record (16 = 3 [2] + 12 + 1) + │ │ exeunt#0,SET test value formatter: 8 + │ ├── 01195 record (14 = 3 [2] + 10 + 1) + │ │ exit#0,SET test value formatter: 6 + │ ├── 01209 record (17 = 3 [2] + 13 + 1) + │ │ express#0,SET test value formatter: 2 + │ ├── 01226 record (17 = 3 [2] + 13 + 1) + │ │ extinct#0,SET test value formatter: 1 + │ ├── 01243 record (20 = 3 [0] + 16 + 1) [restart] + │ │ extorted#0,SET test value formatter: 1 + │ ├── 01263 record (20 = 3 [3] + 16 + 1) + │ │ extravagant#0,SET test value formatter: 1 + │ ├── 01283 record (14 = 3 [1] + 10 + 1) + │ │ eye#0,SET test value formatter: 6 + │ ├── 01297 record (13 = 3 [3] + 9 + 1) + │ │ eyes#0,SET test value formatter: 7 + │ ├── 01310 record (16 = 3 [0] + 12 + 1) + │ │ face#0,SET test value formatter: 2 + │ ├── 01326 record (15 = 3 [2] + 11 + 1) + │ │ faded#0,SET test value formatter: 1 + │ ├── 01341 record (14 = 3 [2] + 10 + 1) + │ │ fail#0,SET test value formatter: 1 + │ ├── 01355 record (13 = 3 [3] + 9 + 1) + │ │ fair#0,SET test value formatter: 3 + │ ├── 01368 record (13 = 3 [4] + 9 + 1) + │ │ fairy#0,SET test value formatter: 1 + │ ├── 01381 record (14 = 3 [3] + 10 + 1) + │ │ faith#0,SET test value formatter: 4 + │ ├── 01395 record (17 = 3 [2] + 13 + 1) + │ │ falling#0,SET test value formatter: 1 + │ ├── 01412 record (14 = 3 [3] + 10 + 1) + │ │ false#0,SET test value formatter: 1 + │ ├── 01426 record (18 = 3 [2] + 14 + 1) + │ │ familiar#0,SET test value formatter: 1 + │ ├── 01444 record (15 = 3 [2] + 11 + 1) + │ │ fancy#0,SET test value formatter: 1 + │ ├── 01459 record (16 = 3 [3] + 12 + 1) + │ │ fantasy#0,SET test value formatter: 2 + │ ├── 01475 record (13 = 3 [2] + 9 + 1) + │ │ far#0,SET test value formatter: 2 + │ ├── 01488 record (16 = 3 [0] + 12 + 1) [restart] + │ │ fare#0,SET test value formatter: 2 + │ ├── 01504 record (16 = 3 [4] + 12 + 1) + │ │ farewell#0,SET test value formatter: 8 + │ ├── 01520 record (17 = 3 [2] + 13 + 1) + │ │ fashion#0,SET test value formatter: 3 + │ ├── 01537 record (13 = 3 [3] + 9 + 1) + │ │ fast#0,SET test value formatter: 2 + │ ├── 01550 record (13 = 3 [2] + 9 + 1) + │ │ fat#0,SET test value formatter: 1 + │ ├── 01563 record (13 = 3 [3] + 9 + 1) + │ │ fate#0,SET test value formatter: 2 + │ ├── 01576 record (13 = 3 [4] + 9 + 1) + │ │ fates#0,SET test value formatter: 1 + │ ├── 01589 record (16 = 3 [3] + 11 + 2) + │ │ father#0,SET test value formatter: 28 + │ ├── 01605 record (13 = 3 [6] + 9 + 1) + │ │ fathers#0,SET test value formatter: 1 + │ ├── 01618 record (15 = 3 [4] + 11 + 1) + │ │ fathoms#0,SET test value formatter: 1 + │ ├── 01633 record (15 = 3 [2] + 11 + 1) + │ │ fault#0,SET test value formatter: 4 + │ ├── 01648 record (16 = 3 [2] + 12 + 1) + │ │ favour#0,SET test value formatter: 2 + │ ├── 01664 record (15 = 3 [1] + 11 + 1) + │ │ fear#0,SET test value formatter: 9 + │ ├── 01679 record (15 = 3 [4] + 11 + 1) + │ │ fearful#0,SET test value formatter: 1 + │ ├── 01694 record (13 = 3 [2] + 9 + 1) + │ │ fed#0,SET test value formatter: 1 + │ ├── 01707 record (13 = 3 [2] + 9 + 1) + │ │ fee#0,SET test value formatter: 1 + │ ├── 01720 record (16 = 3 [0] + 12 + 1) [restart] + │ │ fell#0,SET test value formatter: 2 + │ ├── 01736 record (14 = 3 [4] + 10 + 1) + │ │ fellow#0,SET test value formatter: 2 + │ ├── 01750 record (13 = 3 [2] + 9 + 1) + │ │ few#0,SET test value formatter: 3 + │ ├── 01763 record (14 = 3 [1] + 10 + 1) + │ │ fie#0,SET test value formatter: 4 + │ ├── 01777 record (15 = 3 [3] + 11 + 1) + │ │ fierce#0,SET test value formatter: 1 + │ ├── 01792 record (16 = 3 [2] + 12 + 1) + │ │ figure#0,SET test value formatter: 3 + │ ├── 01808 record (16 = 3 [2] + 12 + 1) + │ │ filial#0,SET test value formatter: 1 + │ ├── 01824 record (14 = 3 [2] + 10 + 1) + │ │ find#0,SET test value formatter: 2 + │ ├── 01838 record (16 = 3 [3] + 12 + 1) + │ │ fingers#0,SET test value formatter: 1 + │ ├── 01854 record (14 = 3 [2] + 10 + 1) + │ │ fire#0,SET test value formatter: 4 + │ ├── 01868 record (13 = 3 [4] + 9 + 1) + │ │ fires#0,SET test value formatter: 1 + │ ├── 01881 record (14 = 3 [3] + 10 + 1) + │ │ first#0,SET test value formatter: 1 + │ ├── 01895 record (13 = 3 [2] + 9 + 1) + │ │ fit#0,SET test value formatter: 2 + │ ├── 01908 record (13 = 3 [3] + 9 + 1) + │ │ fits#0,SET test value formatter: 1 + │ ├── 01921 record (16 = 3 [3] + 12 + 1) + │ │ fitting#0,SET test value formatter: 1 + │ ├── 01937 record (13 = 3 [2] + 9 + 1) + │ │ fix#0,SET test value formatter: 2 + │ ├── 01950 record (18 = 3 [0] + 14 + 1) [restart] + │ │ flames#0,SET test value formatter: 1 + │ ├── 01968 record (13 = 3 [3] + 9 + 1) + │ │ flat#0,SET test value formatter: 1 + │ ├── 01981 record (15 = 3 [2] + 11 + 1) + │ │ flesh#0,SET test value formatter: 2 + │ ├── restart points + │ │ ├── 01996 [restart 0] + │ │ ├── 02000 [restart 235] + │ │ ├── 02004 [restart 467] + │ │ ├── 02008 [restart 722] + │ │ ├── 02012 [restart 987] + │ │ ├── 02016 [restart 1243] + │ │ ├── 02020 [restart 1488] + │ │ ├── 02024 [restart 1720] + │ │ └── 02028 [restart 1950] + │ └── trailer [compression=none checksum=0xc4a3b6e0] + ├── data offset: 8180 length: 2032 + │ ├── 00000 record (17 = 3 [0] + 13 + 1) [restart] + │ │ flood#0,SET test value formatter: 1 + │ ├── 00017 record (17 = 3 [3] + 13 + 1) + │ │ flourish#0,SET test value formatter: 1 + │ ├── 00034 record (18 = 3 [2] + 14 + 1) + │ │ flushing#0,SET test value formatter: 1 + │ ├── 00052 record (14 = 3 [1] + 10 + 1) + │ │ foe#0,SET test value formatter: 1 + │ ├── 00066 record (16 = 3 [2] + 12 + 1) + │ │ follow#0,SET test value formatter: 9 + │ ├── 00082 record (13 = 3 [6] + 9 + 1) + │ │ follows#0,SET test value formatter: 1 + │ ├── 00095 record (14 = 3 [2] + 10 + 1) + │ │ fond#0,SET test value formatter: 1 + │ ├── 00109 record (14 = 3 [2] + 10 + 1) + │ │ food#0,SET test value formatter: 1 + │ ├── 00123 record (13 = 3 [3] + 9 + 1) + │ │ fool#0,SET test value formatter: 1 + │ ├── 00136 record (13 = 3 [4] + 9 + 1) + │ │ fools#0,SET test value formatter: 1 + │ ├── 00149 record (13 = 3 [3] + 9 + 1) + │ │ foot#0,SET test value formatter: 1 + │ ├── 00162 record (14 = 3 [2] + 9 + 2) + │ │ for#0,SET test value formatter: 45 + │ ├── 00176 record (15 = 3 [3] + 11 + 1) + │ │ forbid#0,SET test value formatter: 1 + │ ├── 00191 record (15 = 3 [3] + 11 + 1) + │ │ forced#0,SET test value formatter: 1 + │ ├── 00206 record (16 = 3 [3] + 12 + 1) + │ │ foreign#0,SET test value formatter: 1 + │ ├── 00222 record (19 = 3 [4] + 15 + 1) + │ │ foreknowing#0,SET test value formatter: 1 + │ ├── 00241 record (20 = 3 [0] + 16 + 1) [restart] + │ │ foresaid#0,SET test value formatter: 1 + │ ├── 00261 record (16 = 3 [3] + 12 + 1) + │ │ forfeit#0,SET test value formatter: 1 + │ ├── 00277 record (15 = 3 [3] + 11 + 1) + │ │ forged#0,SET test value formatter: 1 + │ ├── 00292 record (13 = 3 [5] + 9 + 1) + │ │ forget#0,SET test value formatter: 1 + │ ├── 00305 record (13 = 3 [3] + 9 + 1) + │ │ form#0,SET test value formatter: 4 + │ ├── 00318 record (13 = 3 [4] + 9 + 1) + │ │ forms#0,SET test value formatter: 2 + │ ├── 00331 record (14 = 3 [3] + 10 + 1) + │ │ forth#0,SET test value formatter: 3 + │ ├── 00345 record (17 = 3 [4] + 13 + 1) + │ │ fortified#0,SET test value formatter: 1 + │ ├── 00362 record (17 = 3 [5] + 13 + 1) + │ │ fortinbras#0,SET test value formatter: 6 + │ ├── 00379 record (13 = 3 [4] + 9 + 1) + │ │ forts#0,SET test value formatter: 1 + │ ├── 00392 record (15 = 3 [4] + 11 + 1) + │ │ fortune#0,SET test value formatter: 1 + │ ├── 00407 record (16 = 3 [3] + 12 + 1) + │ │ forward#0,SET test value formatter: 1 + │ ├── 00423 record (16 = 3 [2] + 12 + 1) + │ │ fought#0,SET test value formatter: 1 + │ ├── 00439 record (13 = 3 [3] + 9 + 1) + │ │ foul#0,SET test value formatter: 6 + │ ├── 00452 record (18 = 3 [1] + 14 + 1) + │ │ frailty#0,SET test value formatter: 1 + │ ├── 00470 record (14 = 3 [3] + 10 + 1) + │ │ frame#0,SET test value formatter: 1 + │ ├── 00484 record (18 = 3 [0] + 14 + 1) [restart] + │ │ france#0,SET test value formatter: 3 + │ ├── 00502 record (17 = 3 [5] + 12 + 2) + │ │ francisco#0,SET test value formatter: 10 + │ ├── 00519 record (14 = 3 [2] + 10 + 1) + │ │ free#0,SET test value formatter: 1 + │ ├── 00533 record (14 = 3 [4] + 10 + 1) + │ │ freely#0,SET test value formatter: 1 + │ ├── 00547 record (14 = 3 [4] + 10 + 1) + │ │ freeze#0,SET test value formatter: 1 + │ ├── 00561 record (16 = 3 [3] + 12 + 1) + │ │ fretful#0,SET test value formatter: 1 + │ ├── 00577 record (16 = 3 [2] + 12 + 1) + │ │ friend#0,SET test value formatter: 3 + │ ├── 00593 record (15 = 3 [6] + 11 + 1) + │ │ friending#0,SET test value formatter: 1 + │ ├── 00608 record (13 = 3 [6] + 9 + 1) + │ │ friends#0,SET test value formatter: 5 + │ ├── 00621 record (15 = 3 [2] + 10 + 2) + │ │ from#0,SET test value formatter: 21 + │ ├── 00636 record (14 = 3 [3] + 10 + 1) + │ │ frown#0,SET test value formatter: 1 + │ ├── 00650 record (17 = 3 [5] + 13 + 1) + │ │ frowningly#0,SET test value formatter: 1 + │ ├── 00667 record (18 = 3 [2] + 14 + 1) + │ │ fruitful#0,SET test value formatter: 1 + │ ├── 00685 record (15 = 3 [1] + 11 + 1) + │ │ full#0,SET test value formatter: 2 + │ ├── 00700 record (17 = 3 [2] + 13 + 1) + │ │ funeral#0,SET test value formatter: 3 + │ ├── 00717 record (17 = 3 [2] + 13 + 1) + │ │ furnish#0,SET test value formatter: 1 + │ ├── 00734 record (19 = 3 [0] + 15 + 1) [restart] + │ │ further#0,SET test value formatter: 4 + │ ├── 00753 record (17 = 3 [0] + 13 + 1) + │ │ gaged#0,SET test value formatter: 1 + │ ├── 00770 record (16 = 3 [2] + 12 + 1) + │ │ gainst#0,SET test value formatter: 2 + │ ├── 00786 record (13 = 3 [3] + 9 + 1) + │ │ gait#0,SET test value formatter: 1 + │ ├── 00799 record (16 = 3 [2] + 12 + 1) + │ │ galled#0,SET test value formatter: 1 + │ ├── 00815 record (13 = 3 [4] + 9 + 1) + │ │ galls#0,SET test value formatter: 1 + │ ├── 00828 record (14 = 3 [2] + 10 + 1) + │ │ gape#0,SET test value formatter: 1 + │ ├── 00842 record (17 = 3 [2] + 13 + 1) + │ │ garbage#0,SET test value formatter: 1 + │ ├── 00859 record (15 = 3 [3] + 11 + 1) + │ │ garden#0,SET test value formatter: 1 + │ ├── 00874 record (15 = 3 [2] + 11 + 1) + │ │ gates#0,SET test value formatter: 1 + │ ├── 00889 record (15 = 3 [2] + 11 + 1) + │ │ gaudy#0,SET test value formatter: 1 + │ ├── 00904 record (18 = 3 [1] + 14 + 1) + │ │ general#0,SET test value formatter: 1 + │ ├── 00922 record (15 = 3 [5] + 11 + 1) + │ │ generous#0,SET test value formatter: 1 + │ ├── 00937 record (15 = 3 [3] + 11 + 1) + │ │ gentle#0,SET test value formatter: 1 + │ ├── 00952 record (15 = 3 [6] + 11 + 1) + │ │ gentlemen#0,SET test value formatter: 5 + │ ├── 00967 record (18 = 3 [2] + 14 + 1) + │ │ gertrude#0,SET test value formatter: 4 + │ ├── 00985 record (15 = 3 [0] + 11 + 1) [restart] + │ │ get#0,SET test value formatter: 1 + │ ├── 01000 record (17 = 3 [1] + 12 + 2) + │ │ ghost#0,SET test value formatter: 26 + │ ├── 01017 record (17 = 3 [1] + 13 + 1) + │ │ gibber#0,SET test value formatter: 1 + │ ├── 01034 record (15 = 3 [2] + 11 + 1) + │ │ gifts#0,SET test value formatter: 3 + │ ├── 01049 record (14 = 3 [2] + 10 + 1) + │ │ gins#0,SET test value formatter: 1 + │ ├── 01063 record (14 = 3 [2] + 10 + 1) + │ │ girl#0,SET test value formatter: 1 + │ ├── 01077 record (15 = 3 [2] + 10 + 2) + │ │ give#0,SET test value formatter: 13 + │ ├── 01092 record (13 = 3 [4] + 9 + 1) + │ │ given#0,SET test value formatter: 4 + │ ├── 01105 record (15 = 3 [3] + 11 + 1) + │ │ giving#0,SET test value formatter: 3 + │ ├── 01120 record (15 = 3 [1] + 11 + 1) + │ │ glad#0,SET test value formatter: 2 + │ ├── 01135 record (18 = 3 [2] + 14 + 1) + │ │ glimpses#0,SET test value formatter: 1 + │ ├── 01153 record (15 = 3 [2] + 11 + 1) + │ │ globe#0,SET test value formatter: 1 + │ ├── 01168 record (13 = 3 [3] + 9 + 1) + │ │ glow#0,SET test value formatter: 1 + │ ├── 01181 record (14 = 3 [1] + 9 + 2) + │ │ go#0,SET test value formatter: 15 + │ ├── 01195 record (16 = 3 [2] + 12 + 1) + │ │ goblin#0,SET test value formatter: 1 + │ ├── 01211 record (13 = 3 [2] + 9 + 1) + │ │ god#0,SET test value formatter: 8 + │ ├── 01224 record (16 = 3 [0] + 12 + 1) [restart] + │ │ goes#0,SET test value formatter: 3 + │ ├── 01240 record (15 = 3 [2] + 11 + 1) + │ │ going#0,SET test value formatter: 1 + │ ├── 01255 record (14 = 3 [2] + 10 + 1) + │ │ gone#0,SET test value formatter: 4 + │ ├── 01269 record (15 = 3 [2] + 10 + 2) + │ │ good#0,SET test value formatter: 20 + │ ├── 01284 record (14 = 3 [4] + 10 + 1) + │ │ goodly#0,SET test value formatter: 1 + │ ├── 01298 record (16 = 3 [1] + 12 + 1) + │ │ grace#0,SET test value formatter: 6 + │ ├── 01314 record (13 = 3 [5] + 9 + 1) + │ │ graces#0,SET test value formatter: 1 + │ ├── 01327 record (16 = 3 [4] + 12 + 1) + │ │ gracious#0,SET test value formatter: 2 + │ ├── 01343 record (16 = 3 [3] + 12 + 1) + │ │ grapple#0,SET test value formatter: 1 + │ ├── 01359 record (14 = 3 [3] + 10 + 1) + │ │ grave#0,SET test value formatter: 1 + │ ├── 01373 record (13 = 3 [5] + 9 + 1) + │ │ graves#0,SET test value formatter: 1 + │ ├── 01386 record (15 = 3 [2] + 11 + 1) + │ │ great#0,SET test value formatter: 1 + │ ├── 01401 record (16 = 3 [5] + 12 + 1) + │ │ greatness#0,SET test value formatter: 1 + │ ├── 01417 record (14 = 3 [3] + 10 + 1) + │ │ green#0,SET test value formatter: 2 + │ ├── 01431 record (16 = 3 [4] + 12 + 1) + │ │ greeting#0,SET test value formatter: 1 + │ ├── 01447 record (15 = 3 [2] + 11 + 1) + │ │ grief#0,SET test value formatter: 3 + │ ├── 01462 record (20 = 3 [0] + 16 + 1) [restart] + │ │ grizzled#0,SET test value formatter: 1 + │ ├── 01482 record (15 = 3 [2] + 11 + 1) + │ │ gross#0,SET test value formatter: 2 + │ ├── 01497 record (15 = 3 [3] + 11 + 1) + │ │ ground#0,SET test value formatter: 3 + │ ├── 01512 record (13 = 3 [3] + 9 + 1) + │ │ grow#0,SET test value formatter: 2 + │ ├── 01525 record (13 = 3 [4] + 9 + 1) + │ │ grown#0,SET test value formatter: 1 + │ ├── 01538 record (13 = 3 [4] + 9 + 1) + │ │ grows#0,SET test value formatter: 2 + │ ├── 01551 record (16 = 3 [1] + 12 + 1) + │ │ guard#0,SET test value formatter: 1 + │ ├── 01567 record (16 = 3 [2] + 12 + 1) + │ │ guilty#0,SET test value formatter: 2 + │ ├── 01583 record (14 = 3 [0] + 10 + 1) + │ │ ha#0,SET test value formatter: 1 + │ ├── 01597 record (15 = 3 [2] + 11 + 1) + │ │ habit#0,SET test value formatter: 2 + │ ├── 01612 record (14 = 3 [2] + 9 + 2) + │ │ had#0,SET test value formatter: 13 + │ ├── 01626 record (14 = 3 [2] + 10 + 1) + │ │ hail#0,SET test value formatter: 1 + │ ├── 01640 record (13 = 3 [3] + 9 + 1) + │ │ hair#0,SET test value formatter: 1 + │ ├── 01653 record (16 = 3 [2] + 12 + 1) + │ │ hallow#0,SET test value formatter: 1 + │ ├── 01669 record (18 = 3 [2] + 12 + 3) + │ │ hamlet#0,SET test value formatter: 100 + │ ├── 01687 record (14 = 3 [2] + 10 + 1) + │ │ hand#0,SET test value formatter: 5 + │ ├── 01701 record (17 = 3 [0] + 13 + 1) [restart] + │ │ hands#0,SET test value formatter: 4 + │ ├── 01718 record (13 = 3 [3] + 9 + 1) + │ │ hang#0,SET test value formatter: 2 + │ ├── 01731 record (13 = 3 [2] + 9 + 1) + │ │ hap#0,SET test value formatter: 1 + │ ├── 01744 record (16 = 3 [3] + 12 + 1) + │ │ happily#0,SET test value formatter: 1 + │ ├── 01760 record (20 = 3 [2] + 16 + 1) + │ │ harbingers#0,SET test value formatter: 1 + │ ├── 01780 record (13 = 3 [3] + 9 + 1) + │ │ hard#0,SET test value formatter: 2 + │ ├── 01793 record (13 = 3 [4] + 9 + 1) + │ │ hardy#0,SET test value formatter: 1 + │ ├── 01806 record (15 = 3 [3] + 11 + 1) + │ │ harrow#0,SET test value formatter: 1 + │ ├── 01821 record (13 = 3 [6] + 9 + 1) + │ │ harrows#0,SET test value formatter: 1 + │ ├── 01834 record (13 = 3 [2] + 9 + 1) + │ │ has#0,SET test value formatter: 3 + │ ├── 01847 record (13 = 3 [3] + 9 + 1) + │ │ hast#0,SET test value formatter: 4 + │ ├── 01860 record (13 = 3 [4] + 9 + 1) + │ │ haste#0,SET test value formatter: 7 + │ ├── 01873 record (15 = 3 [2] + 11 + 1) + │ │ hatch#0,SET test value formatter: 1 + │ ├── 01888 record (14 = 3 [3] + 9 + 2) + │ │ hath#0,SET test value formatter: 15 + │ ├── 01902 record (15 = 3 [2] + 10 + 2) + │ │ have#0,SET test value formatter: 31 + │ ├── 01917 record (15 = 3 [3] + 11 + 1) + │ │ havior#0,SET test value formatter: 1 + │ ├── 01932 record (15 = 3 [0] + 10 + 2) [restart] + │ │ he#0,SET test value formatter: 34 + │ ├── 01947 record (14 = 3 [2] + 10 + 1) + │ │ head#0,SET test value formatter: 6 + │ ├── 01961 record (14 = 3 [4] + 10 + 1) + │ │ headed#0,SET test value formatter: 1 + │ ├── 01975 record (17 = 3 [4] + 13 + 1) + │ │ headshake#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01992 [restart 0] + │ │ ├── 01996 [restart 241] + │ │ ├── 02000 [restart 484] + │ │ ├── 02004 [restart 734] + │ │ ├── 02008 [restart 985] + │ │ ├── 02012 [restart 1224] + │ │ ├── 02016 [restart 1462] + │ │ ├── 02020 [restart 1701] + │ │ └── 02024 [restart 1932] + │ └── trailer [compression=none checksum=0x23db05a] + ├── data offset: 10217 length: 2042 + │ ├── 00000 record (18 = 3 [0] + 14 + 1) [restart] + │ │ health#0,SET test value formatter: 3 + │ ├── 00018 record (13 = 3 [3] + 9 + 1) + │ │ hear#0,SET test value formatter: 9 + │ ├── 00031 record (13 = 3 [4] + 9 + 1) + │ │ heard#0,SET test value formatter: 4 + │ ├── 00044 record (15 = 3 [4] + 11 + 1) + │ │ hearing#0,SET test value formatter: 1 + │ ├── 00059 record (13 = 3 [4] + 9 + 1) + │ │ hears#0,SET test value formatter: 2 + │ ├── 00072 record (14 = 3 [5] + 10 + 1) + │ │ hearsed#0,SET test value formatter: 1 + │ ├── 00086 record (14 = 3 [4] + 9 + 2) + │ │ heart#0,SET test value formatter: 10 + │ ├── 00100 record (15 = 3 [5] + 11 + 1) + │ │ heartily#0,SET test value formatter: 3 + │ ├── 00115 record (13 = 3 [5] + 9 + 1) + │ │ hearts#0,SET test value formatter: 1 + │ ├── 00128 record (13 = 3 [3] + 9 + 1) + │ │ heat#0,SET test value formatter: 1 + │ ├── 00141 record (16 = 3 [3] + 11 + 2) + │ │ heaven#0,SET test value formatter: 21 + │ ├── 00157 record (13 = 3 [6] + 9 + 1) + │ │ heavens#0,SET test value formatter: 1 + │ ├── 00170 record (13 = 3 [4] + 9 + 1) + │ │ heavy#0,SET test value formatter: 1 + │ ├── 00183 record (17 = 3 [2] + 13 + 1) + │ │ hebenon#0,SET test value formatter: 1 + │ ├── 00200 record (16 = 3 [2] + 12 + 1) + │ │ height#0,SET test value formatter: 1 + │ ├── 00216 record (14 = 3 [2] + 10 + 1) + │ │ held#0,SET test value formatter: 1 + │ ├── 00230 record (16 = 3 [0] + 12 + 1) [restart] + │ │ hell#0,SET test value formatter: 3 + │ ├── 00246 record (13 = 3 [3] + 9 + 1) + │ │ help#0,SET test value formatter: 2 + │ ├── 00259 record (13 = 3 [2] + 9 + 1) + │ │ her#0,SET test value formatter: 8 + │ ├── 00272 record (17 = 3 [3] + 13 + 1) + │ │ heraldry#0,SET test value formatter: 1 + │ ├── 00289 record (17 = 3 [3] + 13 + 1) + │ │ hercules#0,SET test value formatter: 1 + │ ├── 00306 record (14 = 3 [3] + 9 + 2) + │ │ here#0,SET test value formatter: 11 + │ ├── 00320 record (17 = 3 [4] + 13 + 1) + │ │ hereafter#0,SET test value formatter: 1 + │ ├── 00337 record (14 = 3 [4] + 10 + 1) + │ │ herein#0,SET test value formatter: 3 + │ ├── 00351 record (14 = 3 [1] + 10 + 1) + │ │ hic#0,SET test value formatter: 1 + │ ├── 00365 record (17 = 3 [2] + 13 + 1) + │ │ hideous#0,SET test value formatter: 1 + │ ├── 00382 record (14 = 3 [2] + 10 + 1) + │ │ hies#0,SET test value formatter: 1 + │ ├── 00396 record (14 = 3 [2] + 10 + 1) + │ │ high#0,SET test value formatter: 2 + │ ├── 00410 record (14 = 3 [4] + 10 + 1) + │ │ higher#0,SET test value formatter: 1 + │ ├── 00424 record (14 = 3 [2] + 10 + 1) + │ │ hill#0,SET test value formatter: 1 + │ ├── 00438 record (13 = 3 [4] + 9 + 1) + │ │ hillo#0,SET test value formatter: 2 + │ ├── 00451 record (14 = 3 [2] + 9 + 2) + │ │ him#0,SET test value formatter: 21 + │ ├── 00465 record (19 = 3 [0] + 15 + 1) [restart] + │ │ himself#0,SET test value formatter: 3 + │ ├── 00484 record (14 = 3 [2] + 9 + 2) + │ │ his#0,SET test value formatter: 57 + │ ├── 00498 record (16 = 3 [2] + 12 + 1) + │ │ hither#0,SET test value formatter: 1 + │ ├── 00514 record (14 = 3 [6] + 10 + 1) + │ │ hitherto#0,SET test value formatter: 1 + │ ├── 00528 record (13 = 3 [1] + 9 + 1) + │ │ ho#0,SET test value formatter: 5 + │ ├── 00541 record (14 = 3 [2] + 10 + 1) + │ │ hold#0,SET test value formatter: 9 + │ ├── 00555 record (15 = 3 [4] + 11 + 1) + │ │ holding#0,SET test value formatter: 1 + │ ├── 00570 record (13 = 3 [4] + 9 + 1) + │ │ holds#0,SET test value formatter: 2 + │ ├── 00583 record (14 = 3 [3] + 10 + 1) + │ │ holla#0,SET test value formatter: 1 + │ ├── 00597 record (13 = 3 [3] + 9 + 1) + │ │ holy#0,SET test value formatter: 1 + │ ├── 00610 record (16 = 3 [2] + 12 + 1) + │ │ honest#0,SET test value formatter: 2 + │ ├── 00626 record (15 = 3 [3] + 11 + 1) + │ │ honour#0,SET test value formatter: 5 + │ ├── 00641 record (16 = 3 [6] + 12 + 1) + │ │ honourable#0,SET test value formatter: 1 + │ ├── 00657 record (15 = 3 [2] + 11 + 1) + │ │ hoops#0,SET test value formatter: 1 + │ ├── 00672 record (18 = 3 [2] + 13 + 2) + │ │ horatio#0,SET test value formatter: 85 + │ ├── 00690 record (17 = 3 [3] + 13 + 1) + │ │ horrible#0,SET test value formatter: 4 + │ ├── 00707 record (20 = 3 [0] + 16 + 1) [restart] + │ │ horridly#0,SET test value formatter: 1 + │ ├── 00727 record (14 = 3 [2] + 10 + 1) + │ │ host#0,SET test value formatter: 1 + │ ├── 00741 record (13 = 3 [2] + 9 + 1) + │ │ hot#0,SET test value formatter: 1 + │ ├── 00754 record (14 = 3 [2] + 10 + 1) + │ │ hour#0,SET test value formatter: 6 + │ ├── 00768 record (14 = 3 [3] + 10 + 1) + │ │ house#0,SET test value formatter: 2 + │ ├── 00782 record (13 = 3 [2] + 9 + 1) + │ │ how#0,SET test value formatter: 7 + │ ├── 00795 record (18 = 3 [3] + 14 + 1) + │ │ howsoever#0,SET test value formatter: 1 + │ ├── 00813 record (17 = 3 [1] + 13 + 1) + │ │ humbly#0,SET test value formatter: 1 + │ ├── 00830 record (17 = 3 [2] + 13 + 1) + │ │ hundred#0,SET test value formatter: 1 + │ ├── 00847 record (19 = 3 [2] + 15 + 1) + │ │ husbandry#0,SET test value formatter: 1 + │ ├── 00866 record (19 = 3 [1] + 15 + 1) + │ │ hyperion#0,SET test value formatter: 1 + │ ├── 00885 record (15 = 3 [0] + 9 + 3) + │ │ i#0,SET test value formatter: 124 + │ ├── 00900 record (14 = 3 [1] + 10 + 1) + │ │ ice#0,SET test value formatter: 1 + │ ├── 00914 record (14 = 3 [1] + 9 + 2) + │ │ if#0,SET test value formatter: 22 + │ ├── 00928 record (20 = 3 [1] + 16 + 1) + │ │ ignorance#0,SET test value formatter: 1 + │ ├── 00948 record (13 = 3 [1] + 9 + 1) + │ │ ii#0,SET test value formatter: 1 + │ ├── 00961 record (15 = 3 [0] + 11 + 1) [restart] + │ │ iii#0,SET test value formatter: 1 + │ ├── 00976 record (17 = 3 [1] + 13 + 1) + │ │ illume#0,SET test value formatter: 1 + │ ├── 00993 record (16 = 3 [4] + 12 + 1) + │ │ illusion#0,SET test value formatter: 1 + │ ├── 01009 record (16 = 3 [1] + 12 + 1) + │ │ image#0,SET test value formatter: 1 + │ ├── 01025 record (19 = 3 [4] + 15 + 1) + │ │ imagination#0,SET test value formatter: 1 + │ ├── 01044 record (19 = 3 [2] + 15 + 1) + │ │ immediate#0,SET test value formatter: 1 + │ ├── 01063 record (17 = 3 [3] + 13 + 1) + │ │ imminent#0,SET test value formatter: 1 + │ ├── 01080 record (17 = 3 [3] + 13 + 1) + │ │ immortal#0,SET test value formatter: 1 + │ ├── 01097 record (16 = 3 [2] + 12 + 1) + │ │ impart#0,SET test value formatter: 3 + │ ├── 01113 record (16 = 3 [6] + 12 + 1) + │ │ impartment#0,SET test value formatter: 1 + │ ├── 01129 record (17 = 3 [4] + 13 + 1) + │ │ impatient#0,SET test value formatter: 1 + │ ├── 01146 record (22 = 3 [3] + 18 + 1) + │ │ imperfections#0,SET test value formatter: 1 + │ ├── 01168 record (15 = 3 [5] + 11 + 1) + │ │ imperial#0,SET test value formatter: 1 + │ ├── 01183 record (16 = 3 [3] + 12 + 1) + │ │ impious#0,SET test value formatter: 1 + │ ├── 01199 record (19 = 3 [3] + 15 + 1) + │ │ implements#0,SET test value formatter: 1 + │ ├── 01218 record (19 = 3 [4] + 15 + 1) + │ │ implorators#0,SET test value formatter: 1 + │ ├── 01237 record (21 = 3 [0] + 17 + 1) [restart] + │ │ importing#0,SET test value formatter: 1 + │ ├── 01258 record (16 = 3 [6] + 12 + 1) + │ │ importuned#0,SET test value formatter: 1 + │ ├── 01274 record (15 = 3 [8] + 11 + 1) + │ │ importunity#0,SET test value formatter: 1 + │ ├── 01289 record (16 = 3 [4] + 12 + 1) + │ │ impotent#0,SET test value formatter: 1 + │ ├── 01305 record (16 = 3 [3] + 12 + 1) + │ │ impress#0,SET test value formatter: 1 + │ ├── 01321 record (15 = 3 [1] + 9 + 3) + │ │ in#0,SET test value formatter: 118 + │ ├── 01336 record (16 = 3 [2] + 12 + 1) + │ │ incest#0,SET test value formatter: 1 + │ ├── 01352 record (16 = 3 [6] + 12 + 1) + │ │ incestuous#0,SET test value formatter: 2 + │ ├── 01368 record (18 = 3 [3] + 14 + 1) + │ │ incorrect#0,SET test value formatter: 1 + │ ├── 01386 record (17 = 3 [3] + 13 + 1) + │ │ increase#0,SET test value formatter: 1 + │ ├── 01403 record (16 = 3 [2] + 12 + 1) + │ │ indeed#0,SET test value formatter: 8 + │ ├── 01419 record (17 = 3 [2] + 13 + 1) + │ │ infants#0,SET test value formatter: 1 + │ ├── 01436 record (17 = 3 [3] + 13 + 1) + │ │ infinite#0,SET test value formatter: 1 + │ ├── 01453 record (18 = 3 [3] + 14 + 1) + │ │ influence#0,SET test value formatter: 1 + │ ├── 01471 record (15 = 3 [3] + 11 + 1) + │ │ inform#0,SET test value formatter: 1 + │ ├── 01486 record (21 = 3 [2] + 17 + 1) + │ │ inheritance#0,SET test value formatter: 1 + │ ├── 01507 record (16 = 3 [0] + 12 + 1) [restart] + │ │ inky#0,SET test value formatter: 1 + │ ├── 01523 record (17 = 3 [2] + 13 + 1) + │ │ instant#0,SET test value formatter: 2 + │ ├── 01540 record (20 = 3 [4] + 16 + 1) + │ │ instrumental#0,SET test value formatter: 1 + │ ├── 01560 record (16 = 3 [2] + 12 + 1) + │ │ intent#0,SET test value formatter: 1 + │ ├── 01576 record (13 = 3 [6] + 9 + 1) + │ │ intents#0,SET test value formatter: 1 + │ ├── 01589 record (13 = 3 [3] + 9 + 1) + │ │ into#0,SET test value formatter: 5 + │ ├── 01602 record (15 = 3 [2] + 11 + 1) + │ │ inurn#0,SET test value formatter: 1 + │ ├── 01617 record (21 = 3 [2] + 17 + 1) + │ │ investments#0,SET test value formatter: 1 + │ ├── 01638 record (16 = 3 [3] + 12 + 1) + │ │ invites#0,SET test value formatter: 1 + │ ├── 01654 record (21 = 3 [3] + 17 + 1) + │ │ invulnerable#0,SET test value formatter: 1 + │ ├── 01675 record (16 = 3 [2] + 12 + 1) + │ │ inward#0,SET test value formatter: 1 + │ ├── 01691 record (14 = 3 [1] + 9 + 2) + │ │ is#0,SET test value formatter: 62 + │ ├── 01705 record (15 = 3 [2] + 11 + 1) + │ │ issue#0,SET test value formatter: 1 + │ ├── 01720 record (15 = 3 [1] + 9 + 3) + │ │ it#0,SET test value formatter: 126 + │ ├── 01735 record (13 = 3 [2] + 9 + 1) + │ │ its#0,SET test value formatter: 1 + │ ├── 01748 record (15 = 3 [3] + 11 + 1) + │ │ itself#0,SET test value formatter: 9 + │ ├── 01763 record (14 = 3 [0] + 10 + 1) [restart] + │ │ iv#0,SET test value formatter: 1 + │ ├── 01777 record (16 = 3 [0] + 12 + 1) + │ │ jaws#0,SET test value formatter: 1 + │ ├── 01793 record (16 = 3 [1] + 12 + 1) + │ │ jelly#0,SET test value formatter: 1 + │ ├── 01809 record (17 = 3 [1] + 13 + 1) + │ │ jocund#0,SET test value formatter: 1 + │ ├── 01826 record (15 = 3 [2] + 11 + 1) + │ │ joint#0,SET test value formatter: 2 + │ ├── 01841 record (16 = 3 [5] + 12 + 1) + │ │ jointress#0,SET test value formatter: 1 + │ ├── 01857 record (13 = 3 [2] + 9 + 1) + │ │ joy#0,SET test value formatter: 1 + │ ├── 01870 record (19 = 3 [1] + 15 + 1) + │ │ judgment#0,SET test value formatter: 1 + │ ├── 01889 record (15 = 3 [2] + 11 + 1) + │ │ juice#0,SET test value formatter: 1 + │ ├── 01904 record (16 = 3 [2] + 12 + 1) + │ │ julius#0,SET test value formatter: 1 + │ ├── 01920 record (14 = 3 [2] + 10 + 1) + │ │ jump#0,SET test value formatter: 1 + │ ├── 01934 record (16 = 3 [0] + 12 + 1) + │ │ keep#0,SET test value formatter: 3 + │ ├── 01950 record (13 = 3 [4] + 9 + 1) + │ │ keeps#0,SET test value formatter: 1 + │ ├── 01963 record (14 = 3 [2] + 10 + 1) + │ │ kept#0,SET test value formatter: 1 + │ ├── 01977 record (16 = 3 [2] + 12 + 1) + │ │ kettle#0,SET test value formatter: 1 + │ ├── 01993 record (13 = 3 [2] + 9 + 1) + │ │ key#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 02006 [restart 0] + │ │ ├── 02010 [restart 230] + │ │ ├── 02014 [restart 465] + │ │ ├── 02018 [restart 707] + │ │ ├── 02022 [restart 961] + │ │ ├── 02026 [restart 1237] + │ │ ├── 02030 [restart 1507] + │ │ └── 02034 [restart 1763] + │ └── trailer [compression=none checksum=0x935ea812] + ├── data offset: 12264 length: 2039 + │ ├── 00000 record (15 = 3 [0] + 11 + 1) [restart] + │ │ kin#0,SET test value formatter: 1 + │ ├── 00015 record (13 = 3 [3] + 9 + 1) + │ │ kind#0,SET test value formatter: 1 + │ ├── 00028 record (14 = 3 [3] + 9 + 2) + │ │ king#0,SET test value formatter: 23 + │ ├── 00042 record (15 = 3 [4] + 11 + 1) + │ │ kingdom#0,SET test value formatter: 1 + │ ├── 00057 record (16 = 3 [1] + 12 + 1) + │ │ knave#0,SET test value formatter: 1 + │ ├── 00073 record (14 = 3 [2] + 10 + 1) + │ │ knew#0,SET test value formatter: 1 + │ ├── 00087 record (17 = 3 [2] + 13 + 1) + │ │ knotted#0,SET test value formatter: 1 + │ ├── 00104 record (14 = 3 [3] + 9 + 2) + │ │ know#0,SET test value formatter: 17 + │ ├── 00118 record (13 = 3 [4] + 9 + 1) + │ │ known#0,SET test value formatter: 2 + │ ├── 00131 record (13 = 3 [4] + 9 + 1) + │ │ knows#0,SET test value formatter: 1 + │ ├── 00144 record (20 = 3 [0] + 16 + 1) + │ │ labourer#0,SET test value formatter: 1 + │ ├── 00164 record (16 = 3 [6] + 12 + 1) + │ │ laboursome#0,SET test value formatter: 1 + │ ├── 00180 record (14 = 3 [2] + 10 + 1) + │ │ lack#0,SET test value formatter: 1 + │ ├── 00194 record (13 = 3 [4] + 9 + 1) + │ │ lacks#0,SET test value formatter: 1 + │ ├── 00207 record (18 = 3 [2] + 13 + 2) + │ │ laertes#0,SET test value formatter: 16 + │ ├── 00225 record (14 = 3 [2] + 10 + 1) + │ │ land#0,SET test value formatter: 2 + │ ├── 00239 record (17 = 3 [0] + 13 + 1) [restart] + │ │ lands#0,SET test value formatter: 3 + │ ├── 00256 record (16 = 3 [2] + 12 + 1) + │ │ larger#0,SET test value formatter: 1 + │ ├── 00272 record (14 = 3 [2] + 10 + 1) + │ │ last#0,SET test value formatter: 3 + │ ├── 00286 record (15 = 3 [4] + 11 + 1) + │ │ lasting#0,SET test value formatter: 1 + │ ├── 00301 record (14 = 3 [2] + 10 + 1) + │ │ late#0,SET test value formatter: 3 + │ ├── 00315 record (13 = 3 [2] + 9 + 1) + │ │ law#0,SET test value formatter: 2 + │ ├── 00328 record (16 = 3 [3] + 12 + 1) + │ │ lawless#0,SET test value formatter: 1 + │ ├── 00344 record (13 = 3 [2] + 9 + 1) + │ │ lay#0,SET test value formatter: 1 + │ ├── 00357 record (15 = 3 [2] + 11 + 1) + │ │ lazar#0,SET test value formatter: 1 + │ ├── 00372 record (15 = 3 [1] + 11 + 1) + │ │ lead#0,SET test value formatter: 1 + │ ├── 00387 record (14 = 3 [3] + 10 + 1) + │ │ least#0,SET test value formatter: 2 + │ ├── 00401 record (14 = 3 [3] + 10 + 1) + │ │ leave#0,SET test value formatter: 8 + │ ├── 00415 record (14 = 3 [5] + 10 + 1) + │ │ leavens#0,SET test value formatter: 1 + │ ├── 00429 record (14 = 3 [2] + 10 + 1) + │ │ left#0,SET test value formatter: 1 + │ ├── 00443 record (17 = 3 [2] + 13 + 1) + │ │ leisure#0,SET test value formatter: 1 + │ ├── 00460 record (14 = 3 [2] + 10 + 1) + │ │ lend#0,SET test value formatter: 1 + │ ├── 00474 record (18 = 3 [0] + 14 + 1) [restart] + │ │ lender#0,SET test value formatter: 1 + │ ├── 00492 record (13 = 3 [4] + 9 + 1) + │ │ lends#0,SET test value formatter: 1 + │ ├── 00505 record (15 = 3 [3] + 11 + 1) + │ │ length#0,SET test value formatter: 1 + │ ├── 00520 record (18 = 3 [2] + 14 + 1) + │ │ leperous#0,SET test value formatter: 1 + │ ├── 00538 record (14 = 3 [2] + 10 + 1) + │ │ less#0,SET test value formatter: 2 + │ ├── 00552 record (14 = 3 [4] + 10 + 1) + │ │ lesson#0,SET test value formatter: 1 + │ ├── 00566 record (14 = 3 [2] + 9 + 2) + │ │ let#0,SET test value formatter: 23 + │ ├── 00580 record (14 = 3 [3] + 10 + 1) + │ │ lethe#0,SET test value formatter: 1 + │ ├── 00594 record (13 = 3 [3] + 9 + 1) + │ │ lets#0,SET test value formatter: 1 + │ ├── 00607 record (16 = 3 [2] + 12 + 1) + │ │ levies#0,SET test value formatter: 1 + │ ├── 00623 record (18 = 3 [2] + 14 + 1) + │ │ lewdness#0,SET test value formatter: 1 + │ ├── 00641 record (20 = 3 [1] + 16 + 1) + │ │ libertine#0,SET test value formatter: 1 + │ ├── 00661 record (14 = 3 [2] + 10 + 1) + │ │ lids#0,SET test value formatter: 1 + │ ├── 00675 record (18 = 3 [2] + 14 + 1) + │ │ liegemen#0,SET test value formatter: 1 + │ ├── 00693 record (13 = 3 [3] + 9 + 1) + │ │ lies#0,SET test value formatter: 1 + │ ├── 00706 record (14 = 3 [2] + 10 + 1) + │ │ life#0,SET test value formatter: 7 + │ ├── 00720 record (18 = 3 [0] + 14 + 1) [restart] + │ │ lifted#0,SET test value formatter: 1 + │ ├── 00738 record (15 = 3 [2] + 11 + 1) + │ │ light#0,SET test value formatter: 1 + │ ├── 00753 record (15 = 3 [5] + 11 + 1) + │ │ lightest#0,SET test value formatter: 1 + │ ├── 00768 record (15 = 3 [2] + 10 + 2) + │ │ like#0,SET test value formatter: 23 + │ ├── 00783 record (14 = 3 [2] + 10 + 1) + │ │ link#0,SET test value formatter: 1 + │ ├── 00797 record (14 = 3 [2] + 10 + 1) + │ │ lion#0,SET test value formatter: 1 + │ ├── 00811 record (14 = 3 [2] + 10 + 1) + │ │ lips#0,SET test value formatter: 1 + │ ├── 00825 record (16 = 3 [2] + 12 + 1) + │ │ liquid#0,SET test value formatter: 1 + │ ├── 00841 record (14 = 3 [2] + 10 + 1) + │ │ list#0,SET test value formatter: 6 + │ ├── 00855 record (13 = 3 [4] + 9 + 1) + │ │ lists#0,SET test value formatter: 1 + │ ├── 00868 record (16 = 3 [2] + 12 + 1) + │ │ little#0,SET test value formatter: 3 + │ ├── 00884 record (14 = 3 [2] + 10 + 1) + │ │ live#0,SET test value formatter: 3 + │ ├── 00898 record (14 = 3 [4] + 10 + 1) + │ │ livery#0,SET test value formatter: 1 + │ ├── 00912 record (13 = 3 [4] + 9 + 1) + │ │ lives#0,SET test value formatter: 1 + │ ├── 00925 record (14 = 3 [1] + 9 + 2) + │ │ ll#0,SET test value formatter: 18 + │ ├── 00939 record (13 = 3 [1] + 9 + 1) + │ │ lo#0,SET test value formatter: 1 + │ ├── 00952 record (16 = 3 [0] + 12 + 1) [restart] + │ │ loan#0,SET test value formatter: 1 + │ ├── 00968 record (18 = 3 [3] + 14 + 1) + │ │ loathsome#0,SET test value formatter: 1 + │ ├── 00986 record (14 = 3 [2] + 10 + 1) + │ │ lock#0,SET test value formatter: 1 + │ ├── 01000 record (13 = 3 [4] + 9 + 1) + │ │ locks#0,SET test value formatter: 1 + │ ├── 01013 record (15 = 3 [2] + 11 + 1) + │ │ lodge#0,SET test value formatter: 1 + │ ├── 01028 record (15 = 3 [2] + 11 + 1) + │ │ lofty#0,SET test value formatter: 1 + │ ├── 01043 record (14 = 3 [2] + 10 + 1) + │ │ long#0,SET test value formatter: 4 + │ ├── 01057 record (14 = 3 [4] + 10 + 1) + │ │ longer#0,SET test value formatter: 3 + │ ├── 01071 record (15 = 3 [2] + 10 + 2) + │ │ look#0,SET test value formatter: 10 + │ ├── 01086 record (13 = 3 [4] + 9 + 1) + │ │ looks#0,SET test value formatter: 2 + │ ├── 01099 record (14 = 3 [3] + 10 + 1) + │ │ loose#0,SET test value formatter: 1 + │ ├── 01113 record (15 = 3 [2] + 10 + 2) + │ │ lord#0,SET test value formatter: 60 + │ ├── 01128 record (13 = 3 [4] + 9 + 1) + │ │ lords#0,SET test value formatter: 1 + │ ├── 01141 record (15 = 3 [5] + 11 + 1) + │ │ lordship#0,SET test value formatter: 1 + │ ├── 01156 record (14 = 3 [2] + 10 + 1) + │ │ lose#0,SET test value formatter: 2 + │ ├── 01170 record (13 = 3 [4] + 9 + 1) + │ │ loses#0,SET test value formatter: 1 + │ ├── 01183 record (16 = 3 [0] + 12 + 1) [restart] + │ │ loss#0,SET test value formatter: 1 + │ ├── 01199 record (13 = 3 [3] + 9 + 1) + │ │ lost#0,SET test value formatter: 5 + │ ├── 01212 record (14 = 3 [2] + 10 + 1) + │ │ loud#0,SET test value formatter: 1 + │ ├── 01226 record (14 = 3 [2] + 10 + 1) + │ │ love#0,SET test value formatter: 8 + │ ├── 01240 record (13 = 3 [4] + 9 + 1) + │ │ loves#0,SET test value formatter: 5 + │ ├── 01253 record (15 = 3 [3] + 11 + 1) + │ │ loving#0,SET test value formatter: 2 + │ ├── 01268 record (15 = 3 [1] + 11 + 1) + │ │ lust#0,SET test value formatter: 2 + │ ├── 01283 record (16 = 3 [2] + 12 + 1) + │ │ luxury#0,SET test value formatter: 1 + │ ├── 01299 record (13 = 3 [0] + 9 + 1) + │ │ m#0,SET test value formatter: 2 + │ ├── 01312 record (16 = 3 [1] + 12 + 1) + │ │ madam#0,SET test value formatter: 4 + │ ├── 01328 record (13 = 3 [3] + 9 + 1) + │ │ made#0,SET test value formatter: 8 + │ ├── 01341 record (16 = 3 [3] + 12 + 1) + │ │ madness#0,SET test value formatter: 1 + │ ├── 01357 record (14 = 3 [2] + 10 + 1) + │ │ maid#0,SET test value formatter: 1 + │ ├── 01371 record (14 = 3 [4] + 10 + 1) + │ │ maiden#0,SET test value formatter: 1 + │ ├── 01385 record (13 = 3 [3] + 9 + 1) + │ │ main#0,SET test value formatter: 2 + │ ├── 01398 record (20 = 3 [2] + 16 + 1) + │ │ majestical#0,SET test value formatter: 1 + │ ├── 01418 record (19 = 3 [0] + 15 + 1) [restart] + │ │ majesty#0,SET test value formatter: 1 + │ ├── 01437 record (14 = 3 [2] + 10 + 1) + │ │ make#0,SET test value formatter: 8 + │ ├── 01451 record (13 = 3 [4] + 9 + 1) + │ │ makes#0,SET test value formatter: 2 + │ ├── 01464 record (15 = 3 [3] + 11 + 1) + │ │ making#0,SET test value formatter: 2 + │ ├── 01479 record (19 = 3 [2] + 15 + 1) + │ │ malicious#0,SET test value formatter: 1 + │ ├── 01498 record (14 = 3 [2] + 9 + 2) + │ │ man#0,SET test value formatter: 11 + │ ├── 01512 record (15 = 3 [3] + 11 + 1) + │ │ manner#0,SET test value formatter: 1 + │ ├── 01527 record (13 = 3 [6] + 9 + 1) + │ │ manners#0,SET test value formatter: 1 + │ ├── 01540 record (15 = 3 [3] + 11 + 1) + │ │ mantle#0,SET test value formatter: 1 + │ ├── 01555 record (13 = 3 [3] + 9 + 1) + │ │ many#0,SET test value formatter: 2 + │ ├── 01568 record (16 = 3 [2] + 12 + 1) + │ │ marble#0,SET test value formatter: 1 + │ ├── 01584 record (19 = 3 [3] + 14 + 2) + │ │ marcellus#0,SET test value formatter: 46 + │ ├── 01603 record (13 = 3 [4] + 9 + 1) + │ │ march#0,SET test value formatter: 2 + │ ├── 01616 record (13 = 3 [3] + 9 + 1) + │ │ mark#0,SET test value formatter: 2 + │ ├── 01629 record (17 = 3 [3] + 13 + 1) + │ │ marriage#0,SET test value formatter: 3 + │ ├── 01646 record (14 = 3 [5] + 10 + 1) + │ │ married#0,SET test value formatter: 2 + │ ├── 01660 record (18 = 3 [0] + 14 + 1) [restart] + │ │ marrow#0,SET test value formatter: 1 + │ ├── 01678 record (13 = 3 [4] + 9 + 1) + │ │ marry#0,SET test value formatter: 3 + │ ├── 01691 record (13 = 3 [3] + 9 + 1) + │ │ mart#0,SET test value formatter: 1 + │ ├── 01704 record (15 = 3 [4] + 11 + 1) + │ │ martial#0,SET test value formatter: 1 + │ ├── 01719 record (15 = 3 [3] + 11 + 1) + │ │ marvel#0,SET test value formatter: 1 + │ ├── 01734 record (15 = 3 [2] + 11 + 1) + │ │ matin#0,SET test value formatter: 1 + │ ├── 01749 record (15 = 3 [3] + 11 + 1) + │ │ matter#0,SET test value formatter: 1 + │ ├── 01764 record (14 = 3 [2] + 9 + 2) + │ │ may#0,SET test value formatter: 19 + │ ├── 01778 record (14 = 3 [1] + 9 + 2) + │ │ me#0,SET test value formatter: 47 + │ ├── 01792 record (14 = 3 [2] + 10 + 1) + │ │ mean#0,SET test value formatter: 2 + │ ├── 01806 record (13 = 3 [4] + 9 + 1) + │ │ means#0,SET test value formatter: 2 + │ ├── 01819 record (14 = 3 [3] + 10 + 1) + │ │ meats#0,SET test value formatter: 1 + │ ├── 01833 record (20 = 3 [2] + 16 + 1) + │ │ meditation#0,SET test value formatter: 1 + │ ├── 01853 record (14 = 3 [2] + 10 + 1) + │ │ meet#0,SET test value formatter: 3 + │ ├── 01867 record (15 = 3 [4] + 11 + 1) + │ │ meeting#0,SET test value formatter: 1 + │ ├── 01882 record (14 = 3 [2] + 10 + 1) + │ │ melt#0,SET test value formatter: 1 + │ ├── 01896 record (18 = 3 [0] + 14 + 1) [restart] + │ │ memory#0,SET test value formatter: 5 + │ ├── 01914 record (13 = 3 [2] + 9 + 1) + │ │ men#0,SET test value formatter: 3 + │ ├── 01927 record (15 = 3 [2] + 11 + 1) + │ │ mercy#0,SET test value formatter: 2 + │ ├── 01942 record (13 = 3 [3] + 9 + 1) + │ │ mere#0,SET test value formatter: 1 + │ ├── 01955 record (14 = 3 [4] + 10 + 1) + │ │ merely#0,SET test value formatter: 1 + │ ├── 01969 record (17 = 3 [2] + 13 + 1) + │ │ message#0,SET test value formatter: 1 + │ ├── 01986 record (13 = 3 [2] + 9 + 1) + │ │ met#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01999 [restart 0] + │ │ ├── 02003 [restart 239] + │ │ ├── 02007 [restart 474] + │ │ ├── 02011 [restart 720] + │ │ ├── 02015 [restart 952] + │ │ ├── 02019 [restart 1183] + │ │ ├── 02023 [restart 1418] + │ │ ├── 02027 [restart 1660] + │ │ └── 02031 [restart 1896] + │ └── trailer [compression=none checksum=0xb57d9fa6] + ├── data offset: 14308 length: 2037 + │ ├── 00000 record (20 = 3 [0] + 16 + 1) [restart] + │ │ methinks#0,SET test value formatter: 2 + │ ├── 00020 record (17 = 3 [4] + 13 + 1) + │ │ methought#0,SET test value formatter: 1 + │ ├── 00037 record (15 = 3 [3] + 11 + 1) + │ │ mettle#0,SET test value formatter: 1 + │ ├── 00052 record (17 = 3 [1] + 13 + 1) + │ │ middle#0,SET test value formatter: 1 + │ ├── 00069 record (15 = 3 [2] + 11 + 1) + │ │ might#0,SET test value formatter: 7 + │ ├── 00084 record (16 = 3 [5] + 12 + 1) + │ │ mightiest#0,SET test value formatter: 1 + │ ├── 00100 record (14 = 3 [2] + 10 + 1) + │ │ milk#0,SET test value formatter: 1 + │ ├── 00114 record (14 = 3 [2] + 10 + 1) + │ │ mind#0,SET test value formatter: 6 + │ ├── 00128 record (13 = 3 [3] + 9 + 1) + │ │ mine#0,SET test value formatter: 6 + │ ├── 00141 record (18 = 3 [3] + 14 + 1) + │ │ ministers#0,SET test value formatter: 1 + │ ├── 00159 record (15 = 3 [3] + 11 + 1) + │ │ minute#0,SET test value formatter: 1 + │ ├── 00174 record (13 = 3 [6] + 9 + 1) + │ │ minutes#0,SET test value formatter: 1 + │ ├── 00187 record (15 = 3 [2] + 11 + 1) + │ │ mirth#0,SET test value formatter: 1 + │ ├── 00202 record (15 = 3 [1] + 11 + 1) + │ │ mock#0,SET test value formatter: 1 + │ ├── 00217 record (15 = 3 [4] + 11 + 1) + │ │ mockery#0,SET test value formatter: 1 + │ ├── 00232 record (18 = 3 [2] + 14 + 1) + │ │ moderate#0,SET test value formatter: 1 + │ ├── 00250 record (18 = 3 [0] + 14 + 1) [restart] + │ │ moiety#0,SET test value formatter: 1 + │ ├── 00268 record (14 = 3 [3] + 10 + 1) + │ │ moist#0,SET test value formatter: 1 + │ ├── 00282 record (14 = 3 [2] + 10 + 1) + │ │ mole#0,SET test value formatter: 2 + │ ├── 00296 record (16 = 3 [2] + 12 + 1) + │ │ moment#0,SET test value formatter: 1 + │ ├── 00312 record (15 = 3 [2] + 11 + 1) + │ │ month#0,SET test value formatter: 3 + │ ├── 00327 record (13 = 3 [5] + 9 + 1) + │ │ months#0,SET test value formatter: 1 + │ ├── 00340 record (15 = 3 [2] + 11 + 1) + │ │ moods#0,SET test value formatter: 1 + │ ├── 00355 record (13 = 3 [3] + 9 + 1) + │ │ moon#0,SET test value formatter: 2 + │ ├── 00368 record (15 = 3 [2] + 10 + 2) + │ │ more#0,SET test value formatter: 19 + │ ├── 00383 record (13 = 3 [3] + 9 + 1) + │ │ morn#0,SET test value formatter: 3 + │ ├── 00396 record (15 = 3 [4] + 11 + 1) + │ │ morning#0,SET test value formatter: 3 + │ ├── 00411 record (15 = 3 [2] + 10 + 2) + │ │ most#0,SET test value formatter: 28 + │ ├── 00426 record (14 = 3 [2] + 10 + 1) + │ │ mote#0,SET test value formatter: 1 + │ ├── 00440 record (15 = 3 [3] + 11 + 1) + │ │ mother#0,SET test value formatter: 5 + │ ├── 00455 record (15 = 3 [3] + 11 + 1) + │ │ motion#0,SET test value formatter: 1 + │ ├── 00470 record (14 = 3 [4] + 10 + 1) + │ │ motive#0,SET test value formatter: 2 + │ ├── 00484 record (17 = 3 [0] + 13 + 1) [restart] + │ │ mourn#0,SET test value formatter: 1 + │ ├── 00501 record (15 = 3 [5] + 11 + 1) + │ │ mourning#0,SET test value formatter: 1 + │ ├── 00516 record (14 = 3 [3] + 10 + 1) + │ │ mouse#0,SET test value formatter: 1 + │ ├── 00530 record (14 = 3 [3] + 10 + 1) + │ │ mouth#0,SET test value formatter: 1 + │ ├── 00544 record (15 = 3 [2] + 11 + 1) + │ │ moved#0,SET test value formatter: 1 + │ ├── 00559 record (15 = 3 [1] + 11 + 1) + │ │ much#0,SET test value formatter: 9 + │ ├── 00574 record (16 = 3 [2] + 12 + 1) + │ │ murder#0,SET test value formatter: 3 + │ ├── 00590 record (15 = 3 [2] + 10 + 2) + │ │ must#0,SET test value formatter: 14 + │ ├── 00605 record (15 = 3 [1] + 9 + 3) + │ │ my#0,SET test value formatter: 126 + │ ├── 00620 record (16 = 3 [2] + 12 + 1) + │ │ myself#0,SET test value formatter: 4 + │ ├── 00636 record (16 = 3 [0] + 12 + 1) + │ │ name#0,SET test value formatter: 2 + │ ├── 00652 record (17 = 3 [2] + 13 + 1) + │ │ nations#0,SET test value formatter: 1 + │ ├── 00669 record (14 = 3 [4] + 10 + 1) + │ │ native#0,SET test value formatter: 2 + │ ├── 00683 record (16 = 3 [3] + 12 + 1) + │ │ natural#0,SET test value formatter: 2 + │ ├── 00699 record (14 = 3 [5] + 9 + 2) + │ │ nature#0,SET test value formatter: 13 + │ ├── 00713 record (13 = 3 [2] + 9 + 1) + │ │ nay#0,SET test value formatter: 7 + │ ├── 00726 record (14 = 3 [0] + 10 + 1) [restart] + │ │ ne#0,SET test value formatter: 1 + │ ├── 00740 record (14 = 3 [2] + 10 + 1) + │ │ near#0,SET test value formatter: 3 + │ ├── 00754 record (21 = 3 [2] + 17 + 1) + │ │ necessaries#0,SET test value formatter: 1 + │ ├── 00775 record (14 = 3 [2] + 10 + 1) + │ │ need#0,SET test value formatter: 1 + │ ├── 00789 record (15 = 3 [4] + 11 + 1) + │ │ needful#0,SET test value formatter: 1 + │ ├── 00804 record (13 = 3 [4] + 9 + 1) + │ │ needs#0,SET test value formatter: 1 + │ ├── 00817 record (17 = 3 [2] + 13 + 1) + │ │ neither#0,SET test value formatter: 1 + │ ├── 00834 record (16 = 3 [2] + 12 + 1) + │ │ nemean#0,SET test value formatter: 1 + │ ├── 00850 record (16 = 3 [2] + 12 + 1) + │ │ nephew#0,SET test value formatter: 1 + │ ├── 00866 record (16 = 3 [3] + 12 + 1) + │ │ neptune#0,SET test value formatter: 1 + │ ├── 00882 record (15 = 3 [2] + 11 + 1) + │ │ nerve#0,SET test value formatter: 1 + │ ├── 00897 record (15 = 3 [2] + 11 + 1) + │ │ never#0,SET test value formatter: 6 + │ ├── 00912 record (13 = 3 [2] + 9 + 1) + │ │ new#0,SET test value formatter: 1 + │ ├── 00925 record (13 = 3 [3] + 9 + 1) + │ │ news#0,SET test value formatter: 2 + │ ├── 00938 record (17 = 3 [1] + 12 + 2) + │ │ night#0,SET test value formatter: 22 + │ ├── 00955 record (14 = 3 [5] + 10 + 1) + │ │ nighted#0,SET test value formatter: 1 + │ ├── 00969 record (19 = 3 [0] + 15 + 1) [restart] + │ │ nightly#0,SET test value formatter: 1 + │ ├── 00988 record (13 = 3 [5] + 9 + 1) + │ │ nights#0,SET test value formatter: 3 + │ ├── 01001 record (15 = 3 [2] + 11 + 1) + │ │ niobe#0,SET test value formatter: 1 + │ ├── 01016 record (17 = 3 [2] + 13 + 1) + │ │ nipping#0,SET test value formatter: 1 + │ ├── 01033 record (14 = 3 [1] + 9 + 2) + │ │ no#0,SET test value formatter: 28 + │ ├── 01047 record (18 = 3 [2] + 14 + 1) + │ │ nobility#0,SET test value formatter: 1 + │ ├── 01065 record (14 = 3 [3] + 10 + 1) + │ │ noble#0,SET test value formatter: 5 + │ ├── 01079 record (14 = 3 [2] + 10 + 1) + │ │ none#0,SET test value formatter: 2 + │ ├── 01093 record (14 = 3 [2] + 9 + 2) + │ │ nor#0,SET test value formatter: 14 + │ ├── 01107 record (15 = 3 [3] + 11 + 1) + │ │ norway#0,SET test value formatter: 5 + │ ├── 01122 record (14 = 3 [2] + 9 + 2) + │ │ not#0,SET test value formatter: 80 + │ ├── 01136 record (13 = 3 [3] + 9 + 1) + │ │ note#0,SET test value formatter: 2 + │ ├── 01149 record (16 = 3 [3] + 12 + 1) + │ │ nothing#0,SET test value formatter: 2 + │ ├── 01165 record (14 = 3 [2] + 9 + 2) + │ │ now#0,SET test value formatter: 19 + │ ├── 01179 record (14 = 3 [0] + 9 + 2) + │ │ o#0,SET test value formatter: 30 + │ ├── 01193 record (15 = 3 [1] + 11 + 1) + │ │ oath#0,SET test value formatter: 1 + │ ├── 01208 record (16 = 3 [0] + 12 + 1) [restart] + │ │ obey#0,SET test value formatter: 3 + │ ├── 01224 record (16 = 3 [2] + 12 + 1) + │ │ object#0,SET test value formatter: 1 + │ ├── 01240 record (20 = 3 [2] + 16 + 1) + │ │ obligation#0,SET test value formatter: 1 + │ ├── 01260 record (20 = 3 [2] + 16 + 1) + │ │ obsequious#0,SET test value formatter: 1 + │ ├── 01280 record (18 = 3 [4] + 14 + 1) + │ │ observance#0,SET test value formatter: 1 + │ ├── 01298 record (13 = 3 [8] + 9 + 1) + │ │ observant#0,SET test value formatter: 1 + │ ├── 01311 record (16 = 3 [7] + 12 + 1) + │ │ observation#0,SET test value formatter: 1 + │ ├── 01327 record (18 = 3 [3] + 14 + 1) + │ │ obstinate#0,SET test value formatter: 1 + │ ├── 01345 record (19 = 3 [1] + 15 + 1) + │ │ occasion#0,SET test value formatter: 1 + │ ├── 01364 record (14 = 3 [1] + 10 + 1) + │ │ odd#0,SET test value formatter: 1 + │ ├── 01378 record (15 = 3 [1] + 9 + 3) + │ │ of#0,SET test value formatter: 176 + │ ├── 01393 record (13 = 3 [2] + 9 + 1) + │ │ off#0,SET test value formatter: 6 + │ ├── 01406 record (16 = 3 [3] + 12 + 1) + │ │ offence#0,SET test value formatter: 2 + │ ├── 01422 record (13 = 3 [5] + 9 + 1) + │ │ offend#0,SET test value formatter: 1 + │ ├── 01435 record (14 = 3 [6] + 10 + 1) + │ │ offended#0,SET test value formatter: 1 + │ ├── 01449 record (13 = 3 [4] + 9 + 1) + │ │ offer#0,SET test value formatter: 2 + │ ├── 01462 record (15 = 3 [0] + 11 + 1) [restart] + │ │ oft#0,SET test value formatter: 7 + │ ├── 01477 record (14 = 3 [1] + 10 + 1) + │ │ old#0,SET test value formatter: 4 + │ ├── 01491 record (15 = 3 [1] + 11 + 1) + │ │ omen#0,SET test value formatter: 1 + │ ├── 01506 record (14 = 3 [1] + 9 + 2) + │ │ on#0,SET test value formatter: 25 + │ ├── 01520 record (14 = 3 [2] + 10 + 1) + │ │ once#0,SET test value formatter: 8 + │ ├── 01534 record (13 = 3 [2] + 9 + 1) + │ │ one#0,SET test value formatter: 6 + │ ├── 01547 record (15 = 3 [1] + 11 + 1) + │ │ oped#0,SET test value formatter: 1 + │ ├── 01562 record (13 = 3 [3] + 9 + 1) + │ │ open#0,SET test value formatter: 1 + │ ├── 01575 record (18 = 3 [2] + 13 + 2) + │ │ ophelia#0,SET test value formatter: 15 + │ ├── 01593 record (17 = 3 [2] + 13 + 1) + │ │ opinion#0,SET test value formatter: 1 + │ ├── 01610 record (17 = 3 [2] + 13 + 1) + │ │ opposed#0,SET test value formatter: 1 + │ ├── 01627 record (17 = 3 [5] + 13 + 1) + │ │ opposition#0,SET test value formatter: 1 + │ ├── 01644 record (16 = 3 [3] + 12 + 1) + │ │ oppress#0,SET test value formatter: 1 + │ ├── 01660 record (14 = 3 [1] + 9 + 2) + │ │ or#0,SET test value formatter: 28 + │ ├── 01674 record (17 = 3 [2] + 13 + 1) + │ │ orchard#0,SET test value formatter: 2 + │ ├── 01691 record (18 = 3 [2] + 14 + 1) + │ │ ordnance#0,SET test value formatter: 1 + │ ├── 01709 record (18 = 3 [0] + 14 + 1) [restart] + │ │ origin#0,SET test value formatter: 1 + │ ├── 01727 record (16 = 3 [1] + 12 + 1) + │ │ other#0,SET test value formatter: 4 + │ ├── 01743 record (15 = 3 [1] + 10 + 2) + │ │ our#0,SET test value formatter: 45 + │ ├── 01758 record (16 = 3 [3] + 12 + 1) + │ │ ourself#0,SET test value formatter: 2 + │ ├── 01774 record (15 = 3 [6] + 11 + 1) + │ │ ourselves#0,SET test value formatter: 1 + │ ├── 01789 record (13 = 3 [2] + 9 + 1) + │ │ out#0,SET test value formatter: 8 + │ ├── 01802 record (14 = 3 [1] + 10 + 1) + │ │ own#0,SET test value formatter: 6 + │ ├── 01816 record (16 = 3 [3] + 12 + 1) + │ │ ownself#0,SET test value formatter: 1 + │ ├── 01832 record (16 = 3 [0] + 12 + 1) + │ │ pale#0,SET test value formatter: 4 + │ ├── 01848 record (13 = 3 [4] + 9 + 1) + │ │ pales#0,SET test value formatter: 1 + │ ├── 01861 record (13 = 3 [3] + 9 + 1) + │ │ palm#0,SET test value formatter: 1 + │ ├── 01874 record (13 = 3 [4] + 9 + 1) + │ │ palmy#0,SET test value formatter: 1 + │ ├── 01887 record (16 = 3 [2] + 12 + 1) + │ │ pardon#0,SET test value formatter: 1 + │ ├── 01903 record (14 = 3 [3] + 10 + 1) + │ │ parle#0,SET test value formatter: 1 + │ ├── 01917 record (13 = 3 [5] + 9 + 1) + │ │ parley#0,SET test value formatter: 1 + │ ├── 01930 record (13 = 3 [3] + 9 + 1) + │ │ part#0,SET test value formatter: 6 + │ ├── 01943 record (22 = 3 [0] + 18 + 1) [restart] + │ │ particular#0,SET test value formatter: 6 + │ ├── 01965 record (15 = 3 [5] + 11 + 1) + │ │ partisan#0,SET test value formatter: 1 + │ ├── 01980 record (17 = 3 [2] + 13 + 1) + │ │ passeth#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01997 [restart 0] + │ │ ├── 02001 [restart 250] + │ │ ├── 02005 [restart 484] + │ │ ├── 02009 [restart 726] + │ │ ├── 02013 [restart 969] + │ │ ├── 02017 [restart 1208] + │ │ ├── 02021 [restart 1462] + │ │ ├── 02025 [restart 1709] + │ │ └── 02029 [restart 1943] + │ └── trailer [compression=none checksum=0x88e82f4b] + ├── data offset: 16350 length: 2029 + │ ├── 00000 record (19 = 3 [0] + 15 + 1) [restart] + │ │ passing#0,SET test value formatter: 1 + │ ├── 00019 record (13 = 3 [3] + 9 + 1) + │ │ past#0,SET test value formatter: 1 + │ ├── 00032 record (15 = 3 [4] + 11 + 1) + │ │ pastors#0,SET test value formatter: 1 + │ ├── 00047 record (14 = 3 [2] + 10 + 1) + │ │ path#0,SET test value formatter: 1 + │ ├── 00061 record (16 = 3 [3] + 12 + 1) + │ │ patrick#0,SET test value formatter: 1 + │ ├── 00077 record (13 = 3 [2] + 9 + 1) + │ │ pay#0,SET test value formatter: 1 + │ ├── 00090 record (13 = 3 [1] + 9 + 1) + │ │ pe#0,SET test value formatter: 1 + │ ├── 00103 record (15 = 3 [2] + 11 + 1) + │ │ peace#0,SET test value formatter: 2 + │ ├── 00118 record (17 = 3 [2] + 13 + 1) + │ │ peevish#0,SET test value formatter: 1 + │ ├── 00135 record (19 = 3 [2] + 15 + 1) + │ │ perchance#0,SET test value formatter: 2 + │ ├── 00154 record (16 = 3 [3] + 12 + 1) + │ │ perform#0,SET test value formatter: 1 + │ ├── 00170 record (15 = 3 [4] + 11 + 1) + │ │ perfume#0,SET test value formatter: 1 + │ ├── 00185 record (16 = 3 [3] + 12 + 1) + │ │ perhaps#0,SET test value formatter: 1 + │ ├── 00201 record (17 = 3 [3] + 13 + 1) + │ │ perilous#0,SET test value formatter: 1 + │ ├── 00218 record (18 = 3 [3] + 14 + 1) + │ │ permanent#0,SET test value formatter: 1 + │ ├── 00236 record (19 = 3 [3] + 15 + 1) + │ │ pernicious#0,SET test value formatter: 1 + │ ├── 00255 record (20 = 3 [0] + 16 + 1) [restart] + │ │ persever#0,SET test value formatter: 1 + │ ├── 00275 record (14 = 3 [4] + 10 + 1) + │ │ person#0,SET test value formatter: 1 + │ ├── 00289 record (14 = 3 [6] + 10 + 1) + │ │ personal#0,SET test value formatter: 1 + │ ├── 00303 record (13 = 3 [6] + 9 + 1) + │ │ persons#0,SET test value formatter: 1 + │ ├── 00316 record (18 = 3 [3] + 14 + 1) + │ │ perturbed#0,SET test value formatter: 1 + │ ├── 00334 record (16 = 3 [2] + 12 + 1) + │ │ pester#0,SET test value formatter: 1 + │ ├── 00350 record (18 = 3 [2] + 14 + 1) + │ │ petition#0,SET test value formatter: 1 + │ ├── 00368 record (14 = 3 [3] + 10 + 1) + │ │ petty#0,SET test value formatter: 1 + │ ├── 00382 record (21 = 3 [1] + 17 + 1) + │ │ philosophy#0,SET test value formatter: 1 + │ ├── 00403 record (16 = 3 [2] + 12 + 1) + │ │ phrase#0,SET test value formatter: 3 + │ ├── 00419 record (16 = 3 [1] + 12 + 1) + │ │ piece#0,SET test value formatter: 1 + │ ├── 00435 record (13 = 3 [2] + 9 + 1) + │ │ pin#0,SET test value formatter: 1 + │ ├── 00448 record (16 = 3 [2] + 12 + 1) + │ │ pioner#0,SET test value formatter: 1 + │ ├── 00464 record (14 = 3 [3] + 10 + 1) + │ │ pious#0,SET test value formatter: 1 + │ ├── 00478 record (14 = 3 [2] + 10 + 1) + │ │ pith#0,SET test value formatter: 1 + │ ├── 00492 record (13 = 3 [3] + 9 + 1) + │ │ pity#0,SET test value formatter: 1 + │ ├── 00505 record (17 = 3 [0] + 13 + 1) [restart] + │ │ place#0,SET test value formatter: 3 + │ ├── 00522 record (14 = 3 [3] + 10 + 1) + │ │ plain#0,SET test value formatter: 1 + │ ├── 00536 record (16 = 3 [3] + 12 + 1) + │ │ planets#0,SET test value formatter: 1 + │ ├── 00552 record (17 = 3 [3] + 13 + 1) + │ │ platform#0,SET test value formatter: 5 + │ ├── 00569 record (17 = 3 [3] + 13 + 1) + │ │ plausive#0,SET test value formatter: 1 + │ ├── 00586 record (13 = 3 [3] + 9 + 1) + │ │ play#0,SET test value formatter: 2 + │ ├── 00599 record (16 = 3 [2] + 12 + 1) + │ │ please#0,SET test value formatter: 1 + │ ├── 00615 record (15 = 3 [3] + 11 + 1) + │ │ pledge#0,SET test value formatter: 1 + │ ├── 00630 record (16 = 3 [1] + 12 + 1) + │ │ point#0,SET test value formatter: 2 + │ ├── 00646 record (17 = 3 [2] + 13 + 1) + │ │ polacks#0,SET test value formatter: 1 + │ ├── 00663 record (13 = 3 [3] + 9 + 1) + │ │ pole#0,SET test value formatter: 1 + │ ├── 00676 record (18 = 3 [3] + 13 + 2) + │ │ polonius#0,SET test value formatter: 13 + │ ├── 00694 record (19 = 3 [2] + 15 + 1) + │ │ ponderous#0,SET test value formatter: 1 + │ ├── 00713 record (14 = 3 [2] + 10 + 1) + │ │ pooh#0,SET test value formatter: 1 + │ ├── 00727 record (13 = 3 [3] + 9 + 1) + │ │ poor#0,SET test value formatter: 9 + │ ├── 00740 record (17 = 3 [2] + 13 + 1) + │ │ porches#0,SET test value formatter: 1 + │ ├── 00757 record (22 = 3 [0] + 18 + 1) [restart] + │ │ porpentine#0,SET test value formatter: 1 + │ ├── 00779 record (19 = 3 [3] + 15 + 1) + │ │ portentous#0,SET test value formatter: 1 + │ ├── 00798 record (17 = 3 [2] + 13 + 1) + │ │ possess#0,SET test value formatter: 1 + │ ├── 00815 record (13 = 3 [5] + 9 + 1) + │ │ posset#0,SET test value formatter: 1 + │ ├── 00828 record (13 = 3 [3] + 9 + 1) + │ │ post#0,SET test value formatter: 3 + │ ├── 00841 record (14 = 3 [2] + 10 + 1) + │ │ pour#0,SET test value formatter: 1 + │ ├── 00855 record (15 = 3 [2] + 11 + 1) + │ │ power#0,SET test value formatter: 3 + │ ├── 00870 record (15 = 3 [1] + 11 + 1) + │ │ pray#0,SET test value formatter: 7 + │ ├── 00885 record (15 = 3 [4] + 11 + 1) + │ │ prayers#0,SET test value formatter: 1 + │ ├── 00900 record (19 = 3 [2] + 15 + 1) + │ │ preceding#0,SET test value formatter: 1 + │ ├── 00919 record (15 = 3 [5] + 11 + 1) + │ │ precepts#0,SET test value formatter: 1 + │ ├── 00934 record (16 = 3 [4] + 12 + 1) + │ │ precurse#0,SET test value formatter: 1 + │ ├── 00950 record (21 = 3 [3] + 17 + 1) + │ │ preparations#0,SET test value formatter: 1 + │ ├── 00971 record (17 = 3 [3] + 13 + 1) + │ │ presence#0,SET test value formatter: 1 + │ ├── 00988 record (13 = 3 [6] + 9 + 1) + │ │ present#0,SET test value formatter: 1 + │ ├── 01001 record (17 = 3 [4] + 13 + 1) + │ │ pressures#0,SET test value formatter: 1 + │ ├── 01018 record (16 = 3 [0] + 12 + 1) [restart] + │ │ prey#0,SET test value formatter: 1 + │ ├── 01034 record (15 = 3 [2] + 11 + 1) + │ │ prick#0,SET test value formatter: 2 + │ ├── 01049 record (14 = 3 [3] + 10 + 1) + │ │ pride#0,SET test value formatter: 1 + │ ├── 01063 record (17 = 3 [3] + 13 + 1) + │ │ primrose#0,SET test value formatter: 1 + │ ├── 01080 record (13 = 3 [4] + 9 + 1) + │ │ primy#0,SET test value formatter: 1 + │ ├── 01093 record (15 = 3 [3] + 11 + 1) + │ │ prince#0,SET test value formatter: 1 + │ ├── 01108 record (15 = 3 [3] + 11 + 1) + │ │ prison#0,SET test value formatter: 1 + │ ├── 01123 record (16 = 3 [3] + 12 + 1) + │ │ private#0,SET test value formatter: 1 + │ ├── 01139 record (13 = 3 [4] + 9 + 1) + │ │ privy#0,SET test value formatter: 1 + │ ├── 01152 record (19 = 3 [2] + 15 + 1) + │ │ probation#0,SET test value formatter: 1 + │ ├── 01171 record (16 = 3 [3] + 12 + 1) + │ │ process#0,SET test value formatter: 1 + │ ├── 01187 record (17 = 3 [4] + 13 + 1) + │ │ proclaims#0,SET test value formatter: 1 + │ ├── 01204 record (17 = 3 [3] + 13 + 1) + │ │ prodigal#0,SET test value formatter: 2 + │ ├── 01221 record (17 = 3 [3] + 13 + 1) + │ │ prologue#0,SET test value formatter: 1 + │ ├── 01238 record (16 = 3 [3] + 12 + 1) + │ │ promise#0,SET test value formatter: 1 + │ ├── 01254 record (20 = 3 [3] + 16 + 1) + │ │ pronouncing#0,SET test value formatter: 1 + │ ├── 01274 record (21 = 3 [0] + 17 + 1) [restart] + │ │ prophetic#0,SET test value formatter: 1 + │ ├── 01295 record (19 = 3 [4] + 15 + 1) + │ │ proportions#0,SET test value formatter: 1 + │ ├── 01314 record (14 = 3 [5] + 10 + 1) + │ │ propose#0,SET test value formatter: 1 + │ ├── 01328 record (15 = 3 [1] + 11 + 1) + │ │ puff#0,SET test value formatter: 1 + │ ├── 01343 record (14 = 3 [2] + 10 + 1) + │ │ pure#0,SET test value formatter: 1 + │ ├── 01357 record (15 = 3 [3] + 11 + 1) + │ │ purged#0,SET test value formatter: 1 + │ ├── 01372 record (16 = 3 [3] + 12 + 1) + │ │ purpose#0,SET test value formatter: 1 + │ ├── 01388 record (14 = 3 [3] + 10 + 1) + │ │ purse#0,SET test value formatter: 1 + │ ├── 01402 record (16 = 3 [4] + 12 + 1) + │ │ pursuest#0,SET test value formatter: 1 + │ ├── 01418 record (13 = 3 [2] + 9 + 1) + │ │ put#0,SET test value formatter: 2 + │ ├── 01431 record (13 = 3 [3] + 9 + 1) + │ │ puts#0,SET test value formatter: 1 + │ ├── 01444 record (19 = 3 [0] + 15 + 1) + │ │ quarrel#0,SET test value formatter: 1 + │ ├── 01463 record (15 = 3 [2] + 11 + 1) + │ │ queen#0,SET test value formatter: 7 + │ ├── 01478 record (17 = 3 [3] + 13 + 1) + │ │ question#0,SET test value formatter: 2 + │ ├── 01495 record (16 = 3 [8] + 12 + 1) + │ │ questionable#0,SET test value formatter: 1 + │ ├── 01511 record (21 = 3 [2] + 17 + 1) + │ │ quicksilver#0,SET test value formatter: 1 + │ ├── 01532 record (17 = 3 [0] + 13 + 1) [restart] + │ │ quiet#0,SET test value formatter: 1 + │ ├── 01549 record (14 = 3 [5] + 10 + 1) + │ │ quietly#0,SET test value formatter: 1 + │ ├── 01563 record (15 = 3 [3] + 11 + 1) + │ │ quills#0,SET test value formatter: 1 + │ ├── 01578 record (19 = 3 [0] + 15 + 1) + │ │ radiant#0,SET test value formatter: 1 + │ ├── 01597 record (14 = 3 [2] + 10 + 1) + │ │ rank#0,SET test value formatter: 2 + │ ├── 01611 record (14 = 3 [4] + 10 + 1) + │ │ rankly#0,SET test value formatter: 1 + │ ├── 01625 record (14 = 3 [2] + 10 + 1) + │ │ rate#0,SET test value formatter: 1 + │ ├── 01639 record (17 = 3 [3] + 13 + 1) + │ │ ratified#0,SET test value formatter: 1 + │ ├── 01656 record (13 = 3 [1] + 9 + 1) + │ │ re#0,SET test value formatter: 2 + │ ├── 01669 record (17 = 3 [2] + 13 + 1) + │ │ reaches#0,SET test value formatter: 1 + │ ├── 01686 record (13 = 3 [3] + 9 + 1) + │ │ rear#0,SET test value formatter: 1 + │ ├── 01699 record (15 = 3 [3] + 11 + 1) + │ │ reason#0,SET test value formatter: 5 + │ ├── 01714 record (16 = 3 [2] + 12 + 1) + │ │ rebels#0,SET test value formatter: 1 + │ ├── 01730 record (18 = 3 [2] + 14 + 1) + │ │ reckless#0,SET test value formatter: 1 + │ ├── 01748 record (17 = 3 [4] + 13 + 1) + │ │ reckoning#0,SET test value formatter: 1 + │ ├── 01765 record (13 = 3 [4] + 9 + 1) + │ │ recks#0,SET test value formatter: 1 + │ ├── 01778 record (19 = 3 [0] + 15 + 1) [restart] + │ │ records#0,SET test value formatter: 1 + │ ├── 01797 record (15 = 3 [4] + 11 + 1) + │ │ recover#0,SET test value formatter: 1 + │ ├── 01812 record (13 = 3 [2] + 9 + 1) + │ │ red#0,SET test value formatter: 1 + │ ├── 01825 record (13 = 3 [3] + 9 + 1) + │ │ rede#0,SET test value formatter: 1 + │ ├── 01838 record (15 = 3 [2] + 11 + 1) + │ │ reels#0,SET test value formatter: 1 + │ ├── 01853 record (16 = 3 [2] + 12 + 1) + │ │ relief#0,SET test value formatter: 1 + │ ├── 01869 record (15 = 3 [5] + 11 + 1) + │ │ relieved#0,SET test value formatter: 1 + │ ├── 01884 record (16 = 3 [2] + 12 + 1) + │ │ remain#0,SET test value formatter: 1 + │ ├── 01900 record (17 = 3 [3] + 13 + 1) + │ │ remember#0,SET test value formatter: 6 + │ ├── 01917 record (17 = 3 [6] + 13 + 1) + │ │ remembrance#0,SET test value formatter: 1 + │ ├── 01934 record (15 = 3 [3] + 11 + 1) + │ │ remove#0,SET test value formatter: 1 + │ ├── 01949 record (13 = 3 [6] + 9 + 1) + │ │ removed#0,SET test value formatter: 1 + │ ├── 01962 record (16 = 3 [2] + 12 + 1) + │ │ render#0,SET test value formatter: 1 + │ ├── 01978 record (15 = 3 [2] + 11 + 1) + │ │ reply#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01993 [restart 0] + │ │ ├── 01997 [restart 255] + │ │ ├── 02001 [restart 505] + │ │ ├── 02005 [restart 757] + │ │ ├── 02009 [restart 1018] + │ │ ├── 02013 [restart 1274] + │ │ ├── 02017 [restart 1532] + │ │ └── 02021 [restart 1778] + │ └── trailer [compression=none checksum=0xa251cc65] + ├── data offset: 18384 length: 2040 + │ ├── 00000 record (18 = 3 [0] + 14 + 1) [restart] + │ │ report#0,SET test value formatter: 1 + │ ├── 00018 record (17 = 3 [2] + 13 + 1) + │ │ request#0,SET test value formatter: 1 + │ ├── 00035 record (15 = 3 [4] + 11 + 1) + │ │ requite#0,SET test value formatter: 1 + │ ├── 00050 record (17 = 3 [2] + 13 + 1) + │ │ reserve#0,SET test value formatter: 1 + │ ├── 00067 record (18 = 3 [3] + 14 + 1) + │ │ resolutes#0,SET test value formatter: 1 + │ ├── 00085 record (14 = 3 [5] + 10 + 1) + │ │ resolve#0,SET test value formatter: 1 + │ ├── 00099 record (13 = 3 [3] + 9 + 1) + │ │ rest#0,SET test value formatter: 2 + │ ├── 00112 record (20 = 3 [2] + 16 + 1) + │ │ retrograde#0,SET test value formatter: 1 + │ ├── 00132 record (15 = 3 [3] + 11 + 1) + │ │ return#0,SET test value formatter: 2 + │ ├── 00147 record (16 = 3 [2] + 12 + 1) + │ │ reveal#0,SET test value formatter: 1 + │ ├── 00163 record (13 = 3 [4] + 9 + 1) + │ │ revel#0,SET test value formatter: 1 + │ ├── 00176 record (15 = 3 [4] + 11 + 1) + │ │ revenge#0,SET test value formatter: 3 + │ ├── 00191 record (16 = 3 [3] + 12 + 1) + │ │ revisit#0,SET test value formatter: 1 + │ ├── 00207 record (18 = 3 [1] + 14 + 1) + │ │ rhenish#0,SET test value formatter: 1 + │ ├── 00225 record (15 = 3 [1] + 11 + 1) + │ │ rich#0,SET test value formatter: 1 + │ ├── 00240 record (13 = 3 [2] + 9 + 1) + │ │ rid#0,SET test value formatter: 1 + │ ├── 00253 record (17 = 3 [0] + 13 + 1) [restart] + │ │ right#0,SET test value formatter: 3 + │ ├── 00270 record (14 = 3 [2] + 10 + 1) + │ │ rise#0,SET test value formatter: 1 + │ ├── 00284 record (16 = 3 [2] + 12 + 1) + │ │ rivals#0,SET test value formatter: 1 + │ ├── 00300 record (14 = 3 [3] + 10 + 1) + │ │ river#0,SET test value formatter: 1 + │ ├── 00314 record (15 = 3 [1] + 11 + 1) + │ │ roar#0,SET test value formatter: 1 + │ ├── 00329 record (16 = 3 [2] + 12 + 1) + │ │ romage#0,SET test value formatter: 1 + │ ├── 00345 record (13 = 3 [4] + 9 + 1) + │ │ roman#0,SET test value formatter: 1 + │ ├── 00358 record (13 = 3 [3] + 9 + 1) + │ │ rome#0,SET test value formatter: 1 + │ ├── 00371 record (14 = 3 [2] + 10 + 1) + │ │ room#0,SET test value formatter: 2 + │ ├── 00385 record (14 = 3 [3] + 10 + 1) + │ │ roots#0,SET test value formatter: 1 + │ ├── 00399 record (16 = 3 [2] + 12 + 1) + │ │ rotten#0,SET test value formatter: 1 + │ ├── 00415 record (17 = 3 [2] + 13 + 1) + │ │ roughly#0,SET test value formatter: 1 + │ ├── 00432 record (14 = 3 [3] + 10 + 1) + │ │ rouse#0,SET test value formatter: 2 + │ ├── 00446 record (15 = 3 [2] + 11 + 1) + │ │ royal#0,SET test value formatter: 2 + │ ├── 00461 record (16 = 3 [1] + 12 + 1) + │ │ ruled#0,SET test value formatter: 1 + │ ├── 00477 record (17 = 3 [2] + 13 + 1) + │ │ running#0,SET test value formatter: 1 + │ ├── 00494 record (18 = 3 [0] + 14 + 1) [restart] + │ │ russet#0,SET test value formatter: 1 + │ ├── 00512 record (14 = 3 [0] + 9 + 2) + │ │ s#0,SET test value formatter: 39 + │ ├── 00526 record (16 = 3 [1] + 12 + 1) + │ │ sable#0,SET test value formatter: 1 + │ ├── 00542 record (16 = 3 [2] + 12 + 1) + │ │ safety#0,SET test value formatter: 2 + │ ├── 00558 record (14 = 3 [2] + 10 + 1) + │ │ said#0,SET test value formatter: 3 + │ ├── 00572 record (13 = 3 [3] + 9 + 1) + │ │ sail#0,SET test value formatter: 1 + │ ├── 00585 record (14 = 3 [3] + 10 + 1) + │ │ saint#0,SET test value formatter: 1 + │ ├── 00599 record (14 = 3 [2] + 10 + 1) + │ │ salt#0,SET test value formatter: 1 + │ ├── 00613 record (14 = 3 [2] + 10 + 1) + │ │ same#0,SET test value formatter: 5 + │ ├── 00627 record (20 = 3 [2] + 16 + 1) + │ │ sanctified#0,SET test value formatter: 1 + │ ├── 00647 record (14 = 3 [2] + 10 + 1) + │ │ sate#0,SET test value formatter: 1 + │ ├── 00661 record (14 = 3 [3] + 10 + 1) + │ │ satyr#0,SET test value formatter: 1 + │ ├── 00675 record (17 = 3 [2] + 13 + 1) + │ │ saviour#0,SET test value formatter: 1 + │ ├── 00692 record (13 = 3 [2] + 9 + 1) + │ │ saw#0,SET test value formatter: 6 + │ ├── 00705 record (13 = 3 [3] + 9 + 1) + │ │ saws#0,SET test value formatter: 1 + │ ├── 00718 record (14 = 3 [2] + 9 + 2) + │ │ say#0,SET test value formatter: 11 + │ ├── 00732 record (18 = 3 [0] + 14 + 1) [restart] + │ │ saying#0,SET test value formatter: 1 + │ ├── 00750 record (13 = 3 [3] + 9 + 1) + │ │ says#0,SET test value formatter: 3 + │ ├── 00763 record (16 = 3 [1] + 12 + 1) + │ │ scale#0,SET test value formatter: 1 + │ ├── 00779 record (16 = 3 [3] + 12 + 1) + │ │ scandal#0,SET test value formatter: 1 + │ ├── 00795 record (15 = 3 [4] + 11 + 1) + │ │ scanter#0,SET test value formatter: 1 + │ ├── 00810 record (15 = 3 [3] + 11 + 1) + │ │ scapes#0,SET test value formatter: 1 + │ ├── 00825 record (17 = 3 [3] + 13 + 1) + │ │ scarcely#0,SET test value formatter: 1 + │ ├── 00842 record (15 = 3 [2] + 11 + 1) + │ │ scene#0,SET test value formatter: 5 + │ ├── 00857 record (13 = 3 [4] + 9 + 1) + │ │ scent#0,SET test value formatter: 1 + │ ├── 00870 record (17 = 3 [2] + 13 + 1) + │ │ scholar#0,SET test value formatter: 1 + │ ├── 00887 record (13 = 3 [7] + 9 + 1) + │ │ scholars#0,SET test value formatter: 1 + │ ├── 00900 record (14 = 3 [4] + 10 + 1) + │ │ school#0,SET test value formatter: 1 + │ ├── 00914 record (15 = 3 [2] + 11 + 1) + │ │ scope#0,SET test value formatter: 2 + │ ├── 00929 record (14 = 3 [1] + 10 + 1) + │ │ sea#0,SET test value formatter: 3 + │ ├── 00943 record (13 = 3 [3] + 9 + 1) + │ │ seal#0,SET test value formatter: 2 + │ ├── 00956 record (15 = 3 [3] + 11 + 1) + │ │ season#0,SET test value formatter: 4 + │ ├── 00971 record (16 = 3 [0] + 12 + 1) [restart] + │ │ seat#0,SET test value formatter: 1 + │ ├── 00987 record (16 = 3 [2] + 12 + 1) + │ │ second#0,SET test value formatter: 1 + │ ├── 01003 record (16 = 3 [3] + 12 + 1) + │ │ secrecy#0,SET test value formatter: 1 + │ ├── 01019 record (13 = 3 [5] + 9 + 1) + │ │ secret#0,SET test value formatter: 1 + │ ├── 01032 record (13 = 3 [6] + 9 + 1) + │ │ secrets#0,SET test value formatter: 1 + │ ├── 01045 record (15 = 3 [3] + 11 + 1) + │ │ secure#0,SET test value formatter: 2 + │ ├── 01060 record (16 = 3 [2] + 12 + 1) + │ │ seduce#0,SET test value formatter: 1 + │ ├── 01076 record (13 = 3 [2] + 9 + 1) + │ │ see#0,SET test value formatter: 7 + │ ├── 01089 record (13 = 3 [3] + 9 + 1) + │ │ seed#0,SET test value formatter: 1 + │ ├── 01102 record (15 = 3 [3] + 11 + 1) + │ │ seeing#0,SET test value formatter: 1 + │ ├── 01117 record (13 = 3 [3] + 9 + 1) + │ │ seek#0,SET test value formatter: 1 + │ ├── 01130 record (13 = 3 [3] + 9 + 1) + │ │ seem#0,SET test value formatter: 2 + │ ├── 01143 record (15 = 3 [4] + 11 + 1) + │ │ seeming#0,SET test value formatter: 1 + │ ├── 01158 record (13 = 3 [4] + 9 + 1) + │ │ seems#0,SET test value formatter: 3 + │ ├── 01171 record (13 = 3 [3] + 9 + 1) + │ │ seen#0,SET test value formatter: 8 + │ ├── 01184 record (16 = 3 [2] + 12 + 1) + │ │ seized#0,SET test value formatter: 1 + │ ├── 01200 record (18 = 3 [0] + 14 + 1) [restart] + │ │ select#0,SET test value formatter: 1 + │ ├── 01218 record (13 = 3 [3] + 9 + 1) + │ │ self#0,SET test value formatter: 1 + │ ├── 01231 record (15 = 3 [2] + 11 + 1) + │ │ sense#0,SET test value formatter: 1 + │ ├── 01246 record (16 = 3 [4] + 12 + 1) + │ │ sensible#0,SET test value formatter: 1 + │ ├── 01262 record (13 = 3 [3] + 9 + 1) + │ │ sent#0,SET test value formatter: 1 + │ ├── 01275 record (19 = 3 [2] + 15 + 1) + │ │ sepulchre#0,SET test value formatter: 1 + │ ├── 01294 record (17 = 3 [2] + 13 + 1) + │ │ serious#0,SET test value formatter: 1 + │ ├── 01311 record (16 = 3 [3] + 12 + 1) + │ │ serpent#0,SET test value formatter: 2 + │ ├── 01327 record (16 = 3 [3] + 12 + 1) + │ │ servant#0,SET test value formatter: 1 + │ ├── 01343 record (13 = 3 [7] + 9 + 1) + │ │ servants#0,SET test value formatter: 1 + │ ├── 01356 record (15 = 3 [4] + 11 + 1) + │ │ service#0,SET test value formatter: 1 + │ ├── 01371 record (13 = 3 [2] + 9 + 1) + │ │ set#0,SET test value formatter: 4 + │ ├── 01384 record (16 = 3 [1] + 12 + 1) + │ │ shake#0,SET test value formatter: 2 + │ ├── 01400 record (15 = 3 [3] + 10 + 2) + │ │ shall#0,SET test value formatter: 22 + │ ├── 01415 record (13 = 3 [4] + 9 + 1) + │ │ shalt#0,SET test value formatter: 1 + │ ├── 01428 record (14 = 3 [3] + 10 + 1) + │ │ shame#0,SET test value formatter: 1 + │ ├── 01442 record (20 = 3 [0] + 16 + 1) [restart] + │ │ shameful#0,SET test value formatter: 1 + │ ├── 01462 record (14 = 3 [3] + 10 + 1) + │ │ shape#0,SET test value formatter: 2 + │ ├── 01476 record (13 = 3 [5] + 9 + 1) + │ │ shapes#0,SET test value formatter: 1 + │ ├── 01489 record (14 = 3 [3] + 10 + 1) + │ │ shark#0,SET test value formatter: 1 + │ ├── 01503 record (13 = 3 [2] + 9 + 1) + │ │ she#0,SET test value formatter: 6 + │ ├── 01516 record (16 = 3 [3] + 12 + 1) + │ │ sheeted#0,SET test value formatter: 1 + │ ├── 01532 record (13 = 3 [5] + 9 + 1) + │ │ sheets#0,SET test value formatter: 1 + │ ├── 01545 record (15 = 3 [2] + 11 + 1) + │ │ shift#0,SET test value formatter: 1 + │ ├── 01560 record (20 = 3 [3] + 16 + 1) + │ │ shipwrights#0,SET test value formatter: 1 + │ ├── 01580 record (15 = 3 [2] + 11 + 1) + │ │ shoes#0,SET test value formatter: 1 + │ ├── 01595 record (13 = 3 [3] + 9 + 1) + │ │ shot#0,SET test value formatter: 2 + │ ├── 01608 record (15 = 3 [3] + 11 + 1) + │ │ should#0,SET test value formatter: 6 + │ ├── 01623 record (14 = 3 [6] + 10 + 1) + │ │ shoulder#0,SET test value formatter: 1 + │ ├── 01637 record (14 = 3 [6] + 10 + 1) + │ │ shouldst#0,SET test value formatter: 1 + │ ├── 01651 record (13 = 3 [3] + 9 + 1) + │ │ show#0,SET test value formatter: 6 + │ ├── 01664 record (13 = 3 [4] + 9 + 1) + │ │ shows#0,SET test value formatter: 2 + │ ├── 01677 record (20 = 3 [0] + 16 + 1) [restart] + │ │ shrewdly#0,SET test value formatter: 1 + │ ├── 01697 record (15 = 3 [3] + 11 + 1) + │ │ shrill#0,SET test value formatter: 1 + │ ├── 01712 record (15 = 3 [3] + 11 + 1) + │ │ shrunk#0,SET test value formatter: 1 + │ ├── 01727 record (15 = 3 [1] + 11 + 1) + │ │ sick#0,SET test value formatter: 2 + │ ├── 01742 record (14 = 3 [2] + 10 + 1) + │ │ side#0,SET test value formatter: 1 + │ ├── 01756 record (15 = 3 [2] + 11 + 1) + │ │ sight#0,SET test value formatter: 3 + │ ├── 01771 record (17 = 3 [2] + 13 + 1) + │ │ silence#0,SET test value formatter: 1 + │ ├── 01788 record (15 = 3 [3] + 11 + 1) + │ │ silver#0,SET test value formatter: 1 + │ ├── 01803 record (16 = 3 [2] + 12 + 1) + │ │ simple#0,SET test value formatter: 1 + │ ├── 01819 record (13 = 3 [2] + 9 + 1) + │ │ sin#0,SET test value formatter: 1 + │ ├── 01832 record (14 = 3 [3] + 10 + 1) + │ │ since#0,SET test value formatter: 1 + │ ├── 01846 record (15 = 3 [3] + 11 + 1) + │ │ sinews#0,SET test value formatter: 1 + │ ├── 01861 record (16 = 3 [3] + 12 + 1) + │ │ singeth#0,SET test value formatter: 1 + │ ├── 01877 record (13 = 3 [2] + 9 + 1) + │ │ sir#0,SET test value formatter: 3 + │ ├── 01890 record (13 = 3 [3] + 9 + 1) + │ │ sirs#0,SET test value formatter: 1 + │ ├── 01903 record (16 = 3 [2] + 12 + 1) + │ │ sister#0,SET test value formatter: 3 + │ ├── 01919 record (15 = 3 [0] + 11 + 1) [restart] + │ │ sit#0,SET test value formatter: 4 + │ ├── 01934 record (13 = 3 [3] + 9 + 1) + │ │ sits#0,SET test value formatter: 2 + │ ├── 01947 record (17 = 3 [1] + 13 + 1) + │ │ skirts#0,SET test value formatter: 1 + │ ├── 01964 record (18 = 3 [1] + 14 + 1) + │ │ slander#0,SET test value formatter: 1 + │ ├── 01982 record (18 = 3 [3] + 14 + 1) + │ │ slaughter#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 02000 [restart 0] + │ │ ├── 02004 [restart 253] + │ │ ├── 02008 [restart 494] + │ │ ├── 02012 [restart 732] + │ │ ├── 02016 [restart 971] + │ │ ├── 02020 [restart 1200] + │ │ ├── 02024 [restart 1442] + │ │ ├── 02028 [restart 1677] + │ │ └── 02032 [restart 1919] + │ └── trailer [compression=none checksum=0x8953c396] + ├── data offset: 20429 length: 2030 + │ ├── 00000 record (16 = 3 [0] + 12 + 1) [restart] + │ │ slay#0,SET test value formatter: 1 + │ ├── 00016 record (17 = 3 [2] + 13 + 1) + │ │ sledded#0,SET test value formatter: 1 + │ ├── 00033 record (14 = 3 [3] + 10 + 1) + │ │ sleep#0,SET test value formatter: 1 + │ ├── 00047 record (15 = 3 [5] + 11 + 1) + │ │ sleeping#0,SET test value formatter: 3 + │ ├── 00062 record (14 = 3 [2] + 10 + 1) + │ │ slow#0,SET test value formatter: 2 + │ ├── 00076 record (16 = 3 [1] + 12 + 1) + │ │ smile#0,SET test value formatter: 2 + │ ├── 00092 record (13 = 3 [5] + 9 + 1) + │ │ smiles#0,SET test value formatter: 1 + │ ├── 00105 record (15 = 3 [4] + 11 + 1) + │ │ smiling#0,SET test value formatter: 2 + │ ├── 00120 record (16 = 3 [2] + 12 + 1) + │ │ smooth#0,SET test value formatter: 1 + │ ├── 00136 record (14 = 3 [3] + 10 + 1) + │ │ smote#0,SET test value formatter: 1 + │ ├── 00150 record (14 = 3 [1] + 9 + 2) + │ │ so#0,SET test value formatter: 48 + │ ├── 00164 record (13 = 3 [2] + 9 + 1) + │ │ soe#0,SET test value formatter: 1 + │ ├── 00177 record (14 = 3 [2] + 10 + 1) + │ │ soft#0,SET test value formatter: 2 + │ ├── 00191 record (14 = 3 [2] + 10 + 1) + │ │ soil#0,SET test value formatter: 2 + │ ├── 00205 record (17 = 3 [2] + 13 + 1) + │ │ soldier#0,SET test value formatter: 1 + │ ├── 00222 record (13 = 3 [7] + 9 + 1) + │ │ soldiers#0,SET test value formatter: 1 + │ ├── 00235 record (18 = 3 [0] + 14 + 1) [restart] + │ │ solemn#0,SET test value formatter: 2 + │ ├── 00253 record (14 = 3 [3] + 10 + 1) + │ │ solid#0,SET test value formatter: 1 + │ ├── 00267 record (15 = 3 [2] + 10 + 2) + │ │ some#0,SET test value formatter: 13 + │ ├── 00282 record (17 = 3 [4] + 13 + 1) + │ │ something#0,SET test value formatter: 3 + │ ├── 00299 record (15 = 3 [5] + 11 + 1) + │ │ sometime#0,SET test value formatter: 1 + │ ├── 00314 record (13 = 3 [8] + 9 + 1) + │ │ sometimes#0,SET test value formatter: 1 + │ ├── 00327 record (16 = 3 [4] + 12 + 1) + │ │ somewhat#0,SET test value formatter: 1 + │ ├── 00343 record (13 = 3 [2] + 9 + 1) + │ │ son#0,SET test value formatter: 3 + │ ├── 00356 record (14 = 3 [3] + 10 + 1) + │ │ songs#0,SET test value formatter: 1 + │ ├── 00370 record (14 = 3 [2] + 10 + 1) + │ │ sore#0,SET test value formatter: 1 + │ ├── 00384 record (15 = 3 [3] + 11 + 1) + │ │ sorrow#0,SET test value formatter: 3 + │ ├── 00399 record (13 = 3 [4] + 9 + 1) + │ │ sorry#0,SET test value formatter: 1 + │ ├── 00412 record (13 = 3 [3] + 9 + 1) + │ │ sort#0,SET test value formatter: 1 + │ ├── 00425 record (14 = 3 [2] + 10 + 1) + │ │ soul#0,SET test value formatter: 8 + │ ├── 00439 record (13 = 3 [4] + 9 + 1) + │ │ souls#0,SET test value formatter: 1 + │ ├── 00452 record (14 = 3 [3] + 10 + 1) + │ │ sound#0,SET test value formatter: 2 + │ ├── 00466 record (20 = 3 [0] + 16 + 1) [restart] + │ │ sounding#0,SET test value formatter: 1 + │ ├── 00486 record (15 = 3 [3] + 11 + 1) + │ │ source#0,SET test value formatter: 1 + │ ├── 00501 record (21 = 3 [2] + 17 + 1) + │ │ sovereignty#0,SET test value formatter: 1 + │ ├── 00522 record (17 = 3 [1] + 12 + 2) + │ │ speak#0,SET test value formatter: 27 + │ ├── 00539 record (15 = 3 [5] + 11 + 1) + │ │ speaking#0,SET test value formatter: 1 + │ ├── 00554 record (15 = 3 [3] + 11 + 1) + │ │ speech#0,SET test value formatter: 1 + │ ├── 00569 record (13 = 3 [4] + 9 + 1) + │ │ speed#0,SET test value formatter: 1 + │ ├── 00582 record (14 = 3 [3] + 10 + 1) + │ │ spend#0,SET test value formatter: 1 + │ ├── 00596 record (17 = 3 [2] + 13 + 1) + │ │ spheres#0,SET test value formatter: 1 + │ ├── 00613 record (16 = 3 [2] + 12 + 1) + │ │ spirit#0,SET test value formatter: 8 + │ ├── 00629 record (13 = 3 [6] + 9 + 1) + │ │ spirits#0,SET test value formatter: 1 + │ ├── 00642 record (14 = 3 [3] + 10 + 1) + │ │ spite#0,SET test value formatter: 1 + │ ├── 00656 record (15 = 3 [2] + 11 + 1) + │ │ spoke#0,SET test value formatter: 1 + │ ├── 00671 record (16 = 3 [2] + 12 + 1) + │ │ spring#0,SET test value formatter: 2 + │ ├── 00687 record (14 = 3 [6] + 10 + 1) + │ │ springes#0,SET test value formatter: 1 + │ ├── 00701 record (17 = 3 [1] + 13 + 1) + │ │ squeak#0,SET test value formatter: 1 + │ ├── 00718 record (14 = 3 [0] + 10 + 1) [restart] + │ │ st#0,SET test value formatter: 4 + │ ├── 00732 record (15 = 3 [2] + 11 + 1) + │ │ stale#0,SET test value formatter: 1 + │ ├── 00747 record (13 = 3 [4] + 9 + 1) + │ │ stalk#0,SET test value formatter: 1 + │ ├── 00760 record (13 = 3 [5] + 9 + 1) + │ │ stalks#0,SET test value formatter: 1 + │ ├── 00773 record (14 = 3 [3] + 10 + 1) + │ │ stamp#0,SET test value formatter: 1 + │ ├── 00787 record (14 = 3 [3] + 10 + 1) + │ │ stand#0,SET test value formatter: 5 + │ ├── 00801 record (13 = 3 [5] + 9 + 1) + │ │ stands#0,SET test value formatter: 1 + │ ├── 00814 record (13 = 3 [3] + 9 + 1) + │ │ star#0,SET test value formatter: 3 + │ ├── 00827 record (13 = 3 [4] + 9 + 1) + │ │ stars#0,SET test value formatter: 2 + │ ├── 00840 record (13 = 3 [4] + 9 + 1) + │ │ start#0,SET test value formatter: 1 + │ ├── 00853 record (14 = 3 [5] + 10 + 1) + │ │ started#0,SET test value formatter: 1 + │ ├── 00867 record (14 = 3 [3] + 10 + 1) + │ │ state#0,SET test value formatter: 8 + │ ├── 00881 record (14 = 3 [5] + 10 + 1) + │ │ stately#0,SET test value formatter: 1 + │ ├── 00895 record (15 = 3 [4] + 11 + 1) + │ │ station#0,SET test value formatter: 1 + │ ├── 00910 record (13 = 3 [3] + 9 + 1) + │ │ stay#0,SET test value formatter: 7 + │ ├── 00923 record (15 = 3 [2] + 11 + 1) + │ │ steel#0,SET test value formatter: 2 + │ ├── 00938 record (17 = 3 [0] + 13 + 1) [restart] + │ │ steep#0,SET test value formatter: 1 + │ ├── 00955 record (17 = 3 [3] + 13 + 1) + │ │ sterling#0,SET test value formatter: 1 + │ ├── 00972 record (17 = 3 [2] + 13 + 1) + │ │ stiffly#0,SET test value formatter: 1 + │ ├── 00989 record (14 = 3 [3] + 10 + 1) + │ │ still#0,SET test value formatter: 8 + │ ├── 01003 record (14 = 3 [3] + 10 + 1) + │ │ sting#0,SET test value formatter: 2 + │ ├── 01017 record (13 = 3 [3] + 9 + 1) + │ │ stir#0,SET test value formatter: 2 + │ ├── 01030 record (16 = 3 [4] + 12 + 1) + │ │ stirring#0,SET test value formatter: 1 + │ ├── 01046 record (15 = 3 [2] + 11 + 1) + │ │ stole#0,SET test value formatter: 1 + │ ├── 01061 record (16 = 3 [3] + 12 + 1) + │ │ stomach#0,SET test value formatter: 1 + │ ├── 01077 record (14 = 3 [3] + 10 + 1) + │ │ stood#0,SET test value formatter: 2 + │ ├── 01091 record (13 = 3 [3] + 9 + 1) + │ │ stop#0,SET test value formatter: 1 + │ ├── 01104 record (14 = 3 [3] + 10 + 1) + │ │ story#0,SET test value formatter: 1 + │ ├── 01118 record (17 = 3 [2] + 13 + 1) + │ │ strange#0,SET test value formatter: 6 + │ ├── 01135 record (13 = 3 [7] + 9 + 1) + │ │ stranger#0,SET test value formatter: 1 + │ ├── 01148 record (16 = 3 [3] + 12 + 1) + │ │ streets#0,SET test value formatter: 1 + │ ├── 01164 record (15 = 3 [3] + 11 + 1) + │ │ strict#0,SET test value formatter: 1 + │ ├── 01179 record (18 = 3 [0] + 14 + 1) [restart] + │ │ strike#0,SET test value formatter: 2 + │ ├── 01197 record (16 = 3 [3] + 12 + 1) + │ │ strokes#0,SET test value formatter: 1 + │ ├── 01213 record (14 = 3 [4] + 10 + 1) + │ │ strong#0,SET test value formatter: 1 + │ ├── 01227 record (15 = 3 [3] + 11 + 1) + │ │ struck#0,SET test value formatter: 2 + │ ├── 01242 record (22 = 3 [2] + 18 + 1) + │ │ stubbornness#0,SET test value formatter: 1 + │ ├── 01264 record (16 = 3 [3] + 12 + 1) + │ │ student#0,SET test value formatter: 1 + │ ├── 01280 record (14 = 3 [3] + 10 + 1) + │ │ stung#0,SET test value formatter: 1 + │ ├── 01294 record (18 = 3 [1] + 14 + 1) + │ │ subject#0,SET test value formatter: 3 + │ ├── 01312 record (18 = 3 [3] + 14 + 1) + │ │ substance#0,SET test value formatter: 1 + │ ├── 01330 record (15 = 3 [2] + 10 + 2) + │ │ such#0,SET test value formatter: 10 + │ ├── 01345 record (16 = 3 [2] + 12 + 1) + │ │ sudden#0,SET test value formatter: 1 + │ ├── 01361 record (14 = 3 [2] + 10 + 1) + │ │ suit#0,SET test value formatter: 1 + │ ├── 01375 record (13 = 3 [4] + 9 + 1) + │ │ suits#0,SET test value formatter: 3 + │ ├── 01388 record (20 = 3 [2] + 16 + 1) + │ │ sulphurous#0,SET test value formatter: 1 + │ ├── 01408 record (16 = 3 [2] + 12 + 1) + │ │ summit#0,SET test value formatter: 1 + │ ├── 01424 record (15 = 3 [4] + 11 + 1) + │ │ summons#0,SET test value formatter: 1 + │ ├── 01439 record (15 = 3 [0] + 11 + 1) [restart] + │ │ sun#0,SET test value formatter: 2 + │ ├── 01454 record (15 = 3 [3] + 11 + 1) + │ │ sunday#0,SET test value formatter: 1 + │ ├── 01469 record (20 = 3 [2] + 16 + 1) + │ │ suppliance#0,SET test value formatter: 1 + │ ├── 01489 record (16 = 3 [4] + 12 + 1) + │ │ supposal#0,SET test value formatter: 1 + │ ├── 01505 record (16 = 3 [4] + 12 + 1) + │ │ suppress#0,SET test value formatter: 1 + │ ├── 01521 record (14 = 3 [2] + 10 + 1) + │ │ sure#0,SET test value formatter: 1 + │ ├── 01535 record (18 = 3 [3] + 14 + 1) + │ │ surprised#0,SET test value formatter: 1 + │ ├── 01553 record (18 = 3 [3] + 14 + 1) + │ │ surrender#0,SET test value formatter: 1 + │ ├── 01571 record (17 = 3 [3] + 13 + 1) + │ │ survivor#0,SET test value formatter: 1 + │ ├── 01588 record (21 = 3 [2] + 17 + 1) + │ │ suspiration#0,SET test value formatter: 1 + │ ├── 01609 record (16 = 3 [3] + 12 + 1) + │ │ sustain#0,SET test value formatter: 1 + │ ├── 01625 record (21 = 3 [1] + 17 + 1) + │ │ swaggering#0,SET test value formatter: 1 + │ ├── 01646 record (16 = 3 [2] + 11 + 2) + │ │ swear#0,SET test value formatter: 10 + │ ├── 01662 record (14 = 3 [4] + 10 + 1) + │ │ sweaty#0,SET test value formatter: 1 + │ ├── 01676 record (14 = 3 [3] + 10 + 1) + │ │ sweep#0,SET test value formatter: 1 + │ ├── 01690 record (13 = 3 [4] + 9 + 1) + │ │ sweet#0,SET test value formatter: 2 + │ ├── 01703 record (17 = 3 [0] + 13 + 1) [restart] + │ │ swift#0,SET test value formatter: 2 + │ ├── 01720 record (16 = 3 [3] + 12 + 1) + │ │ swinish#0,SET test value formatter: 1 + │ ├── 01736 record (15 = 3 [2] + 11 + 1) + │ │ sword#0,SET test value formatter: 5 + │ ├── 01751 record (13 = 3 [4] + 9 + 1) + │ │ sworn#0,SET test value formatter: 2 + │ ├── 01764 record (14 = 3 [0] + 9 + 2) + │ │ t#0,SET test value formatter: 18 + │ ├── 01778 record (13 = 3 [1] + 9 + 1) + │ │ ta#0,SET test value formatter: 1 + │ ├── 01791 record (15 = 3 [2] + 11 + 1) + │ │ table#0,SET test value formatter: 1 + │ ├── 01806 record (13 = 3 [5] + 9 + 1) + │ │ tables#0,SET test value formatter: 2 + │ ├── 01819 record (15 = 3 [2] + 11 + 1) + │ │ taint#0,SET test value formatter: 1 + │ ├── 01834 record (15 = 3 [2] + 10 + 2) + │ │ take#0,SET test value formatter: 10 + │ ├── 01849 record (13 = 3 [4] + 9 + 1) + │ │ taken#0,SET test value formatter: 1 + │ ├── 01862 record (13 = 3 [4] + 9 + 1) + │ │ takes#0,SET test value formatter: 3 + │ ├── 01875 record (14 = 3 [2] + 10 + 1) + │ │ tale#0,SET test value formatter: 1 + │ ├── 01889 record (13 = 3 [3] + 9 + 1) + │ │ talk#0,SET test value formatter: 1 + │ ├── 01902 record (14 = 3 [2] + 10 + 1) + │ │ task#0,SET test value formatter: 1 + │ ├── 01916 record (13 = 3 [2] + 9 + 1) + │ │ tax#0,SET test value formatter: 1 + │ ├── 01929 record (17 = 3 [0] + 13 + 1) [restart] + │ │ teach#0,SET test value formatter: 2 + │ ├── 01946 record (14 = 3 [3] + 10 + 1) + │ │ tears#0,SET test value formatter: 2 + │ ├── 01960 record (14 = 3 [2] + 10 + 1) + │ │ tell#0,SET test value formatter: 9 + │ ├── 01974 record (16 = 3 [2] + 12 + 1) + │ │ temple#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01990 [restart 0] + │ │ ├── 01994 [restart 235] + │ │ ├── 01998 [restart 466] + │ │ ├── 02002 [restart 718] + │ │ ├── 02006 [restart 938] + │ │ ├── 02010 [restart 1179] + │ │ ├── 02014 [restart 1439] + │ │ ├── 02018 [restart 1703] + │ │ └── 02022 [restart 1929] + │ └── trailer [compression=none checksum=0x53c39637] + ├── data offset: 22464 length: 2035 + │ ├── 00000 record (17 = 3 [0] + 13 + 1) [restart] + │ │ tempt#0,SET test value formatter: 1 + │ ├── 00017 record (17 = 3 [2] + 13 + 1) + │ │ tenable#0,SET test value formatter: 1 + │ ├── 00034 record (18 = 3 [4] + 14 + 1) + │ │ tenantless#0,SET test value formatter: 1 + │ ├── 00052 record (13 = 3 [3] + 9 + 1) + │ │ tend#0,SET test value formatter: 1 + │ ├── 00065 record (14 = 3 [4] + 10 + 1) + │ │ tender#0,SET test value formatter: 2 + │ ├── 00079 record (13 = 3 [6] + 9 + 1) + │ │ tenders#0,SET test value formatter: 3 + │ ├── 00092 record (14 = 3 [2] + 10 + 1) + │ │ term#0,SET test value formatter: 2 + │ ├── 00106 record (13 = 3 [4] + 9 + 1) + │ │ terms#0,SET test value formatter: 2 + │ ├── 00119 record (16 = 3 [2] + 12 + 1) + │ │ tether#0,SET test value formatter: 1 + │ ├── 00135 record (15 = 3 [3] + 11 + 1) + │ │ tetter#0,SET test value formatter: 1 + │ ├── 00150 record (16 = 3 [1] + 11 + 2) + │ │ than#0,SET test value formatter: 15 + │ ├── 00166 record (14 = 3 [4] + 10 + 1) + │ │ thanks#0,SET test value formatter: 2 + │ ├── 00180 record (14 = 3 [3] + 9 + 2) + │ │ that#0,SET test value formatter: 83 + │ ├── 00194 record (13 = 3 [3] + 9 + 1) + │ │ thaw#0,SET test value formatter: 1 + │ ├── 00207 record (15 = 3 [2] + 9 + 3) + │ │ the#0,SET test value formatter: 237 + │ ├── 00222 record (14 = 3 [3] + 9 + 2) + │ │ thee#0,SET test value formatter: 23 + │ ├── 00236 record (18 = 3 [0] + 13 + 2) [restart] + │ │ their#0,SET test value formatter: 10 + │ ├── 00254 record (14 = 3 [3] + 9 + 2) + │ │ them#0,SET test value formatter: 10 + │ ├── 00268 record (13 = 3 [4] + 9 + 1) + │ │ theme#0,SET test value formatter: 1 + │ ├── 00281 record (14 = 3 [3] + 9 + 2) + │ │ then#0,SET test value formatter: 15 + │ ├── 00295 record (15 = 3 [3] + 10 + 2) + │ │ there#0,SET test value formatter: 18 + │ ├── 00310 record (16 = 3 [5] + 12 + 1) + │ │ therefore#0,SET test value formatter: 4 + │ ├── 00326 record (14 = 3 [5] + 10 + 1) + │ │ thereto#0,SET test value formatter: 1 + │ ├── 00340 record (15 = 3 [3] + 10 + 2) + │ │ these#0,SET test value formatter: 13 + │ ├── 00355 record (14 = 3 [3] + 10 + 1) + │ │ thews#0,SET test value formatter: 1 + │ ├── 00369 record (14 = 3 [3] + 9 + 2) + │ │ they#0,SET test value formatter: 14 + │ ├── 00383 record (14 = 3 [2] + 10 + 1) + │ │ thin#0,SET test value formatter: 1 + │ ├── 00397 record (13 = 3 [4] + 9 + 1) + │ │ thine#0,SET test value formatter: 3 + │ ├── 00410 record (13 = 3 [4] + 9 + 1) + │ │ thing#0,SET test value formatter: 6 + │ ├── 00423 record (13 = 3 [5] + 9 + 1) + │ │ things#0,SET test value formatter: 3 + │ ├── 00436 record (14 = 3 [4] + 9 + 2) + │ │ think#0,SET test value formatter: 16 + │ ├── 00450 record (15 = 3 [5] + 11 + 1) + │ │ thinking#0,SET test value formatter: 1 + │ ├── 00465 record (17 = 3 [0] + 13 + 1) [restart] + │ │ third#0,SET test value formatter: 1 + │ ├── 00482 record (14 = 3 [3] + 9 + 2) + │ │ this#0,SET test value formatter: 67 + │ ├── 00496 record (16 = 3 [2] + 12 + 1) + │ │ thorns#0,SET test value formatter: 1 + │ ├── 00512 record (13 = 3 [5] + 9 + 1) + │ │ thorny#0,SET test value formatter: 1 + │ ├── 00525 record (14 = 3 [3] + 10 + 1) + │ │ those#0,SET test value formatter: 7 + │ ├── 00539 record (14 = 3 [3] + 9 + 2) + │ │ thou#0,SET test value formatter: 28 + │ ├── 00553 record (15 = 3 [4] + 10 + 2) + │ │ though#0,SET test value formatter: 10 + │ ├── 00568 record (13 = 3 [6] + 9 + 1) + │ │ thought#0,SET test value formatter: 2 + │ ├── 00581 record (13 = 3 [7] + 9 + 1) + │ │ thoughts#0,SET test value formatter: 4 + │ ├── 00594 record (16 = 3 [2] + 12 + 1) + │ │ thrice#0,SET test value formatter: 1 + │ ├── 00610 record (14 = 3 [4] + 10 + 1) + │ │ thrift#0,SET test value formatter: 2 + │ ├── 00624 record (15 = 3 [3] + 11 + 1) + │ │ throat#0,SET test value formatter: 1 + │ ├── 00639 record (14 = 3 [4] + 10 + 1) + │ │ throne#0,SET test value formatter: 2 + │ ├── 00653 record (15 = 3 [4] + 11 + 1) + │ │ through#0,SET test value formatter: 3 + │ ├── 00668 record (13 = 3 [4] + 9 + 1) + │ │ throw#0,SET test value formatter: 1 + │ ├── 00681 record (17 = 3 [2] + 13 + 1) + │ │ thunder#0,SET test value formatter: 1 + │ ├── 00698 record (16 = 3 [0] + 12 + 1) [restart] + │ │ thus#0,SET test value formatter: 9 + │ ├── 00714 record (14 = 3 [2] + 9 + 2) + │ │ thy#0,SET test value formatter: 36 + │ ├── 00728 record (16 = 3 [3] + 12 + 1) + │ │ thyself#0,SET test value formatter: 1 + │ ├── 00744 record (15 = 3 [1] + 11 + 1) + │ │ till#0,SET test value formatter: 4 + │ ├── 00759 record (15 = 3 [2] + 10 + 2) + │ │ time#0,SET test value formatter: 10 + │ ├── 00774 record (13 = 3 [4] + 9 + 1) + │ │ times#0,SET test value formatter: 1 + │ ├── 00787 record (14 = 3 [2] + 9 + 2) + │ │ tis#0,SET test value formatter: 22 + │ ├── 00801 record (15 = 3 [1] + 9 + 3) + │ │ to#0,SET test value formatter: 192 + │ ├── 00816 record (13 = 3 [2] + 9 + 1) + │ │ toe#0,SET test value formatter: 1 + │ ├── 00829 record (18 = 3 [2] + 14 + 1) + │ │ together#0,SET test value formatter: 7 + │ ├── 00847 record (15 = 3 [2] + 11 + 1) + │ │ toils#0,SET test value formatter: 1 + │ ├── 00862 record (14 = 3 [2] + 10 + 1) + │ │ told#0,SET test value formatter: 2 + │ ├── 00876 record (16 = 3 [2] + 12 + 1) + │ │ tongue#0,SET test value formatter: 4 + │ ├── 00892 record (13 = 3 [2] + 9 + 1) + │ │ too#0,SET test value formatter: 9 + │ ├── 00905 record (13 = 3 [2] + 9 + 1) + │ │ top#0,SET test value formatter: 1 + │ ├── 00918 record (20 = 3 [2] + 16 + 1) + │ │ tormenting#0,SET test value formatter: 1 + │ ├── 00938 record (20 = 3 [0] + 16 + 1) [restart] + │ │ touching#0,SET test value formatter: 3 + │ ├── 00958 record (16 = 3 [2] + 12 + 1) + │ │ toward#0,SET test value formatter: 4 + │ ├── 00974 record (13 = 3 [2] + 9 + 1) + │ │ toy#0,SET test value formatter: 1 + │ ├── 00987 record (13 = 3 [3] + 9 + 1) + │ │ toys#0,SET test value formatter: 1 + │ ├── 01000 record (19 = 3 [1] + 15 + 1) + │ │ traduced#0,SET test value formatter: 1 + │ ├── 01019 record (16 = 3 [3] + 12 + 1) + │ │ tragedy#0,SET test value formatter: 1 + │ ├── 01035 record (15 = 3 [3] + 11 + 1) + │ │ trains#0,SET test value formatter: 1 + │ ├── 01050 record (18 = 3 [4] + 14 + 1) + │ │ traitorous#0,SET test value formatter: 1 + │ ├── 01068 record (18 = 3 [3] + 14 + 1) + │ │ trappings#0,SET test value formatter: 1 + │ ├── 01086 record (16 = 3 [2] + 12 + 1) + │ │ treads#0,SET test value formatter: 1 + │ ├── 01102 record (16 = 3 [4] + 12 + 1) + │ │ treasure#0,SET test value formatter: 2 + │ ├── 01118 record (16 = 3 [3] + 12 + 1) + │ │ tremble#0,SET test value formatter: 1 + │ ├── 01134 record (15 = 3 [2] + 11 + 1) + │ │ tried#0,SET test value formatter: 1 + │ ├── 01149 record (17 = 3 [3] + 13 + 1) + │ │ trifling#0,SET test value formatter: 1 + │ ├── 01166 record (16 = 3 [3] + 12 + 1) + │ │ triumph#0,SET test value formatter: 1 + │ ├── 01182 record (16 = 3 [3] + 12 + 1) + │ │ trivial#0,SET test value formatter: 1 + │ ├── 01198 record (19 = 3 [0] + 15 + 1) [restart] + │ │ trouble#0,SET test value formatter: 1 + │ ├── 01217 record (13 = 3 [7] + 9 + 1) + │ │ troubles#0,SET test value formatter: 1 + │ ├── 01230 record (16 = 3 [2] + 12 + 1) + │ │ truant#0,SET test value formatter: 2 + │ ├── 01246 record (13 = 3 [3] + 9 + 1) + │ │ true#0,SET test value formatter: 5 + │ ├── 01259 record (17 = 3 [4] + 13 + 1) + │ │ truepenny#0,SET test value formatter: 1 + │ ├── 01276 record (14 = 3 [3] + 10 + 1) + │ │ truly#0,SET test value formatter: 1 + │ ├── 01290 record (16 = 3 [3] + 12 + 1) + │ │ trumpet#0,SET test value formatter: 2 + │ ├── 01306 record (13 = 3 [7] + 9 + 1) + │ │ trumpets#0,SET test value formatter: 1 + │ ├── 01319 record (18 = 3 [3] + 14 + 1) + │ │ truncheon#0,SET test value formatter: 1 + │ ├── 01337 record (16 = 3 [3] + 12 + 1) + │ │ truster#0,SET test value formatter: 1 + │ ├── 01353 record (14 = 3 [3] + 10 + 1) + │ │ truth#0,SET test value formatter: 2 + │ ├── 01367 record (15 = 3 [1] + 11 + 1) + │ │ tush#0,SET test value formatter: 2 + │ ├── 01382 record (17 = 3 [1] + 13 + 1) + │ │ twelve#0,SET test value formatter: 3 + │ ├── 01399 record (14 = 3 [3] + 10 + 1) + │ │ twere#0,SET test value formatter: 1 + │ ├── 01413 record (15 = 3 [2] + 11 + 1) + │ │ twice#0,SET test value formatter: 2 + │ ├── 01428 record (14 = 3 [3] + 10 + 1) + │ │ twill#0,SET test value formatter: 2 + │ ├── 01442 record (17 = 3 [0] + 13 + 1) [restart] + │ │ twixt#0,SET test value formatter: 1 + │ ├── 01459 record (13 = 3 [2] + 9 + 1) + │ │ two#0,SET test value formatter: 5 + │ ├── 01472 record (18 = 3 [0] + 14 + 1) + │ │ ubique#0,SET test value formatter: 1 + │ ├── 01490 record (17 = 3 [1] + 13 + 1) + │ │ unanel#0,SET test value formatter: 1 + │ ├── 01507 record (15 = 3 [2] + 11 + 1) + │ │ uncle#0,SET test value formatter: 5 + │ ├── 01522 record (17 = 3 [2] + 13 + 1) + │ │ undergo#0,SET test value formatter: 1 + │ ├── 01539 record (17 = 3 [5] + 13 + 1) + │ │ understand#0,SET test value formatter: 1 + │ ├── 01556 record (15 = 3 [10] + 11 + 1) + │ │ understanding#0,SET test value formatter: 2 + │ ├── 01571 record (21 = 3 [2] + 17 + 1) + │ │ uneffectual#0,SET test value formatter: 1 + │ ├── 01592 record (19 = 3 [2] + 15 + 1) + │ │ unfledged#0,SET test value formatter: 1 + │ ├── 01611 record (15 = 3 [3] + 11 + 1) + │ │ unfold#0,SET test value formatter: 3 + │ ├── 01626 record (16 = 3 [4] + 12 + 1) + │ │ unforced#0,SET test value formatter: 1 + │ ├── 01642 record (18 = 3 [5] + 14 + 1) + │ │ unfortified#0,SET test value formatter: 1 + │ ├── 01660 record (20 = 3 [2] + 16 + 1) + │ │ ungracious#0,SET test value formatter: 1 + │ ├── 01680 record (16 = 3 [2] + 12 + 1) + │ │ unhand#0,SET test value formatter: 1 + │ ├── 01696 record (15 = 3 [3] + 11 + 1) + │ │ unholy#0,SET test value formatter: 1 + │ ├── 01711 record (20 = 3 [0] + 16 + 1) [restart] + │ │ unhousel#0,SET test value formatter: 1 + │ ├── 01731 record (20 = 3 [2] + 16 + 1) + │ │ unimproved#0,SET test value formatter: 1 + │ ├── 01751 record (17 = 3 [2] + 13 + 1) + │ │ unmanly#0,SET test value formatter: 1 + │ ├── 01768 record (14 = 3 [4] + 10 + 1) + │ │ unmask#0,SET test value formatter: 1 + │ ├── 01782 record (15 = 3 [5] + 11 + 1) + │ │ unmaster#0,SET test value formatter: 1 + │ ├── 01797 record (14 = 3 [3] + 10 + 1) + │ │ unmix#0,SET test value formatter: 1 + │ ├── 01811 record (19 = 3 [2] + 15 + 1) + │ │ unnatural#0,SET test value formatter: 2 + │ ├── 01830 record (22 = 3 [2] + 18 + 1) + │ │ unprevailing#0,SET test value formatter: 1 + │ ├── 01852 record (20 = 3 [4] + 16 + 1) + │ │ unprofitable#0,SET test value formatter: 1 + │ ├── 01872 record (21 = 3 [5] + 17 + 1) + │ │ unproportioned#0,SET test value formatter: 1 + │ ├── 01893 record (21 = 3 [2] + 17 + 1) + │ │ unrighteous#0,SET test value formatter: 1 + │ ├── 01914 record (18 = 3 [2] + 14 + 1) + │ │ unschool#0,SET test value formatter: 1 + │ ├── 01932 record (17 = 3 [3] + 13 + 1) + │ │ unsifted#0,SET test value formatter: 1 + │ ├── 01949 record (14 = 3 [2] + 10 + 1) + │ │ unto#0,SET test value formatter: 4 + │ ├── 01963 record (18 = 3 [2] + 14 + 1) + │ │ unvalued#0,SET test value formatter: 1 + │ ├── 01981 record (18 = 3 [2] + 14 + 1) + │ │ unweeded#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01999 [restart 0] + │ │ ├── 02003 [restart 236] + │ │ ├── 02007 [restart 465] + │ │ ├── 02011 [restart 698] + │ │ ├── 02015 [restart 938] + │ │ ├── 02019 [restart 1198] + │ │ ├── 02023 [restart 1442] + │ │ └── 02027 [restart 1711] + │ └── trailer [compression=none checksum=0xe12c134e] + ├── data offset: 24504 length: 2036 + │ ├── 00000 record (15 = 3 [0] + 10 + 2) [restart] + │ │ up#0,SET test value formatter: 10 + │ ├── 00015 record (19 = 3 [2] + 15 + 1) + │ │ uphoarded#0,SET test value formatter: 1 + │ ├── 00034 record (15 = 3 [2] + 10 + 2) + │ │ upon#0,SET test value formatter: 18 + │ ├── 00049 record (14 = 3 [1] + 9 + 2) + │ │ us#0,SET test value formatter: 19 + │ ├── 00063 record (13 = 3 [2] + 9 + 1) + │ │ use#0,SET test value formatter: 1 + │ ├── 00076 record (13 = 3 [3] + 9 + 1) + │ │ uses#0,SET test value formatter: 1 + │ ├── 00089 record (15 = 3 [2] + 11 + 1) + │ │ usurp#0,SET test value formatter: 1 + │ ├── 00104 record (13 = 3 [0] + 9 + 1) + │ │ v#0,SET test value formatter: 1 + │ ├── 00117 record (17 = 3 [1] + 13 + 1) + │ │ vailed#0,SET test value formatter: 1 + │ ├── 00134 record (13 = 3 [3] + 9 + 1) + │ │ vain#0,SET test value formatter: 1 + │ ├── 00147 record (17 = 3 [2] + 13 + 1) + │ │ valiant#0,SET test value formatter: 2 + │ ├── 00164 record (16 = 3 [2] + 12 + 1) + │ │ vanish#0,SET test value formatter: 1 + │ ├── 00180 record (19 = 3 [3] + 15 + 1) + │ │ vanquisher#0,SET test value formatter: 1 + │ ├── 00199 record (14 = 3 [2] + 10 + 1) + │ │ vast#0,SET test value formatter: 1 + │ ├── 00213 record (15 = 3 [1] + 11 + 1) + │ │ very#0,SET test value formatter: 9 + │ ├── 00228 record (15 = 3 [1] + 11 + 1) + │ │ vial#0,SET test value formatter: 1 + │ ├── 00243 record (19 = 3 [0] + 15 + 1) [restart] + │ │ vicious#0,SET test value formatter: 1 + │ ├── 00262 record (16 = 3 [2] + 12 + 1) + │ │ vigour#0,SET test value formatter: 1 + │ ├── 00278 record (14 = 3 [2] + 10 + 1) + │ │ vile#0,SET test value formatter: 1 + │ ├── 00292 record (16 = 3 [3] + 12 + 1) + │ │ villain#0,SET test value formatter: 5 + │ ├── 00308 record (18 = 3 [2] + 14 + 1) + │ │ violence#0,SET test value formatter: 2 + │ ├── 00326 record (13 = 3 [5] + 9 + 1) + │ │ violet#0,SET test value formatter: 1 + │ ├── 00339 record (16 = 3 [2] + 12 + 1) + │ │ virtue#0,SET test value formatter: 3 + │ ├── 00355 record (13 = 3 [6] + 9 + 1) + │ │ virtues#0,SET test value formatter: 1 + │ ├── 00368 record (15 = 3 [5] + 11 + 1) + │ │ virtuous#0,SET test value formatter: 1 + │ ├── 00383 record (16 = 3 [2] + 12 + 1) + │ │ visage#0,SET test value formatter: 1 + │ ├── 00399 record (15 = 3 [3] + 11 + 1) + │ │ vision#0,SET test value formatter: 1 + │ ├── 00414 record (13 = 3 [4] + 9 + 1) + │ │ visit#0,SET test value formatter: 2 + │ ├── 00427 record (16 = 3 [1] + 12 + 1) + │ │ voice#0,SET test value formatter: 5 + │ ├── 00443 record (19 = 3 [2] + 15 + 1) + │ │ voltimand#0,SET test value formatter: 4 + │ ├── 00462 record (15 = 3 [3] + 11 + 1) + │ │ volume#0,SET test value formatter: 1 + │ ├── 00477 record (13 = 3 [2] + 9 + 1) + │ │ vow#0,SET test value formatter: 1 + │ ├── 00490 record (16 = 3 [0] + 12 + 1) [restart] + │ │ vows#0,SET test value formatter: 3 + │ ├── 00506 record (17 = 3 [1] + 13 + 1) + │ │ vulgar#0,SET test value formatter: 2 + │ ├── 00523 record (16 = 3 [0] + 12 + 1) + │ │ wake#0,SET test value formatter: 1 + │ ├── 00539 record (14 = 3 [2] + 10 + 1) + │ │ walk#0,SET test value formatter: 6 + │ ├── 00553 record (13 = 3 [4] + 9 + 1) + │ │ walks#0,SET test value formatter: 1 + │ ├── 00566 record (15 = 3 [2] + 11 + 1) + │ │ wants#0,SET test value formatter: 1 + │ ├── 00581 record (13 = 3 [2] + 9 + 1) + │ │ war#0,SET test value formatter: 1 + │ ├── 00594 record (16 = 3 [3] + 12 + 1) + │ │ warlike#0,SET test value formatter: 2 + │ ├── 00610 record (16 = 3 [3] + 12 + 1) + │ │ warning#0,SET test value formatter: 1 + │ ├── 00626 record (16 = 3 [3] + 12 + 1) + │ │ warrant#0,SET test value formatter: 1 + │ ├── 00642 record (13 = 3 [3] + 9 + 1) + │ │ wars#0,SET test value formatter: 1 + │ ├── 00655 record (13 = 3 [3] + 9 + 1) + │ │ wary#0,SET test value formatter: 1 + │ ├── 00668 record (14 = 3 [2] + 9 + 2) + │ │ was#0,SET test value formatter: 17 + │ ├── 00682 record (16 = 3 [3] + 12 + 1) + │ │ wassail#0,SET test value formatter: 1 + │ ├── 00698 record (16 = 3 [2] + 11 + 2) + │ │ watch#0,SET test value formatter: 12 + │ ├── 00714 record (15 = 3 [5] + 11 + 1) + │ │ watchman#0,SET test value formatter: 1 + │ ├── 00729 record (17 = 3 [0] + 13 + 1) [restart] + │ │ waves#0,SET test value formatter: 3 + │ ├── 00746 record (15 = 3 [2] + 11 + 1) + │ │ waxes#0,SET test value formatter: 2 + │ ├── 00761 record (13 = 3 [2] + 9 + 1) + │ │ way#0,SET test value formatter: 2 + │ ├── 00774 record (13 = 3 [3] + 9 + 1) + │ │ ways#0,SET test value formatter: 1 + │ ├── 00787 record (14 = 3 [1] + 9 + 2) + │ │ we#0,SET test value formatter: 34 + │ ├── 00801 record (14 = 3 [2] + 10 + 1) + │ │ weak#0,SET test value formatter: 1 + │ ├── 00815 record (14 = 3 [3] + 10 + 1) + │ │ wears#0,SET test value formatter: 1 + │ ├── 00829 record (13 = 3 [4] + 9 + 1) + │ │ weary#0,SET test value formatter: 1 + │ ├── 00842 record (17 = 3 [2] + 13 + 1) + │ │ wedding#0,SET test value formatter: 1 + │ ├── 00859 record (14 = 3 [2] + 10 + 1) + │ │ weed#0,SET test value formatter: 1 + │ ├── 00873 record (13 = 3 [3] + 9 + 1) + │ │ week#0,SET test value formatter: 1 + │ ├── 00886 record (15 = 3 [2] + 11 + 1) + │ │ weigh#0,SET test value formatter: 2 + │ ├── 00901 record (15 = 3 [5] + 11 + 1) + │ │ weighing#0,SET test value formatter: 1 + │ ├── 00916 record (17 = 3 [2] + 13 + 1) + │ │ welcome#0,SET test value formatter: 3 + │ ├── 00933 record (14 = 3 [3] + 9 + 2) + │ │ well#0,SET test value formatter: 14 + │ ├── 00947 record (14 = 3 [2] + 10 + 1) + │ │ went#0,SET test value formatter: 1 + │ ├── 00961 record (16 = 3 [0] + 12 + 1) [restart] + │ │ were#0,SET test value formatter: 3 + │ ├── 00977 record (14 = 3 [2] + 10 + 1) + │ │ west#0,SET test value formatter: 1 + │ ├── 00991 record (16 = 3 [4] + 12 + 1) + │ │ westward#0,SET test value formatter: 1 + │ ├── 01007 record (16 = 3 [1] + 12 + 1) + │ │ wharf#0,SET test value formatter: 1 + │ ├── 01023 record (14 = 3 [3] + 9 + 2) + │ │ what#0,SET test value formatter: 42 + │ ├── 01037 record (18 = 3 [4] + 14 + 1) + │ │ whatsoever#0,SET test value formatter: 1 + │ ├── 01055 record (14 = 3 [2] + 10 + 1) + │ │ when#0,SET test value formatter: 8 + │ ├── 01069 record (14 = 3 [4] + 10 + 1) + │ │ whence#0,SET test value formatter: 1 + │ ├── 01083 record (14 = 3 [3] + 10 + 1) + │ │ where#0,SET test value formatter: 9 + │ ├── 01097 record (16 = 3 [5] + 12 + 1) + │ │ wherefore#0,SET test value formatter: 1 + │ ├── 01113 record (14 = 3 [5] + 10 + 1) + │ │ wherein#0,SET test value formatter: 4 + │ ├── 01127 record (14 = 3 [5] + 10 + 1) + │ │ whereof#0,SET test value formatter: 2 + │ ├── 01141 record (16 = 3 [3] + 12 + 1) + │ │ whether#0,SET test value formatter: 1 + │ ├── 01157 record (16 = 3 [2] + 11 + 2) + │ │ which#0,SET test value formatter: 16 + │ ├── 01173 record (14 = 3 [3] + 10 + 1) + │ │ while#0,SET test value formatter: 2 + │ ├── 01187 record (13 = 3 [5] + 9 + 1) + │ │ whiles#0,SET test value formatter: 1 + │ ├── 01200 record (18 = 3 [0] + 14 + 1) [restart] + │ │ whilst#0,SET test value formatter: 1 + │ ├── 01218 record (17 = 3 [3] + 13 + 1) + │ │ whirling#0,SET test value formatter: 1 + │ ├── 01235 record (16 = 3 [3] + 12 + 1) + │ │ whisper#0,SET test value formatter: 1 + │ ├── 01251 record (13 = 3 [2] + 9 + 1) + │ │ who#0,SET test value formatter: 8 + │ ├── 01264 record (14 = 3 [3] + 10 + 1) + │ │ whole#0,SET test value formatter: 3 + │ ├── 01278 record (16 = 3 [5] + 12 + 1) + │ │ wholesome#0,SET test value formatter: 2 + │ ├── 01294 record (14 = 3 [3] + 10 + 1) + │ │ whose#0,SET test value formatter: 8 + │ ├── 01308 record (14 = 3 [2] + 9 + 2) + │ │ why#0,SET test value formatter: 13 + │ ├── 01322 record (17 = 3 [1] + 13 + 1) + │ │ wicked#0,SET test value formatter: 3 + │ ├── 01339 record (14 = 3 [2] + 10 + 1) + │ │ wide#0,SET test value formatter: 1 + │ ├── 01353 record (14 = 3 [2] + 10 + 1) + │ │ wife#0,SET test value formatter: 1 + │ ├── 01367 record (14 = 3 [2] + 10 + 1) + │ │ wild#0,SET test value formatter: 1 + │ ├── 01381 record (14 = 3 [3] + 9 + 2) + │ │ will#0,SET test value formatter: 25 + │ ├── 01395 record (15 = 3 [4] + 11 + 1) + │ │ willing#0,SET test value formatter: 1 + │ ├── 01410 record (14 = 3 [7] + 10 + 1) + │ │ willingly#0,SET test value formatter: 1 + │ ├── 01424 record (13 = 3 [3] + 9 + 1) + │ │ wilt#0,SET test value formatter: 1 + │ ├── 01437 record (16 = 3 [0] + 12 + 1) [restart] + │ │ wind#0,SET test value formatter: 2 + │ ├── 01453 record (13 = 3 [4] + 9 + 1) + │ │ winds#0,SET test value formatter: 2 + │ ├── 01466 record (13 = 3 [4] + 9 + 1) + │ │ windy#0,SET test value formatter: 1 + │ ├── 01479 record (14 = 3 [3] + 10 + 1) + │ │ wings#0,SET test value formatter: 1 + │ ├── 01493 record (14 = 3 [2] + 10 + 1) + │ │ wipe#0,SET test value formatter: 1 + │ ├── 01507 record (16 = 3 [2] + 12 + 1) + │ │ wisdom#0,SET test value formatter: 1 + │ ├── 01523 record (13 = 3 [6] + 9 + 1) + │ │ wisdoms#0,SET test value formatter: 1 + │ ├── 01536 record (15 = 3 [3] + 11 + 1) + │ │ wisest#0,SET test value formatter: 1 + │ ├── 01551 record (15 = 3 [3] + 11 + 1) + │ │ wishes#0,SET test value formatter: 1 + │ ├── 01566 record (13 = 3 [2] + 9 + 1) + │ │ wit#0,SET test value formatter: 2 + │ ├── 01579 record (14 = 3 [3] + 10 + 1) + │ │ witch#0,SET test value formatter: 1 + │ ├── 01593 record (17 = 3 [5] + 13 + 1) + │ │ witchcraft#0,SET test value formatter: 1 + │ ├── 01610 record (14 = 3 [3] + 9 + 2) + │ │ with#0,SET test value formatter: 65 + │ ├── 01624 record (14 = 3 [4] + 10 + 1) + │ │ withal#0,SET test value formatter: 2 + │ ├── 01638 record (15 = 3 [4] + 10 + 2) + │ │ within#0,SET test value formatter: 11 + │ ├── 01653 record (15 = 3 [4] + 11 + 1) + │ │ without#0,SET test value formatter: 3 + │ ├── 01668 record (19 = 3 [0] + 15 + 1) [restart] + │ │ witness#0,SET test value formatter: 1 + │ ├── 01687 record (19 = 3 [3] + 15 + 1) + │ │ wittenberg#0,SET test value formatter: 4 + │ ├── 01706 record (14 = 3 [1] + 10 + 1) + │ │ woe#0,SET test value formatter: 3 + │ ├── 01720 record (15 = 3 [2] + 11 + 1) + │ │ woman#0,SET test value formatter: 2 + │ ├── 01735 record (13 = 3 [3] + 9 + 1) + │ │ womb#0,SET test value formatter: 1 + │ ├── 01748 record (13 = 3 [2] + 9 + 1) + │ │ won#0,SET test value formatter: 1 + │ ├── 01761 record (15 = 3 [3] + 11 + 1) + │ │ wonder#0,SET test value formatter: 1 + │ ├── 01776 record (15 = 3 [6] + 11 + 1) + │ │ wonderful#0,SET test value formatter: 1 + │ ├── 01791 record (16 = 3 [4] + 12 + 1) + │ │ wondrous#0,SET test value formatter: 1 + │ ├── 01807 record (13 = 3 [3] + 9 + 1) + │ │ wont#0,SET test value formatter: 1 + │ ├── 01820 record (19 = 3 [2] + 15 + 1) + │ │ woodcocks#0,SET test value formatter: 1 + │ ├── 01839 record (14 = 3 [2] + 10 + 1) + │ │ word#0,SET test value formatter: 3 + │ ├── 01853 record (13 = 3 [4] + 9 + 1) + │ │ words#0,SET test value formatter: 2 + │ ├── 01866 record (13 = 3 [3] + 9 + 1) + │ │ wore#0,SET test value formatter: 1 + │ ├── 01879 record (13 = 3 [3] + 9 + 1) + │ │ work#0,SET test value formatter: 2 + │ ├── 01892 record (14 = 3 [3] + 10 + 1) + │ │ world#0,SET test value formatter: 3 + │ ├── 01906 record (16 = 3 [0] + 12 + 1) [restart] + │ │ worm#0,SET test value formatter: 1 + │ ├── 01922 record (14 = 3 [3] + 10 + 1) + │ │ worth#0,SET test value formatter: 1 + │ ├── 01936 record (13 = 3 [5] + 9 + 1) + │ │ worthy#0,SET test value formatter: 1 + │ ├── 01949 record (16 = 3 [2] + 11 + 2) + │ │ would#0,SET test value formatter: 14 + │ ├── 01965 record (14 = 3 [5] + 10 + 1) + │ │ wouldst#0,SET test value formatter: 3 + │ ├── 01979 record (17 = 3 [1] + 13 + 1) + │ │ wretch#0,SET test value formatter: 1 + │ ├── restart points + │ │ ├── 01996 [restart 0] + │ │ ├── 02000 [restart 243] + │ │ ├── 02004 [restart 490] + │ │ ├── 02008 [restart 729] + │ │ ├── 02012 [restart 961] + │ │ ├── 02016 [restart 1200] + │ │ ├── 02020 [restart 1437] + │ │ ├── 02024 [restart 1668] + │ │ └── 02028 [restart 1906] + │ └── trailer [compression=none checksum=0x99c293d8] + ├── data offset: 26545 length: 249 + │ ├── 00000 record (16 = 3 [0] + 12 + 1) [restart] + │ │ writ#0,SET test value formatter: 2 + │ ├── 00016 record (15 = 3 [4] + 11 + 1) + │ │ writing#0,SET test value formatter: 1 + │ ├── 00031 record (15 = 3 [2] + 11 + 1) + │ │ wrong#0,SET test value formatter: 1 + │ ├── 00046 record (15 = 3 [2] + 11 + 1) + │ │ wrung#0,SET test value formatter: 1 + │ ├── 00061 record (15 = 3 [0] + 11 + 1) + │ │ yea#0,SET test value formatter: 1 + │ ├── 00076 record (13 = 3 [2] + 9 + 1) + │ │ yes#0,SET test value formatter: 4 + │ ├── 00089 record (20 = 3 [3] + 16 + 1) + │ │ yesternight#0,SET test value formatter: 1 + │ ├── 00109 record (13 = 3 [2] + 9 + 1) + │ │ yet#0,SET test value formatter: 7 + │ ├── 00122 record (19 = 3 [1] + 15 + 1) + │ │ yielding#0,SET test value formatter: 1 + │ ├── 00141 record (14 = 3 [1] + 10 + 1) + │ │ yon#0,SET test value formatter: 1 + │ ├── 00155 record (13 = 3 [3] + 9 + 1) + │ │ yond#0,SET test value formatter: 1 + │ ├── 00168 record (15 = 3 [2] + 9 + 3) + │ │ you#0,SET test value formatter: 110 + │ ├── 00183 record (14 = 3 [3] + 10 + 1) + │ │ young#0,SET test value formatter: 6 + │ ├── 00197 record (14 = 3 [3] + 9 + 2) + │ │ your#0,SET test value formatter: 49 + │ ├── 00211 record (16 = 3 [4] + 12 + 1) + │ │ yourself#0,SET test value formatter: 7 + │ ├── 00227 record (14 = 3 [3] + 10 + 1) + │ │ youth#0,SET test value formatter: 5 + │ ├── restart points + │ │ └── 00241 [restart 0] + │ └── trailer [compression=none checksum=0x2bb2856] + ├── index offset: 26799 length: 120 + │ ├── 00000 block:0/2041 [restart] + │ ├── 00018 block:2046/2044 [restart] + │ ├── 00040 block:4095/2039 [restart] + │ ├── 00059 block:6139/2036 [restart] + │ ├── 00077 block:8180/2032 [restart] + │ ├── restart points + │ │ ├── 00096 [restart 0] + │ │ ├── 00100 [restart 18] + │ │ ├── 00104 [restart 40] + │ │ ├── 00108 [restart 59] + │ │ └── 00112 [restart 77] + │ └── trailer [compression=none checksum=0x4b1bc52e] + ├── index offset: 26924 length: 118 + │ ├── 00000 block:10217/2042 [restart] + │ ├── 00017 block:12264/2039 [restart] + │ ├── 00035 block:14308/2037 [restart] + │ ├── 00055 block:16350/2029 [restart] + │ ├── 00074 block:18384/2040 [restart] + │ ├── restart points + │ │ ├── 00094 [restart 0] + │ │ ├── 00098 [restart 17] + │ │ ├── 00102 [restart 35] + │ │ ├── 00106 [restart 55] + │ │ └── 00110 [restart 74] + │ └── trailer [compression=none checksum=0xe1dd6a77] + ├── index offset: 27047 length: 95 + │ ├── 00000 block:20429/2030 [restart] + │ ├── 00021 block:22464/2035 [restart] + │ ├── 00039 block:24504/2036 [restart] + │ ├── 00058 block:26545/249 [restart] + │ ├── restart points + │ │ ├── 00075 [restart 0] + │ │ ├── 00079 [restart 21] + │ │ ├── 00083 [restart 39] + │ │ └── 00087 [restart 58] + │ └── trailer [compression=none checksum=0x3b1313e3] + ├── top-index offset: 27147 length: 70 + │ ├── 00000 block:26799/120 [restart] + │ ├── 00019 block:26924/118 [restart] + │ ├── 00038 block:27047/95 [restart] + │ ├── restart points + │ │ ├── 00054 [restart 0] + │ │ ├── 00058 [restart 19] + │ │ └── 00062 [restart 38] + │ └── trailer [compression=none checksum=0xd20fdc47] + ├── range-del offset: 27222 length: 421 + │ ├── 00000 record (13 = 3 [0] + 9 + 1) [restart] + │ │ a-a#0,RANGEDEL + │ ├── 00013 record (23 = 3 [0] + 13 + 7) [restart] + │ │ beard-bearers#0,RANGEDEL + │ ├── 00036 record (24 = 3 [0] + 16 + 5) [restart] + │ │ carriage-carve#0,RANGEDEL + │ ├── 00060 record (21 = 3 [0] + 13 + 5) [restart] + │ │ cross-crows#0,RANGEDEL + │ ├── 00081 record (23 = 3 [0] + 14 + 6) [restart] + │ │ duller-duties#0,RANGEDEL + │ ├── 00104 record (21 = 3 [0] + 14 + 4) [restart] + │ │ fierce-fire#0,RANGEDEL + │ ├── 00125 record (21 = 3 [0] + 13 + 5) [restart] + │ │ grace-great#0,RANGEDEL + │ ├── 00146 record (17 = 3 [0] + 11 + 3) [restart] + │ │ how-ice#0,RANGEDEL + │ ├── 00163 record (20 = 3 [0] + 12 + 5) [restart] + │ │ lead-lends#0,RANGEDEL + │ ├── 00183 record (18 = 3 [0] + 12 + 3) [restart] + │ │ meet-met#0,RANGEDEL + │ ├── 00201 record (17 = 3 [0] + 10 + 4) [restart] + │ │ of-once#0,RANGEDEL + │ ├── 00218 record (25 = 3 [0] + 16 + 6) [restart] + │ │ precurse-prison#0,RANGEDEL + │ ├── 00243 record (15 = 3 [0] + 9 + 3) [restart] + │ │ s-saw#0,RANGEDEL + │ ├── 00258 record (19 = 3 [0] + 12 + 4) [restart] + │ │ slay-soil#0,RANGEDEL + │ ├── 00277 record (24 = 3 [0] + 16 + 5) [restart] + │ │ suppress-sword#0,RANGEDEL + │ ├── 00301 record (23 = 3 [0] + 16 + 4) [restart] + │ │ traduced-true#0,RANGEDEL + │ ├── 00324 record (25 = 3 [0] + 15 + 7) [restart] + │ │ warning-wedding#0,RANGEDEL + │ ├── restart points + │ │ ├── 00349 [restart 0] + │ │ ├── 00353 [restart 13] + │ │ ├── 00357 [restart 36] + │ │ ├── 00361 [restart 60] + │ │ ├── 00365 [restart 81] + │ │ ├── 00369 [restart 104] + │ │ ├── 00373 [restart 125] + │ │ ├── 00377 [restart 146] + │ │ ├── 00381 [restart 163] + │ │ ├── 00385 [restart 183] + │ │ ├── 00389 [restart 201] + │ │ ├── 00393 [restart 218] + │ │ ├── 00397 [restart 243] + │ │ ├── 00401 [restart 258] + │ │ ├── 00405 [restart 277] + │ │ ├── 00409 [restart 301] + │ │ └── 00413 [restart 324] + │ └── trailer [compression=none checksum=0xb93b31c5] + ├── properties offset: 27648 length: 455 + │ ├── 00000 rocksdb.block.based.table.index.type (43) [restart] + │ ├── 00043 rocksdb.comparator (39) + │ ├── 00082 rocksdb.compression (23) + │ ├── 00105 rocksdb.compression_options (106) + │ ├── 00211 rocksdb.data.size (15) + │ ├── 00226 rocksdb.deleted.keys (15) + │ ├── 00241 rocksdb.filter.size (15) + │ ├── 00256 rocksdb.index.partitions (20) + │ ├── 00276 rocksdb.index.size (9) + │ ├── 00285 rocksdb.merge.operands (18) + │ ├── 00303 rocksdb.merge.operator (13) + │ ├── 00316 rocksdb.num.data.blocks (19) + │ ├── 00335 rocksdb.num.entries (12) + │ ├── 00347 rocksdb.num.range-deletions (19) + │ ├── 00366 rocksdb.property.collectors (24) + │ ├── 00390 rocksdb.raw.key.size (18) + │ ├── 00408 rocksdb.raw.value.size (15) + │ ├── 00423 rocksdb.top-level.index.size (24) + │ ├── restart points + │ │ └── 00447 [restart 0] + │ └── trailer [compression=none checksum=0x3c8612a0] + ├── meta-index offset: 28108 length: 64 + │ ├── 0000 rocksdb.properties block:27648/455 [restart] + │ ├── 0026 rocksdb.range_del2 block:27222/421 [restart] + │ ├── restart points + │ │ ├── 00052 [restart 0] + │ │ └── 00056 [restart 26] + │ └── trailer [compression=none checksum=0x8809b4f7] + └── footer offset: 28177 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=28108, length=64 + ├── 005 index: offset=27147, length=70 + ├── 041 version: 1 + └── 045 magic number: 0xf09faab3f09faab3 sstable layout -v testdata/out-of-order.sst ---- out-of-order.sst - 0 data (28) - 0 record (12 = 3 [0] + 9 + 0) [restart] - a#0,SET [] - 12 record (12 = 3 [0] + 9 + 0) - c#0,SET [] - 24 record (12 = 3 [0] + 9 + 0) - b#0,SET [] - WARNING: OUT OF ORDER KEYS! - 36 [restart 0] - 28 [trailer compression=snappy checksum=0x94ebf32b] - 33 index (22) - 33 block:0/28 [restart] - 47 [restart 33] - 55 [trailer compression=none checksum=0xc316e0d2] - 60 properties (541) - 60 rocksdb.block.based.table.index.type (43) [restart] - 103 rocksdb.block.based.table.prefix.filtering (20) - 123 rocksdb.block.based.table.whole.key.filtering (23) - 146 rocksdb.comparator (39) - 185 rocksdb.compression (16) - 201 rocksdb.compression_options (106) - 307 rocksdb.data.size (13) - 320 rocksdb.deleted.keys (15) - 335 rocksdb.external_sst_file.global_seqno (41) - 376 rocksdb.external_sst_file.version (14) - 390 rocksdb.filter.size (15) - 405 rocksdb.index.size (14) - 419 rocksdb.merge.operands (18) - 437 rocksdb.merge.operator (24) - 461 rocksdb.num.data.blocks (19) - 480 rocksdb.num.entries (11) - 491 rocksdb.num.range-deletions (19) - 510 rocksdb.prefix.extractor.name (31) - 541 rocksdb.property.collectors (22) - 563 rocksdb.raw.key.size (16) - 579 rocksdb.raw.value.size (14) - 593 [restart 60] - 601 [trailer compression=none checksum=0x4ed23e12] - 606 meta-index (32) - 606 rocksdb.properties block:60/541 [restart] - 630 [restart 606] - 638 [trailer compression=none checksum=0xbba76d3c] - 643 footer (53) - 643 checksum type: crc32c - 644 meta: offset=606, length=32 - 647 index: offset=33, length=22 - 649 [padding] - 684 version: 1 - 688 magic number: 0xf09faab3f09faab3 - 696 EOF +sstable + ├── data offset: 0 length: 28 + │ ├── 00000 record (12 = 3 [0] + 9 + 0) [restart] + │ │ a#0,SET [] + │ ├── 00012 record (12 = 3 [0] + 9 + 0) + │ │ c#0,SET [] + │ ├── 00024 record (12 = 3 [0] + 9 + 0) + │ │ b#0,SET [] WARNING: OUT OF ORDER KEYS! + │ ├── restart points + │ │ └── 00036 [restart 0] + │ └── trailer [compression=snappy checksum=0x94ebf32b] + ├── index offset: 33 length: 22 + │ ├── 00000 block:0/28 [restart] + │ ├── restart points + │ │ └── 00014 [restart 0] + │ └── trailer [compression=none checksum=0xc316e0d2] + ├── properties offset: 60 length: 541 + │ ├── 00000 rocksdb.block.based.table.index.type (43) [restart] + │ ├── 00043 rocksdb.block.based.table.prefix.filtering (20) + │ ├── 00063 rocksdb.block.based.table.whole.key.filtering (23) + │ ├── 00086 rocksdb.comparator (39) + │ ├── 00125 rocksdb.compression (16) + │ ├── 00141 rocksdb.compression_options (106) + │ ├── 00247 rocksdb.data.size (13) + │ ├── 00260 rocksdb.deleted.keys (15) + │ ├── 00275 rocksdb.external_sst_file.global_seqno (41) + │ ├── 00316 rocksdb.external_sst_file.version (14) + │ ├── 00330 rocksdb.filter.size (15) + │ ├── 00345 rocksdb.index.size (14) + │ ├── 00359 rocksdb.merge.operands (18) + │ ├── 00377 rocksdb.merge.operator (24) + │ ├── 00401 rocksdb.num.data.blocks (19) + │ ├── 00420 rocksdb.num.entries (11) + │ ├── 00431 rocksdb.num.range-deletions (19) + │ ├── 00450 rocksdb.prefix.extractor.name (31) + │ ├── 00481 rocksdb.property.collectors (22) + │ ├── 00503 rocksdb.raw.key.size (16) + │ ├── 00519 rocksdb.raw.value.size (14) + │ ├── restart points + │ │ └── 00533 [restart 0] + │ └── trailer [compression=none checksum=0x4ed23e12] + ├── meta-index offset: 606 length: 32 + │ ├── 0000 rocksdb.properties block:60/541 [restart] + │ ├── restart points + │ │ └── 00024 [restart 0] + │ └── trailer [compression=none checksum=0xbba76d3c] + └── footer offset: 643 length: 53 + ├── 000 checksum type: crc32c + ├── 001 meta: offset=606, length=32 + ├── 004 index: offset=33, length=22 + ├── 041 version: 1 + └── 045 magic number: 0xf09faab3f09faab3 sstable layout ./testdata/mixed/000005.sst ---- 000005.sst - 0 data (231) - 236 index (23) - 264 range-key (64) - 333 properties (601) - 939 meta-index (59) - 1003 footer (53) - 1056 EOF +sstable + ├── data offset: 0 length: 231 + ├── index offset: 236 length: 23 + ├── range-key offset: 264 length: 64 + ├── properties offset: 333 length: 601 + ├── meta-index offset: 939 length: 59 + └── footer offset: 1003 length: 53