Skip to content

Commit d35e142

Browse files
committed
write pre-encoded key and value lengths
1 parent 7456ee4 commit d35e142

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

protocol/encode.go

+10
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,16 @@ func (e *encoder) writeVarNullBytesFrom(b Bytes) error {
340340
}
341341
}
342342

343+
func (e *encoder) writeRawVarNullBytesFrom(b Bytes) error {
344+
if b == nil {
345+
e.writeVarInt(-1)
346+
return nil
347+
} else {
348+
_, err := io.Copy(e, b)
349+
return err
350+
}
351+
}
352+
343353
func (e *encoder) writeVarInt(i int64) {
344354
e.writeUnsignedVarInt(uint64((i << 1) ^ (i >> 63)))
345355
}

protocol/record_v2.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -370,11 +370,13 @@ func (rs *RecordSet) writePreCompressed(buffer *pageBuffer, bufferOffset int64)
370370
e.writeVarInt(timestampDelta)
371371
e.writeVarInt(offsetDelta)
372372

373-
if err := e.writeVarNullBytesFrom(r.Key); err != nil {
373+
e.writeUnsignedVarInt(uint64(r.PreEncodedKeylen))
374+
if err := e.writeRawVarNullBytesFrom(r.Key); err != nil {
374375
return err
375376
}
376377

377-
if err := e.writeVarNullBytesFrom(r.Value); err != nil {
378+
e.writeUnsignedVarInt(uint64(r.PreEncodedValueLen))
379+
if err := e.writeRawVarNullBytesFrom(r.Value); err != nil {
378380
return err
379381
}
380382

0 commit comments

Comments
 (0)