@@ -11,12 +11,14 @@ import (
11
11
"testing"
12
12
13
13
"github.com/cockroachdb/cockroach/pkg/keys"
14
+ "github.com/cockroachdb/cockroach/pkg/kv/kvserver/print"
14
15
"github.com/cockroachdb/cockroach/pkg/roachpb"
15
16
"github.com/cockroachdb/cockroach/pkg/settings/cluster"
16
17
"github.com/cockroachdb/cockroach/pkg/storage"
17
18
"github.com/cockroachdb/cockroach/pkg/storage/enginepb"
18
19
"github.com/cockroachdb/cockroach/pkg/storage/mvccencoding"
19
20
"github.com/cockroachdb/cockroach/pkg/util/protoutil"
21
+ "github.com/cockroachdb/errors"
20
22
"github.com/cockroachdb/pebble"
21
23
"github.com/cockroachdb/pebble/sstable"
22
24
"github.com/cockroachdb/pebble/sstable/block"
@@ -150,9 +152,9 @@ func ReportSSTEntries(buf *redact.StringBuilder, name string, sst []byte) error
150
152
if err := iter .Error (); err != nil {
151
153
return err
152
154
}
153
- key , err := storage .DecodeMVCCKey (kv .K .UserKey )
154
- if err != nil {
155
- return err
155
+ key , ok := storage .DecodeEngineKey (kv .K .UserKey )
156
+ if ! ok {
157
+ return errors . Errorf ( "invalid engine key: %x" , kv . K . UserKey )
156
158
}
157
159
v , _ , err := kv .Value (nil )
158
160
if err != nil {
@@ -162,7 +164,20 @@ func ReportSSTEntries(buf *redact.StringBuilder, name string, sst []byte) error
162
164
if err != nil {
163
165
return err
164
166
}
165
- buf .Printf ("%s: %s -> %s\n " , strings .ToLower (kv .Kind ().String ()), key , value )
167
+ if ! key .IsMVCCKey () {
168
+ buf .Printf ("%s: %s -> %s\n " , strings .ToLower (kv .Kind ().String ()), key , value )
169
+ continue
170
+ }
171
+ mk , err := key .ToMVCCKey ()
172
+ if err != nil {
173
+ return err
174
+ }
175
+ if mk .IsValue () {
176
+ buf .Printf ("%s: %s -> %s\n " , strings .ToLower (kv .Kind ().String ()), mk , value )
177
+ } else {
178
+ buf .Printf ("%s: %s -> %s\n " , strings .ToLower (kv .Kind ().String ()), mk ,
179
+ print .SprintMVCCKeyValue (storage.MVCCKeyValue {Key : mk , Value : v }, false /* printKey */ ))
180
+ }
166
181
}
167
182
168
183
// Dump rangedels.
@@ -172,13 +187,13 @@ func ReportSSTEntries(buf *redact.StringBuilder, name string, sst []byte) error
172
187
defer rdIter .Close ()
173
188
s , err := rdIter .First ()
174
189
for ; s != nil ; s , err = rdIter .Next () {
175
- start , err := storage .DecodeMVCCKey (s .Start )
176
- if err != nil {
177
- return err
190
+ start , ok := storage .DecodeEngineKey (s .Start )
191
+ if ! ok {
192
+ return errors . Errorf ( "invalid engine key: %x" , s . Start )
178
193
}
179
- end , err := storage .DecodeMVCCKey (s .End )
180
- if err != nil {
181
- return err
194
+ end , ok := storage .DecodeEngineKey (s .End )
195
+ if ! ok {
196
+ return errors . Errorf ( "invalid engine key: %x" , s . End )
182
197
}
183
198
for _ , k := range s .Keys {
184
199
buf .Printf ("%s: %s\n " , strings .ToLower (k .Kind ().String ()),
@@ -197,13 +212,13 @@ func ReportSSTEntries(buf *redact.StringBuilder, name string, sst []byte) error
197
212
defer rkIter .Close ()
198
213
s , err := rkIter .First ()
199
214
for ; s != nil ; s , err = rkIter .Next () {
200
- start , err := storage .DecodeMVCCKey (s .Start )
201
- if err != nil {
202
- return err
215
+ start , ok := storage .DecodeEngineKey (s .Start )
216
+ if ! ok {
217
+ return errors . Errorf ( "invalid engine key: %x" , s . Start )
203
218
}
204
- end , err := storage .DecodeMVCCKey (s .End )
205
- if err != nil {
206
- return err
219
+ end , ok := storage .DecodeEngineKey (s .End )
220
+ if ! ok {
221
+ return errors . Errorf ( "invalid engine key: %x" , s . End )
207
222
}
208
223
for _ , k := range s .Keys {
209
224
buf .Printf ("%s: %s" , strings .ToLower (k .Kind ().String ()),
0 commit comments